我有这样一程序,我测了他的运行过程,但是我不太理解为啥在调用他的构造函数之前要先调用他在构造函数外面的对象初始化了?public class X {
Y y = new Y();
X(){
System.out.println("X");
}
}
public class Y {
Y(){
System.out.println("Y");
}
}
public class Z extends X{
Y y1 = new Y();
Z(){
System.out.println("Z");
}
public static void main(String[] args) {
new Z();
}
}
Y y = new Y();
X(){
System.out.println("X");
}
}
public class Y {
Y(){
System.out.println("Y");
}
}
public class Z extends X{
Y y1 = new Y();
Z(){
System.out.println("Z");
}
public static void main(String[] args) {
new Z();
}
}
解决方案 »
- 为什么提升找不到符号?
- 问写好 equals 方法
- 为什么 "import com.borland.jbcl.layout.*;" 报错?
- 在JAVA中是否有类似WIN32API--ZeroMemory的函数???
- 如何用java处理多tiff文件?
- 我的三星152S每次看到,都有一种惊艳的感觉,大力推荐!!!!!!顺便问个小问题
- 多线程问题『求助』
- 问一个问题:j2sdk1.4和j2sdk1.3的一个小区别?
- 文件尾缀为.001这样的数字式的怎么看?
- java 单线程访问vector对象,会消耗时间,而访问ArrayListj就不会,为什么?
- 关于widows平台上Path变量的问题
- GUI的一些问题
new Y();
System.out.println("X");
new Y();
System.out.println("Z");所以结果是这样,这些都是在实例化z之后进行的,并不是在实例化z之前先运行的构造方法之外的。
public class Test4 {
private int a;//等同于private int a = 0;
Test4(int a) {
this.a = a;//如果this.a还没定义又怎么能给它赋值呢?
}
}