A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性吗?



评分

参与人数 1技术分 +1 收起 理由
杨佳名 + 1

查看全部评分

11 个回复

正序浏览
学习了!!!
回复 使用道具 举报
我再补充一下,String例外……
回复 使用道具 举报
哦。。学习;了
回复 使用道具 举报
可以   原本在C语言  和 c++说的是引用 把地址指针写进去更好理解,但在java中几乎是封装了地址指针这个东西  但是引用的思想还是没有变的   所以说可以
回复 使用道具 举报
与梦逆风而行 发表于 2014-11-25 19:22
会改变对象本身的值么?

对象本身的值?只是对象地址值吗?那个不会改变的,地址值是无法改变的,是Java自动分配的...
新建一个对象赋值给相同的引用变量,虽然变量相同,可是指向的对象就不同了
回复 使用道具 举报
kerner 中级黑马 2014-11-25 20:54:17
7#
方法调用是传值,引用变量本身的值是不会被改变的,因为传进去的是对一个对象的引用,所以对这个对象的属性会发生改变。
回复 使用道具 举报
可以的,在Arrays类中有许多的静态方法,其参数就是要求传入一个数组,数组就是引用数据类型,调用这些方法后,原来数组的内容就会被改变~~你可以去查API看看,
回复 使用道具 举报
可以的
相当于把对象A的地址赋给B了,B也指向这个对象,当然可以操作了。
回复 使用道具 举报
可以,引用类型会因为形参的改变而影响实参
回复 使用道具 举报
桃华月禅 发表于 2014-11-25 14:04
当然可以,一个方法到另一个方法只是栈内存引用变量的变化,无论哪个变量引用的都是堆内存中的对象。所以改 ...

会改变对象本身的值么?
回复 使用道具 举报
当然可以,一个方法到另一个方法只是栈内存引用变量的变化,无论哪个变量引用的都是堆内存中的对象。所以改变任何一个变量都会改变关联的推内存中的对象
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马