class Test {
int num = 3;
public static void main(String[] args) {
Test t = new Test();
t.num = 5;
method(t);
System.out.println(t.num); //6
}
public static void method(Test t){
t.num = 6;
}
}
如果改成method(new Test());结果又是什么呢?
Test t = new Test();
t.num = 5;
method(new Test())
System.out.println(t.num); //5
搞事情method(t);它是在做引用传递吗?它传递的是对象的名字,method(new Test())又在进行什么传递?method方法中接收的Test t又是在接收什么东东?
method(t);中t以形参的形式传递给method方法,然后method方法通过这个对象搞一些事情,而method(new Test())没有任何意义,因为mehtod方法中接收的是引用,而它是创建了一个新的对象。