基本类型就不用说了,很清楚地能看到。主要是讨论下传递一个有引用对象的时候。
先来两段代码。
public class Test {
public static void main(String[] args) {
StringBuffer you= new StringBuffer("你家房子");
goBackHome(you);
System.out.println(you);
}
public static void goBackHome (StringBuffer relative) {
relative= new StringBuffer("亲戚家房子");
}
}
输出结果是: 你家房子
public class Test {
public static void main(String[] args) {
StringBuffer you= new StringBuffer("你家房子");
addTV(you);
System.out.println(you);
}
public static void addTV (StringBuffer relative) {
relative.append("添了台电视");
}
}
输出结果是:你家房子添了台电视
- 其实这就像我们的房子一样,代码里的you是你自己。进入第一段代码的goBackHome方法(这天,你有个亲戚relative来家里借宿,你把房子的钥匙给了他,你的房子有了两个主人。过了一段时间之后,他不在你家里住了,回到了自己的家里。)。这对你和你的房子来说并没有什么影响,还是你原来的的房子。
- 第二段代码里,addTV方法中,你的亲戚没有回家,他看你家还缺一台电视,所以给你家的房子添了台电视。这对于你的房子来说发生了改变,添了台电视。
总的来说,两段代码里面的方法中,传入的都是你的房子(值)。