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.aget3.age都是13 ,而t2.age17

链接地址: http://www.djcxy.com/p/66333.html

上一篇: Java constructors assingning value to variable and then interchanging them

下一篇: Orientation change issue in iOS6