黑马程序员技术交流社区

标题: 方法参数为引用类型的本质 [打印本页]

作者: 闪客sun    时间: 2016-11-19 20:01
标题: 方法参数为引用类型的本质
我们总是觉得方法的参数列表中有引用数据类型有些不自然,其实如果你想清楚了它的本质,就会觉得这东西并没有那么神奇。
add(int a,int b)方法我们很容易理解,但method(Student s)我们就会愣一秒钟,为什么会这样,因为你没有理解到类的本质。
类无非就是一堆东西打包在了一起,若不考虑成员方法,想想我们当初定义一个学生类时,无非就是将一个叫name的字符串变量和一个叫age的整数变量放在了一起打包起来。
如果我有一个方法叫做changeName(Student s){s.name ="xxx"},期本质无非就是你给我传进来了一个字符串和一个整数,我把其中字符串改了然后再打包还给你而已。再复杂的类起本质都是传进来一大堆乱七八糟的数据,然后我进行一些运算再把数据还给你,这和传递基本数据类型从本质上讲是一样的,类就是一堆打包好了放在一起的数据而已。
对于return一个类的对象亦是如此,只要看穿了类的本质,传参问题就都是浮云了。

作者: 文明密码    时间: 2016-11-19 23:07
不能这么绝对吧,有时候参数传进来,方法本身并不能改变参数的内容,引用传递用栈堆分析更好一些吧?

作者: 闪客sun    时间: 2016-11-20 07:27
文明密码 发表于 2016-11-19 23:07
不能这么绝对吧,有时候参数传进来,方法本身并不能改变参数的内容,引用传递用栈堆分析更好一些吧?
...

有道理,的确有些漏洞

作者: dahei    时间: 2016-11-20 08:04
面相对象的本质就是封装啊   将过程封装成我们所需的对象
作者: 闪客sun    时间: 2016-11-20 11:27
dahei 发表于 2016-11-20 08:04
面相对象的本质就是封装啊   将过程封装成我们所需的对象







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