黑马程序员---Java面向对象编程思想小结
来源:互联网 发布:知乎如何更改话题选项 编辑:程序博客网 时间:2024/05/16 17:34
-----Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------
面向对象语言的概念性的东西就不阐述了,大家见的多了,多说也是无益。
简单说说我最近学习到的关于面向对象编程的一些知识点。
张孝祥老师总结的一句话对我很受用:谁拥有数据,谁就对外提供操作这些数据的方法。
首先还是说说他那个经典的例子:人在黑板上画圆。
简单一句话,就带出了三个对象:人,黑板,圆。
那么画圆的方法归于哪个对象呢?
我们可以用前面提到的公式,“谁拥有数据,谁就对外提供操作这些数据的方法”,显然,画圆需要圆的圆心与半径,圆拥有数据,故圆提供画圆的方法。
接下来有一连串的例子:
1.人开启电脑
对象:人、电脑
开启电脑方法的归属:电脑
分析:人对象操作电脑对象,通过调用电脑对象的开机方法达到开机的效果。之所以让电脑对象具备开机方法,是因为电脑开机时内部进行的大部分复杂的操作人不需要知道,由电脑封装了这些数据就可以了。
2.小猫钓鱼
对象:猫、鱼竿、鱼
钓鱼的方法归属:鱼竿
分析:猫对象操作鱼竿对象,通过调用鱼竿对象的钓鱼方法达到钓鱼的效果。因为鱼竿持有鱼钩、鱼漂等引用数据,所以由鱼竿来实现钓鱼方法是最为合理的,它只需要向猫对象返回当前的状态即可。
面试题:
1.小球从绳子的一端移动到了另一端
对象:小球、绳子 移动方法的归属: 小球
分析:小球移动,需要的数据有自身当前坐标,和下一目的坐标。这些坐标数据由绳子持有,所以小球对象必须与绳子对象绑定,小球移动需要调用绳子的提供坐标的方法。有人可能会疑惑,说为什么不让绳子具备移动的方法,但是仔细想想就会知道,移动的是小球,而不是绳子,绳子只能提供小球移动时需要的坐标数据,如果绳子自身移动,那么它移动时的数据由谁来提供呢?这不符合实际。
2.两块石头磨成一把石刀,石刀可以砍树,砍成木材,木材做成椅子。
对象:石头、石刀、树、木材、椅子
分析:这里要解决的第一个难题,就是石头磨成石刀方法由谁持有。如果石头对象持有,它调用这个方法自身就被销毁了,这显然说不通,更不可能是石刀持有,因为它那个时候还不存在。所以我们增加一个对象,一个工厂对象,由它持有把石头磨成石刀这个方法,接收石头对象,返回石刀对象。石刀持有砍树方法,接收树对象,返回木材对象。木材做成椅子,跟前面石头磨成石刀类似,我们仍旧让工厂对象持有把木材做成椅子方法,接收木材对象,返回椅子对象。
java语言和c语言最大的不同就是其编程的思想,我从开始学了c,到现在开始学习java,很多时候感觉两者写出来的代码几乎时一样的。但是慢慢的,越往后面学就越清楚,是不一样的,可能看上去大同小异,函数内部的算法没什么区别,但是思想是截然不同的。
学好java的第一步,就是深刻理解面向对象编程思想。
- 黑马程序员---Java面向对象编程思想小结
- 黑马程序员——Java面向对象编程思想总结
- 黑马程序员--面向对象编程思想
- 黑马程序员-java与面向对象思想
- 黑马程序员---java面向对象思想
- 黑马程序员-----java面向对象思想总结*
- 黑马程序员__用面向对象思想分析问题小结
- 黑马程序员----JAVA----面向对象小结(2)----
- 黑马程序员:面向对象思想
- 黑马程序员-面向对象思想
- 黑马程序员---iOS基础---面向对象编程思想
- 黑马程序员---面向对象小结
- 【黑马程序员】java编程基础,面向对象
- 黑马程序员-JAVA的面向对象编程
- 黑马程序员:Java编程_面向对象
- 黑马程序员-----java 面向对象编程
- 黑马程序员-java面向对象编程基础知识
- 黑马程序员——java面向对象思想
- ASE isql 连接
- SAT填空练习题(三) 含答案
- 位域,大小端,比特序
- 比特币底层技术有望帮助公司提高结算延迟
- PHP中使用Imagick实现各种图片效果实例
- 黑马程序员---Java面向对象编程思想小结
- 新GRE阅读的必知2种逻辑思维
- 【腾讯Bugly移动开发者沙龙回顾】腾讯专家精彩分享:Android应用性能优化实践
- ostringstream 用法
- Intellij idea14安装google-go-lang-idea-plugin插件无法指定sdk的解决办法
- eclipse快捷键大全
- 【点滴】LINUX之sed命令
- 学习javascript书籍推荐
- 第三章 45题