黑马程序员技术交流社区
标题:
这个程序的运行顺序 为什么是这样!!
[打印本页]
作者:
罗胜华
时间:
2013-3-27 00:30
标题:
这个程序的运行顺序 为什么是这样!!
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();
}
}
new Z(); 的时候,不是先走Z(),Z中先运行 X() 打印X先吗,为什么结果是Y先啊!!!!!
作者:
崔宝东
时间:
2013-3-27 09:59
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();
}
}
// new Z();的时候,不是先走Z(),Z中先运行 X() 打印X先吗,为什么结果是Y先啊!!!!!
因为你创建 new Z()对象的时候,运行 Y y = new Y();这句代码,这句代码在创建new Y对象,所以就先执行class Y
{
Y() {
System.out.print("Y");
}
}
这个类里面的代码了;
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2