class A{
public String a;
private A b;
public A getb(){ b=new A();return b;}
}
public class AA{ public static void main(String args[]){
A e = new A();
A r = new A();
//e.getb=new A();
A c = e.getb(); c.a="sfg"; System.out.println(e.getb().a); }
}
public String a;
private A b;
public A getb(){ b=new A();return b;}
}
public class AA{ public static void main(String args[]){
A e = new A();
A r = new A();
//e.getb=new A();
A c = e.getb(); c.a="sfg"; System.out.println(e.getb().a); }
}
//创建类A
class A{
public String a;//定义String引用对象a
private A b;//定义A的私有对象b
public A getb(){ b=new A();return b;}//定义方法
}
//创建主类
public class AA{ public static void main(String args[]){
A e = new A();//定义类对象
A r = new A();
//e.getb=new A();
A c = e.getb(); c.a="sfg";//传值 System.out.println(e.getb().a);//输出 }
}
我没运行你的程序,不过我觉得输出结果不是"sfg"
原因很简单,getb()方法里,每次都是新建一个对象,然后再返回
A c = e.getb(); //创建一个对象,然后c引用该对象
System.out.println(e.getb().a);//e.getb()又创建了一个新的对象(与c不是同一个引用了),所以输出结果不会是"sfg"
//创建一个对象,然后c引用该对象
System.out.println(e.getb().a);
//e.getb()又创建了一个新的对象(与c不是同一个引用了),
输出结果不会是"sfg"
//e.getb()又创建了一个新的对象(与c不是同一个引用了),
输出结果应该为"null"
解释的很清楚!!
不知道这样是不是就可以了!!!
//创建类A
class A{
public String a;//定义String引用对象a
private A b=new A();//定义A的私有对象b
public A getb(){return b;}//定义方法
}
//创建主类
public class AA{public static void main(String args[]){
A e = new A();//定义类对象
A r = new A();
//e.getb=new A();
A c = e.getb(); c.a="sfg";//传值 System.out.println(e.getb().a);//输出}
}