微科社区,轻松开发从此开始! 请登陆 免费注册

微科社区

当前位置:首页 > Java平台 > J2ME >

进来看看,有点

时间:2017-01-14 04:01  浏览:努力统计中...
public static void main(String[] args){ class Number { int i; } Number n1 = new Number(); Number n2 = new Number(); n1.i = 9; n2.i = 47; System.out.println(1: n1.i: + n1.i + , n2.i: + n2.i); n1 = n2; System.out.println(2: n1.i: + n1.i + , n2
public static void main(String[] args){
class Number {
int i;
}
Number n1 = new Number();
Number n2 = new Number();
n1.i = 9;
n2.i = 47;
System.out.println("1: n1.i: " + n1.i +
", n2.i: " + n2.i);
n1 = n2;
System.out.println("2: n1.i: " + n1.i +
", n2.i: " + n2.i);
n1.i = 27;
System.out.println("3: n1.i: " + n1.i +
", n2.i: " + n2.i);
}
}
输出的第三条语句当中,n2.i=27 为什么??

因为n1 = n2;的时候,n1也指向了n2所指向的对象,也就是说n1和n2引用了相同的对象
所以n1.i=27相当于修改n1所引用的对象的属性,因为n2和n1引用的对象相同,所以n2能反映n1修改的结果。


正解。。。。。
    顶一下
    (0)
    0%
    踩一下
    (0)
    0%
    ------分隔线------