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