【发布时间】:2017-10-01 06:45:23
【问题描述】:
我试图理解为什么输出值会在 Array 的情况下发生变化,而不是在 object 的情况下。
public class SameClass {
private Integer a;
private Integer b[];
public SameClass(Integer a) {
this.a=a;
}
public SameClass(Integer a, Integer b[]) {
this.a=a;
this.b=b;
}
public static void main(String args[]) {
Integer a = new Integer(5);
Integer b[] = {2,5};
// create two different objects
SameClass sam = new SameClass(a);
SameClass samB = new SameClass(a,b);
//change values in local variables
a=7;
b[0]= 8;
//print values
System.out.println(sam.a);
System.out.println(samB.b[0] + " " + samB.a);
}
}
这段代码的输出是:
5
8 5
【问题讨论】:
-
提示:
a=7等价于a = new Integer(7)
标签: java variables object scope