日期:2014-05-18  浏览次数:20579 次

能讲解一下这个JAVA吗?
public   class   A   {
public   A()   {
new   B(this).print();
}
public   void   print()   {
System.out.println( "Hello   from   A! ");
}
}


public   class   B   {
A   a;
public   B(A   a)   {
this.a   =   a;
}
public   void   print()   {
a.print();
System.out.println( "Hello   from   B! ");
}
}

为什么运行结果是:Hello   from   A!   Hello   from   B!       ????
烦请大家讲解一下其过程,谢谢了!

------解决方案--------------------
这段代码能运行?没看到main
------解决方案--------------------
请问你的这段代码在那里运行?
------解决方案--------------------
a.print();-> System.out.println( "Hello from A! ");
System.out.println( "Hello from B! ");
------解决方案--------------------
你的意思是在main 里实例化A
执行过程:
1、实例化A,调用A的构造函数,在构造函数中实例化B对象,把这个A对象作为参数传入B的构造函数
public A() { new B(this).print(); }
2、调用B的构造函数print()方法,方法中第一步调用a.print();也就是A.print()输出: Hello from A!
第二步调用System.out.println( "Hello from B! ");输出:Hello from B!


------解决方案--------------------
对不起,你的main函数再那呀