黑马程序员技术交流社区

标题: 传值与传引 [打印本页]

作者: an3077458    时间: 2015-9-22 21:52
标题: 传值与传引
◆传值与传引  严格来说,Java中所有方法参数都是传值。因为即使是传递的参数是对象的引数时,引数本身也是传值的。所有基本类型都是传值的。  传值:被传入的参数被视为内部的局域变量,其变化不影响外部变量的原始值。  传引:对于引数本身来讲也是传值的,但是在方法内部若对引数所指向的对象属性有改变, 则会直接实时地影响所指向的对象属性。  理解传引这一概念的最佳方式就是画出指向图。eg. A(Object)O 对于A本身而言它是传值的,也就是说当A作为参数传递的时候,假若在方法内部把其它的引数赋给了A,但是当方法返回时,A仍旧是指向原来的对象,而不会改变。其次,对于传引来说,假若在方法内部对A所指向的对象属性有改变,那么对象属性的改变会是直接实时的。 再次强调,Java中所有的参数传递都是传值的。  传值这种题型的考试很多,基本类型传值问题考的较多的是对某一变量,故意用某一方法试图改变它,然后方法返回时再打印它。按传值的说法,实际上该变量并没有改变。
作者: 任振铭    时间: 2015-9-22 23:11
高斯林支持你这个观点
作者: zllqxy    时间: 2015-9-22 23:39
谢谢分享




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2