面向对象编程与面向过程编程_第1页
面向对象编程与面向过程编程_第2页
面向对象编程与面向过程编程_第3页
面向对象编程与面向过程编程_第4页
面向对象编程与面向过程编程_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、面向对象编程与面向过程编程面向过程编程都会把程序代码放在main()里面。对于面向对象编程,我们就是离开过程化的世界,将事物抽象成对象,对对象的属性抽象成变量,动作、行为等抽象成方法。就像自然界一样,子代继承父辈的属性和方法;同时接口可以更灵活的重写多个类的方法,体现了多态性。给大家讲两个程序员之间的故事:老板娘兼项目经理要求阿珠和阿花两个程序员比赛,给她们出了一道题阿珠先完成程序编写,阿珠的是面向过程的编程;阿花是面向对象的编写然道阿珠赢了?!但是,老板娘说规格改了阿珠还是领先阿花,但是,老板娘又提出了要修改了程序必然是不断地修改调试的,面向过程编程方法在这方面不灵活,工作量大而且容易把以前

2、调试正确的代码弄巧成拙了。所以阿花赢了,对吗?其实阿花的程序也是存在缺陷的,回到比赛,阿珠觉得阿花的4个Shape物体中都有rotate过程,认为阿花必须要同时维护4个不同的rotate方法,这样一点效率也没有。封装:封装就是将客户端不应看到的信息包裹起来。使内部执行对外部来看不一种不透明的、是一个黑箱,客户端不需要内部资源就能达到他的目的。1事物的内部实现细节隐藏起来 2对外提供一致的公共的接口间接访问隐藏数据 3可维护性 封装的目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只是要通过外部接口,一特定的访问权限来使用类的成员。继承: 允许存在父子类

3、的关系,一个子类有且只有一个直接的父类(Java中的继承是类之间的单继承.)而且子类可以加入自己的方法和实例变量,也可以覆盖掉继承自父类的方法。 但Java不支持多重继承,即一个类从多个超类派生的能力。在开发中尽量减少继承关系,这样做是为了把程序的耦合度降低。用继承可以防止子类中出现重复的程序代码。要改共同部分则只要改父类一个就行,同时其他特定部分只要覆盖自己继承的部分就行。继承虽好,可不要滥用哦private 私有,本类内部  不能继承(default) 本类同包  同包子类可继承 protected 本类同包子类 可以继承public 公开 

4、0; 任何地方都可以访问 能继承到子类 多态(接口和抽象类)通过继承覆盖重写,可以实现一定程度的多态,但是继承只能继承一个父类,对于现实需求可能不够,所以还需要接口的支持。一个类可以实现多个接口,表现形式多样。(接口是100%的抽象类,不能被初始化)猫,又是宠物同时也是猫科动物,但是JAVA里一个类是不能继承两个父类的如何判断应该是设计类、子类、抽象类或接口呢?    (1)如果新类无法对其他的类通过IS-A测试时,就设计不继承其他类的类。    (2)只有在需要某类的特殊化版本时,以覆盖或增加新的方法来继承现有的类。(3)当你需要定义一群子类的模板,又不想让其他人初始化此模版时,设计出抽象的类给他们用。         (4)如果想要只定义出类可以扮演的角色,使用接口。(接口主要涉及跨平台、跨语言、移植性要求较高的编程 )多态实现A 编译时多态性-重载 (参数个数不同或参数类型不同)  对于类的方法(包括从父类中继承的方法),方法名相同,参数列表不同的方法之间就构成了重载关系。        B 动态多态性-覆

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论