a-面向对象程序设计

a-面向对象程序设计

ID:36321171

大小:310.00 KB

页数:72页

时间:2019-05-09

a-面向对象程序设计_第1页
a-面向对象程序设计_第2页
a-面向对象程序设计_第3页
a-面向对象程序设计_第4页
a-面向对象程序设计_第5页
资源描述:

《a-面向对象程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、面向对象程序设计面向对象编程的概念1、面向过程编程:很多人使用过Fortran、Basic,C等面向过程的程序设计语言,这些语言是按流程化的思想来组织的在这些语言的设计思想中,通常将存放基本数据类型的变量作为程序处理对象、以变量的赋值作为程序的基本操作、以变量值的改变作为程序运行的状态,这种程序设计风格存在着数据抽象简单、信息完全暴露、算法复杂、无法很好地描述客观世界等缺点在程序设计过程中,为了实现有限度的代码重用,公共代码被组织成为过程或函数。当需要代码重用时,调用已经组织好的过程或函数。在这种应用方式中,

2、如果软件项目庞大,程序的调试和维护将变得异常困难面向对象编程的概念2、面向对象编程:而面向对象的程序设计思想是将数据以及对于这些数据的操作,封装在了一个单独的数据结构中这种模式更近似于现实世界,在这里,所有的对象都同时拥有属性以及与这些属性相关的行为对象之间的联系是通过消息来实现的,消息是请求对象执行某一处理或回答某些信息的要求。某个对象在执行相应的处理时,可以通过传递消息请求其他对象完成某些处理工作或回答某些消息。其他对象在执行所要求的处理活动时,同样可以通过传递消息和另外的对象联系。所以,一个面向对象程序

3、的执行,就是靠对象间传递消息来完成的面向对象编程的概念面向对象编程:面向对象程序设计是一种新兴的程序设计方法,或者是一种新的程序设计规范,它使用对象、类、继承、封装、消息等基本概念来进行程序的设计。从现实世界中客观存在的事物(即对象)出发来构造软件系统,并且在系统构造中尽可能运用人类的自然思维方式开发一个软件是为了解决某些问题,这些问题所涉及的业务范围称作该软件的问题域。其应用领域不仅仅是软件,还有计算机体系结构和人工智能等面向对象的概念面向对象程序设计围绕的几个主要概念:抽象数据类型类、类型层次(子类),封

4、装性,继承性、多态性对象,消息和方法抽象数据类型classCar{intcolor_number;intdoor_number;intspeed;voidbrake(){…}voidspeedUp(){…};voidslowDown(){…}}计算机中的对象的原型-用类来表示现实生活中的对象类什么是类?类是描述对象的“基本原型”,它定义一种对象所能拥有的数据和能完成的操作,在面向对象的程序设计中,类是程序的基本单元程序中的对象是类的一个实例,是一个软件单元,它由一组结构化的数据和在其上的一组操作构成varia

5、blesmethods变量,方法,消息变量(属性):即指对象的所处的状态方法:指对象的功能单元什么是消息?软件对象通过相互间传递消息来相互作用和通信一个消息由三部分组成:1.接受消息的对象2.要完成方法的名字3.方法需要的参数对象B对象Amessage例子一个例子在程序中操作对象是类的一个实例:即对象创建一个对象Helloobj=newHello();调用方法obj.changeString(“HelloWorld!”)classHello{}privateStrings;publicvoidshowStri

6、ng(){System.out.println(s);}publicStringchangeString(Stringstr){s=str;}封装什么是封装?封装把对象的所有组成部分组合在一起,封装定义程序如何引用对象的数据私有数据方法封装实际上使用方法将类的数据隐藏起来,控制用户对类的修改和访问数据的程度方法数据对象A对象B公有数据继承什么是继承?继承是一种由已有的类创建新类的机制利用继承,可以先创建一个拥有共有属性的一般类,根据该一般类再创建具有特殊属性的新类,新类继承一般类的状态和行为,并根据需要增加它

7、自己的新的状态和行为由继承而得到的类称为子类,被继承的类称为父类或超类Java不支持多重继承,子类只能有一个父类在Java编程语言中,通过继承可利用已有的类,并扩展它的属性和方法。这个已有的类可以是语言本身提供的、其他程序员编写的或程序员原来编写的。继承在Java中无所不在子类什么是子类?子类是作为另一个类的扩充或修正所定义的一个类bicycle(superclass)MountainbikesRacingbikesTandembikessubclass继承通过继承,子类利用父类中定义的方法和变量就像它们属于

8、子类本身一样classCar{intcolor_number;intdoor_number;intspeed;push_break(){…}add_oil(){…}}classTrash_CarextendsCar{doubleamount;fill_trash(){…}}继承v.s.包含“isakindof”v.s.“isapartof”一个很好的经验:“BisakindofA?”,如果是则让B做

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。