值传递就是值参数只能有实参传给形参, 而不能由形参来改变实参.
而引用传递, 是可以由形参来改变实参.
class TestClass{
public TestClass(int i){
this.i = i;
}
private int i;
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
}
public class MyTest {
public void test(TestClass tc){
tc = new TestClass(110);
}
public static void main(String[] args){
TestClass tc = new TestClass(5);
System.out.println(tc.getI());
MyTest pt = new MyTest();
pt.test(tc);
System.out.println(tc.getI());
}
}
输出
5
5
而引用传递, 是可以由形参来改变实参.
class TestClass{
public TestClass(int i){
this.i = i;
}
private int i;
public int getI() {
return i;
}
public void setI(int i) {
this.i = i;
}
}
public class MyTest {
public void test(TestClass tc){
tc = new TestClass(110);
}
public static void main(String[] args){
TestClass tc = new TestClass(5);
System.out.println(tc.getI());
MyTest pt = new MyTest();
pt.test(tc);
System.out.println(tc.getI());
}
}
输出
5
5