能讲解一下这个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函数再那呀