class Test{
int x=3;
void show (){
System.out.println("x="+x);
}
}
public class java1{
public static void main(String [] argv){
Test a,b,c;
a=new Test();
b=new Test();
System.out.println("a==b?"+(a==b));//为什么这里显示的结果是false呢?程序运行到这里都是一样数值啊!
c=b;//这里是吧b的值给c对吧?还是不是简单地赋值而是别的呢?
c.x=10; //不懂这里,按照道理应该是c.show来使用方法,为啥要c.x呢???我原来慕课中也问过这个问题,别人给的答案
//是这里可以理解为调用,,因为c是Test类的对象,故c既可以使用来调用Test类中的方法,也可以通过查看,修改Test类成员
变量的值,我还是没有听懂,不知为啥c就是Test类的对象呢?请大神给我解答解答,谢谢了!这里不懂,谢谢了,希望详细给我讲讲!
System.out.println("c==b?"+(c==b));
System.out.print("a.");
a.show();
System.out.print("b.");
b.show();
System.out.print("c.");
c.show();
}
}
3 回答
Finit
TA贡献222条经验 获得超80个赞
c=b;是引用赋值,打印System.out.println(c==b);结果为true,即b、c指向同一内存地址;既然是同一引用,所以b.show、c.show一样;
然而:
a=new Test();
b=new Test();
System.out.println("a==b?"+(a==b));
a、b为不同对象,不同存储地址,即引用指向地址不同,a==b为FALSE。
望采纳
添加回答
举报
0/150
提交
取消