class A{
A(){
new B(this).print();
}
public void print(){
System.out.println("my name is A,nice to meet you ");
}
}
public class B{
A a;
public B(A a){
this.a = a;
}
public void print(){
a.print();
System.out.println("hello,I'am B,nice to meet you too");
}
public static void main(String[] args){
new A();
}
}
今天看到这个例子突然感觉对这里的this不能解释了,new B(this)这里this带表当前对象A自己,并传递给B的构造器。但
是在执行这句话的时候A的构造器并没执行玩,也就是A对象还没创建完成,何来的A对象传给B?哪位大侠解释下
A(){
new B(this).print();
}
public void print(){
System.out.println("my name is A,nice to meet you ");
}
}
public class B{
A a;
public B(A a){
this.a = a;
}
public void print(){
a.print();
System.out.println("hello,I'am B,nice to meet you too");
}
public static void main(String[] args){
new A();
}
}
今天看到这个例子突然感觉对这里的this不能解释了,new B(this)这里this带表当前对象A自己,并传递给B的构造器。但
是在执行这句话的时候A的构造器并没执行玩,也就是A对象还没创建完成,何来的A对象传给B?哪位大侠解释下
解决方案 »
- 为什么我的while(rs.next())只返回一条记录????急
- Swing做得界面中在程序更新数据库大量数据时会出现界面不动,独立线程也卡着不动
- rs = psmt.executeQuery(sqlSelect);出错啦o(╯□╰)o
- 大家快快帮忙啊
- 如何在JButton 设置“ENTER”快捷键.
- [求助]Hello World执行中遇到的问题
- 请问有关getTables() 方法中的参数问题?
- 从数据库查询数据,以jtable形式显示,由于数据过多,如何进行分页处理???
- 用jbuilder写一个ftp,用什么控件好?
- 100分求一个基本问题一定给你:我编了一个Applet程序,然后在一个html中调用此类,然后一台远程机器调用此html时,我要把我的javade的class
- 关于泛型的理解问题
- 求讲解代码中一段方法
对象还没初始化完,你用到引用了。
class A {
int i;
A() {
new B(this).print();
i = 5;
} public void print() {
System.out.println("my name is A,nice to meet you ");
System.out.println("i is :" + i);
}
}public class B {
A a; public B(A a) {
this.a = a;
} public void print() {
a.print();
System.out.println("hello,I'am B,nice to meet you too");
} public static void main(String[] args) {
new A();
}
}new A()分两部,先按照对象大小分配内存,把所有数据初始化为默认值,第二部是调用构造器。
你的代码正是在第二部中间,其实对象已经有了,不过算是不完整的。