java程序运行过程知多少
2013-03-03 14:35
260 查看
class X
{
Y b = new Y();
X()
{
System.out.print("X");
}
}
class Y
{
Y()
{
System.out.print("Y");
}
}
public class Z extends X
{
Y y = new Y();
Z()
{
System.out.print("Z");
}
public static void main(String[] args)
{
new Z();
}
}
输出结果YXYZ
1.由公共类的main方法开始执行new Z()
2.调用类Z的构造方法Z(){...},但并不执行方法体内的语句,
3.因为继承类X,所以执行类X的构造方法X(){...},但也不执行方法体内的语句
4.初始化成员变量Y b = new Y();
5.调用类Y的构造方法Y(){...}来初始化对象b
6.由于初始化类Y的成员变量int a = 9
7.执行构造方法Y(){...}中的语句System.out.print("Y");
8.执行类X的构造方法X(){...}的方法体内的语句System.out.print("X");
9.到这里类Z继承的类X初始化完毕,开始执行类Z本身的构造方法Z(){...},但是先初始化成员变量再执行构造器中的语句。
即先执行类Y的初始化在执行System.out.print("Z");
10.程序执行完毕
{
Y b = new Y();
X()
{
System.out.print("X");
}
}
class Y
{
Y()
{
System.out.print("Y");
}
}
public class Z extends X
{
Y y = new Y();
Z()
{
System.out.print("Z");
}
public static void main(String[] args)
{
new Z();
}
}
输出结果YXYZ
1.由公共类的main方法开始执行new Z()
2.调用类Z的构造方法Z(){...},但并不执行方法体内的语句,
3.因为继承类X,所以执行类X的构造方法X(){...},但也不执行方法体内的语句
4.初始化成员变量Y b = new Y();
5.调用类Y的构造方法Y(){...}来初始化对象b
6.由于初始化类Y的成员变量int a = 9
7.执行构造方法Y(){...}中的语句System.out.print("Y");
8.执行类X的构造方法X(){...}的方法体内的语句System.out.print("X");
9.到这里类Z继承的类X初始化完毕,开始执行类Z本身的构造方法Z(){...},但是先初始化成员变量再执行构造器中的语句。
即先执行类Y的初始化在执行System.out.print("Z");
10.程序执行完毕
相关文章推荐
- Swing 写的客户端程序在java web start 运行,多语言过程中,JOptionPane.showMessageDialog() 按钮多语言问题
- Java程序运行内容加载过程
- 分析java程序的运行过程
- Java程序编译和运行过程图文解析
- java拾遗4----一个简单java程序的运行全过程
- 1.3—一个典型的JAVA程序的编写和运行过程
- 如何使编写的java程序在hadoop 2.2中运行的完整过程
- Java的pacakge机制,java程序的编译运行过程
- 关于Java程序中类定义对象的处理,以及类中变量与方法的运行过程
- Java程序编译和运行的过程
- Java程序编译和运行的过程【转】
- java程序运行过程解析
- Java程序运行过程中抛出 java.lang.OutOfMemoryError
- JVM之java程序编译和运行的过程-yellowcong
- 举例说明一个 java程序的加载,初始化以及运行过程
- java 运行一个程序的全部过程
- Java程序编译和运行的过程
- Java程序运行过程
- JVM 学习笔记-java程序编译和运行的过程
- java 程序编译运行过程