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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 闪客sun 初级黑马   /  2016-11-19 20:01  /  863 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

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

4 个回复

倒序浏览
不能这么绝对吧,有时候参数传进来,方法本身并不能改变参数的内容,引用传递用栈堆分析更好一些吧?
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
文明密码 发表于 2016-11-19 23:07
不能这么绝对吧,有时候参数传进来,方法本身并不能改变参数的内容,引用传递用栈堆分析更好一些吧?
...

有道理,的确有些漏洞
来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
面相对象的本质就是封装啊   将过程封装成我们所需的对象
回复 使用道具 举报
dahei 发表于 2016-11-20 08:04
面相对象的本质就是封装啊   将过程封装成我们所需的对象


来自宇宙超级黑马专属苹果客户端来自宇宙超级黑马专属苹果客户端
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马