面向对象编程与面向过程编程.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
面向对象编程与面向过程编程

面向对象编程与面向过程编程面向过程编程都会把程序代码放在main()里面。对于面向对象编程,我们就是离开过程化的世界,将事物抽象成对象,对对象的属性抽象成变量,动作、行为等抽象成方法。就像自然界一样,子代继承父辈的属性和方法;同时接口可以更灵活的重写多个类的方法,体现了多态性。给大家讲两个程序员之间的故事:老板娘兼项目经理要求阿珠和阿花两个程序员比赛,给她们出了一道题阿珠先完成程序编写,阿珠的是面向过程的编程;阿花是面向对象的编写然道阿珠赢了?!但是,老板娘说规格改了阿珠还是领先阿花,但是,老板娘又提出了要修改了程序必然是不断地修改调试的,面向过程编程方法在这方面不灵活,工作量大而且容易把以前调试正确的代码弄巧成拙了。所以阿花赢了,对吗?其实阿花的程序也是存在缺陷的,回到比赛,阿珠觉得阿花的4个Shape物体中都有rotate过程,认为阿花必须要同时维护4个不同的rotate方法,这样一点效率也没有。封装:封装就是将客户端不应看到的信息包裹起来。使内部执行对外部来看不一种不透明的、是一个黑箱,客户端不需要内部资源就能达到他的目的。1.事物的内部实现细节隐藏起来?2.对外提供一致的公共的接口――间接访问隐藏数据?3.可维护性?封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。继承: 允许存在父子类的关系,一个子类有且只有一个直接的父类(Java中的继承是类之间的单继承.)而且子类可以加入自己的方法和实例变量,也可以覆盖掉继承自父类的方法。但Java不支持多重继承,即一个类从多个超类派生的能力。在开发中尽量减少继承关系,这样做是为了把程序的耦合度降低。用继承可以防止子类中出现重复的程序代码。要改共同部分则只要改父类一个就行,同时其他特定部分只要覆盖自己继承的部分就行。继承虽好,可不要滥用哦private 私有,本类内部? 不能继承(default) 本类+同包? 同包子类可继承?protected 本类+同包+子类 可以继承public 公开?? 任何地方都可以访问 能继承到子类?多态(接口和抽象类)通过继承覆盖重写,可以实现一定程度的多态,但是继承只能继承一个父类,对于现实需求可能不够,所以还需要接口的支持。一个类可以实现多个接口,表现形式多样。(接口是100%的抽象类,不能被初始化)猫,又是宠物同时也是猫科动物,但是JAVA里一个类是不能继承两个父类的如何判断应该是设计类、子类、抽象类或接口呢???? (1)如果新类无法对其他的类通过IS-A测试时,就设计不继承其他类的类。??? (2)只有在需要某类的特殊化版本时,以覆盖或增加新的方法来继承现有的类。(3)当你需要定义一群子类的模板,又不想让其他人初始化此模版时,设计出抽象的类给他们用。???????? (4)如果想要只定义出类可以扮演的角色,使用接口。(接口主要涉及跨平台、跨语言、移植性要求较高的编程?)多态实现A 编译时多态性---重载 (参数个数不同或参数类型不同)??对于类的方法(包括从父类中继承的方法),方法名相同,参数列表不同的方法之间就构成了重载关系。??????? B 动态多态性----覆盖也叫重写,就是在当父类中的某些方法不能满足要求时,子类中改写父类的方法。当父类中的方法被覆盖了后,除非用super关键字,否则就无法再调用父类中的方法了。

文档评论(0)

ccx55855 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档