【发布时间】:2011-11-21 13:34:42
【问题描述】:
我的这段代码怎么不起作用?我将一个对象传递给一个方法,但它不会修改我在 main 中创建的原始对象,这是为什么呢?
public class TestRun{
public static void main(String[] args){
Test t1 = new Test();
Test t2 = new Test();
t2.x = 555;
t2.y = 333;
System.out.println("The original valuess of X and Y are");
System.out.println("X = "+t1.x+"Y = "+t1.y);
modifyObject(t1,t2);
System.out.println("After the modification ");
System.out.println("X = "+t1.x+"Y = "+t1.y);
}
public static void modifyObject(Test arg1,Test arg2){
arg1 = arg2;
}
}
public class Test{
int x = 9999;
int y = 1;
}
【问题讨论】:
-
C++ 中的非原始类型是对象,但在 Java 中它是隐式引用。引用按值传递。
标签: java oop object pass-by-reference pass-by-value