明白了 你看 上面的程序里 有 a= new A() 是实例化一个新 对象 新对象的 i++ 而不影响
main方法中的 变量i
而下面的 没有 出入的对象 的新实例化
package com.wu.xiao.yu;
class A {
int i = 0;
}
public class Test {
public static void add(A a) {
System.out.println("传入是参数 "+a);
a = new A();
a.i++;
System.out.println("实例化后的 "+a);
System.out.println("add "+a.i);
}
public static void main(String args[]) {
A a = new A();
add(a);
System.out.println("输出的实例 "+a);
System.out.println(a.i);
}
}
传入是参数 com.wu.xiao.yu.A@c17164
实例化后的 com.wu.xiao.yu.A@1fb8ee3 注意看这里 这里说明不是同一个对象了
add 1
输出的实例 com.wu.xiao.yu.A@c17164
0
-----------------------
package com.wu.xiao.yu;
class A {
int i = 0;
}
public class Test {
public static void add(A a) {
System.out.println("传入是参数 "+a);
//a = new A();
a.i++;
System.out.println("实例化后的 "+a);
System.out.println("add "+a.i);
}
public static void main(String args[]) {
A a = new A();
add(a);
System.out.println("输出的实例 "+a);
System.out.println(a.i);
}
}
传入是参数 com.wu.xiao.yu.A@c17164
实例化后的 com.wu.xiao.yu.A@c17164
add 1
输出的实例 com.wu.xiao.yu.A@c17164
1