问题描述
- 一个java问题 值传递的
-
public class test1 {
private int i = 0;
public test1(int i) {
this.i = i;
}
public static void process(test1 obj) {
obj = new test1(99);
obj.i --;
}
public static void main(String[] argv) {
test1 o1 = new test1(1);
process(o1);
System.out.println("o1.i=" + o1.i);
}
}为什么输出结果就是 o1.i=1 求指导
解决方案
解决方案二:
因为在Java中所有的赋值操作都是值传递,在Process方法中new一个新对象,赋值给obj,这是一个值传递,不会改变传入引用的内容。
如果想要改变,假设有Set函数的情况下,在Process方法中执行obj.setI(99-1);就可以了。
解决方案三:
java值传递问题
java的值传递问题
关于java中的值传递问题
解决方案四:
数组是引用传址,这传值
解决方案五:
因为新new出了一个对象啊,也就是说process()修改的是新的那个对象
时间: 2024-11-17 10:02:38