Java构造函数赋值给变量,然后交换它们
你好
>Whats should be the output of the following code and why?
>the output turned out to be 131713.Below is the code. the object >references are interchanging so the values are changing.
enter code here
公共类Test {int age; 字符串名称;
Test(int age,String name){
this.age=age;
this.name=name;
} public static void main(String [] args){
Test t1 = new Test(17,"A");
Test t2 = new Test(13,"B");
Test t3 = new Test(14,"C");
t3=t2;
t2=t1;
t1=t3;
System.out.print(t1.age);
System.out.print(t2.age);
System.out.print(t3.age);
}
}
更改引用变量的值不会修改引用的对象内部的任何内容。 但它可以使该变量引用不同的对象。 变量独立于对象存在。 这可以如下图所示。
创建三个对象后,您会遇到类似这样的情况。
/ / /
| | | | | |
t1-> | 17 A | t2-> | 13 B | t3-> | 14 C |
| | | | | |
/ / /
然后你改变t3指的是什么,所以你有
/ / /
| | t2-> | | | |
t1-> | 17 A | | 13 B | | 14 C |
| | t3-> | | | |
/ / /
然后你改变t2指的是什么,所以你有
/ / /
t1-> | | | | | |
| 17 A | t3-> | 13 B | | 14 C |
t2-> | | | | | |
/ / /
而你改变了t1的含义,所以你有
/ / /
| | t1-> | | | |
t2-> | 17 A | | 13 B | | 14 C |
| | t3-> | | | |
/ / /
然后你开始打印东西。 如上面的最后t1.age
图所示, t1.age
和t3.age
都是13
,而t2.age
是17
。
上一篇: Java constructors assingning value to variable and then interchanging them