您的位置:首页 > 编程语言 > Java开发

Java传值和传引用: 张三和李四的故事

2009-12-03 18:22 127 查看
下面开讲故事:

从前有个房间,房间里有份文档,房间还有一把钥匙。 这把钥匙在张三手里。
这时李四来向张三要那份文档。 张三不太喜欢李四,但又怕耽误了
工作不好交代。于是张三就把房间里文档的文档复印了一份,然后把那个复印件交给了李四(这叫传值)。
李四拿到文档后(复印件),胡乱修改一番,心想:张三,这回要你好看。可是他没想到那份原件还好好的在张三的房间里锁着呢。

以上故事对应:

public static void counter(int count) {

count = 2;

}
这个李四不甘心,于是他偷偷地配了一把张三的钥匙(这叫传引用), 准备进入房间修改那份文档。
这事被张三及时发现,他悄悄的把李四配的钥匙换成了另外一个房间的钥匙。
李四去了错误的房间。 张三再次以胜利告终!
以上故事对应:

public static void changeA1(int[] ints) {

ints = temp;
int[] temp = new int[3];

ints[0] = 7;

ints[1] = 8;
ints[2] = 9;
}
李四锲而不舍,他趁张三还沉浸两次胜利的喜悦里,终于成功的配了钥匙(这叫传引用),达到了修改那份文档原件的目的。

以上故事对应:

public static void changeA2(int[] ints) {

ints[0] = 4;

ints[1] = 5;
ints[2] = 6;
}
故事讲完了。 这里需要注意的是无论是传值还是传引用,传的都是复本(文档复印件或配的钥匙)。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: