- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
1.面向对象性
一、面向对象(Object Oriented)编程语言的历史
1950年有个叫做荷兰德的学生作为程序员进入IBM的时候,这个世界上的程序员只有几个而已。当时计算机很少,计算机性能也差,程序员也少,加上程序员都是天才中的天才,智商超高,所以他们用十六进制的机器编码来操纵计算机,似乎没有什么问题。
1960年,计算机性能不断提升,应用领域也不断增多,程序员的人数也在增多,程序的复杂程度也不断提高,很多程序需要好多人一起才能完成。而在此时在大型项目中由于软件的原因导致的大量问题也不断暴露出来。由此催生了结构化程序设计方法。结构化程序设计思想采取了模块分解和功能抽象的方法,把一个个复杂的问题,分解成一个个易于控制的子程序,便于开发和维护,因此结构化程序设计迅速走红,并从70年代起逐渐占据统治地位。
70年代末,随着计算机科学的发展,结构化程序设计方法也渐渐显得力不从心。于是面向对象设计思路和语言慢慢浮出水面。
1967年挪威两个科学家发布了simula语言(simulation模拟、仿真),它引入了后来所有面向对象程序设计语言都会遵循的几个基础概念:类、对象、继承。虽然因为simula比较难懂、难学,功能不完善而没有流行开来,但是它的思想却指导着计算机这数十年的编程实践。
1972年诞生的smalltalk,被公认为是历史上第二个面向对象的程序设计语言,和第一个真正的集成开发环境(IDE),smalltalk对 Java 、Objective-C 、Ruby 的诞生都起到了极大的推动作用。90年代的许多软件开发思想,如设计模式、敏捷编程和重构等也都源自于smalltalk。在smalltalk里所有的东西都是对象,15*19 会被理解成向15这个对象发送一个乘法的消息,参数是19。
1985年c++商业版本的正式发布,标志着一个面向对象领域里的王者诞生了。C++在c语言的基础上,借鉴了simula中类的概念、从algol语言中继承了运算符重载、引用以及在任何地方都可以声明变量的能力,从BCPL获得了//注释,从Ada语言中得到了模板,命名空间,从Ada、Clu和ML去取得了异常……C++是第一个广泛流行起来的面向对象的编程语言,至今魅力不减。
1995年Java诞生的故事大家都耳熟能详了,我们也知道Java是C++的语法与Smalltalk语义的结合。由此面向对象领域里又一个王者诞生了。
Java里面向对象的概念六次讲座也就可以讲完。不要怕,这些概念很好理解;不要轻视,很多深层的思想需要在实践中不断思考和分析才可以领悟。
二、类和对象的概念
1、类和对象的概念
人类自古就喜欢听故事,也喜欢写故事,我们从小也被要求写作文,为了帮助你写作文。老师还总结了一些规律,譬如记叙文六要素:时间、地点、人物、起因、经过、结果。 有了这样指导性的东西,我们写作文的时候就简单了许多。
面向对象程序语言的核心思想就是把一个事物的状态和行为封装起来作为一个整体看待。类描述的就是对象知道知道什么和执行什么。
譬如我们用面向对象的思想来看待一架飞机:
如果我们站在顾客角度看飞机,那么它的状态是名字波音777,座位数380人,飞行速度940公里每小时,它的行为就是飞行,能把你从A地送到B地。
如果站在航空公司角度看飞机,那么它的状态是名字波音777,资产编号HNH购买价格18.7亿人民币。它的行为就是能赚钱。
我们从不同角度去看待和抽象同一架飞机它的状态和行为不相同。
再从面向对象的角度看待一个家乐福超市的员工王丽:
她在上班的时候是个收银员,那么她的状态是编号067,她的行为就是收银。她下班以后去家门口的小店买菜,那么他的身份就是顾客,她的状态是有个购物商品清单,她的行为就是付款。
我们从不同的角度和时间去看待同一个人,她的状态和行为也是不相同的,甚至看起来是相反的。
好了,我们自己尝试分析一下,电脑的状态和行为,手机的状态和行为,桌子的状态和行为,QQ的状态和行为,小狗、小猫、老虎、大象、蚊子、苍蝇…… 有一个简单的方法区别什么是状态什么是行为:就是状态是个名词,行为是个动词。
2、类和对象的关系
类是对象的蓝图,它告诉虚拟机如何创建某个类型的对象。对象是根据蓝图建造出来的实例。
譬如我们设计一个模拟WOW的格斗游戏,需要人或者怪兽来战斗吧,战斗需要武器吧。那么圣骑士就是个类,人类圣骑士“锦马超”就是一个对象。如果双手剑件是个类,那么拿在“锦马超”手里的“霜之哀伤”就是一个对象。
譬如我们要建立一个全班同学的通讯录,设计一个通讯录的格式,包括姓名、性别、手机号、QQ号、宿舍号。然后我们按照一定的格式印出来,交由每个同学填写,那么每个同学填写的那一份就叫对象,我们填写的通讯录格式本身就是类。
譬如由一个寂寞的老人需要找个伴,要求:随时都可
文档评论(0)