命题:[quote]Java函数按值传递参数,按引用传递对象![/quote]
术语解释: [quote]按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。 按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数,调用代码中的原始值也随之改变。[/quote]
解释:
1. 与C++相比,Java是更加纯粹的面向对象语言,但不完全是,Java还有Primitive类型存在(虽然提供了Primitive类型的封装类)
2. C++在传递参数时可以按值、按引用(或指针)的方式传递;Java函数在传递参数时,只有一种形式:按值传递。
3. 当Java函数传递非Primitive类型的参数时,其实传递的是[i]对象的引用[/i],即以引用的方式传递对象,“按值传递”引用(对象的引用是真正的参数)。
需要更多的解释和代码案例,请阅:
http://www.ibm.com/developerworks/cn/java/passbyval/index.html
术语解释: [quote]按值传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的一个副本。因此,如果函数修改了该参数,仅改变副本,而原始值保持不变。 按引用传递意味着当将一个参数传递给一个函数时,函数接收的是原始值的内存地址,而不是值的副本。因此,如果函数修改了该参数,调用代码中的原始值也随之改变。[/quote]
解释:
1. 与C++相比,Java是更加纯粹的面向对象语言,但不完全是,Java还有Primitive类型存在(虽然提供了Primitive类型的封装类)
2. C++在传递参数时可以按值、按引用(或指针)的方式传递;Java函数在传递参数时,只有一种形式:按值传递。
3. 当Java函数传递非Primitive类型的参数时,其实传递的是[i]对象的引用[/i],即以引用的方式传递对象,“按值传递”引用(对象的引用是真正的参数)。
需要更多的解释和代码案例,请阅:
http://www.ibm.com/developerworks/cn/java/passbyval/index.html