- 0
- 0
- 约2.08千字
- 约 6页
- 2019-08-27 发布于天津
- 举报
从现在开始,我们要深入到面向对象的编程技术,深入到最吸引人的地方。 本章中,我们首先讲述面向对象程序设计的基本概念及特点,然后讨论中的类、对象、包和接口,最后进行小结,给出一个完整的文件的格式。 61面向对象的程序设计 面向过程的程序设计方法从解决问题的每一个步骤入手,它适合于解决比较小的简单问题。 语言采用面向过程的程序设计模型,但是由于本身几乎没有支持代码重用的语言结构,并且缺乏统一的接口,使得当程序的规模达到一定程度时,程序员很难控制其复杂性。 面向对象的程序设计方法则按照现实世界的特点来管理复杂的事物,把它们抽象为对象,具有自己的状态和行为,通过对消息的反应来完成一定的任务。 611对象、类和消息 一个对象就是变量和相关的方法的集合,其中变量表明对象的状态,方法表明对象所具有的行为,下图表示了一个对象的特征 一个对象的变量构成这个对象的核心,包围在它外面的方法使这个对象和其它对象分离开来。 例如我们可以把汽车抽象为一个对象,用变量来表示它当前的状态,如速度、油量、型号、所处的位置等,它的行为则可以有加速、刹车、换挡等。 我们操纵汽车时,不用去考虑汽车内部各个零件如何运作的细节,而只需根据汽车可能的行为使用相应的方法即可。 实际上,面向对象的程序设计实现了对对象的封装,使我们不必关心对象的行为是如何实现的这样一些细节。 通过对对象的封装,实现了模块化和信息隐藏,有利于程序的可移植性和安全性,同时也利于对复杂对象的管理。 对象之间必须要进行交互来实现复杂的行为。 例如,要使汽车加速,必须发给它一个消息,告诉它进行何种动作这里是加速以及实现这种动作所需的参数这里是需要达到的速度等。 对象对象间的消息传递过程。 一个消息包含三个方面的内容 ●消息的接收者 ●接收对象应采用的方法 ●方法所需要的参数。 同时,接收消息的对象在执行相应的方法后,可能会给发送消息的对象返回一些信息如上例中,汽车的仪表上会出现已经达到的速度等。 由于任何一个对象的所有行为都可以用方法来描述,通过消息机制就可以完全实现对象之间的交互,同时,处于不同处理过程甚至不同主机的对象间也可以通过消息实现交互。 上面所说的对象是一个具体的事物,例如每辆汽车都是一个不同的对象。 但是多个对象常常具有一些共性,如所有的汽车都有轮子、方向盘、刹车装置等。 于是我们抽象出一类对象的共性,这就是类。 类中定义一类对象共有的变量和方法。 把一个类实例化即生成该类的一个对象。 比如我可以定义一个汽车类来描述所有汽车的共性。 通过类的定义人们可以实现代码的复用。 我们不用去描述每一个对象如某辆汽车,而是通过创建类如汽车类的一个实例来创建该类的一个对象,这大大减化了软件的设计。 612继承 通过对象、类,我们实现了封装,通过子类我们可以实现继承。 对于上例来说,公共汽车、出租车、货车等都是汽车,但它们是不同的汽车,除了具有汽车的共性外,它们还具有自己的特点如不同的操作方法,不同的用途等。 这时我们可以把它们作为汽车的子类来实现,它们继承父类汽车的所有状态和行为,同时增加自己的状态和行为。 通过父类和子类,我们实现了类的层次,可以从最一般的类开始,逐步特殊化,定义一系列的子类。 同时,通过继承也实现了代码的复用,使程序的复杂性线性地增长,而不是呈几何级数增长。 在++中支持多重继承,即一个类可以继承多个父类,这使得对象的实现变得非常复杂且不可预料设想多个父类拥有某些相同的变量和方法。 则只支持单一继承,大大降低了复杂度。 在中通过接口可以实现多重继承,但接口的概念更简单,使用更方便,而且不仅仅限于继承,它使多个不相关的类可以具有相同的方法。 613多态 通过方法重写和方法重载来实现多态。 通过方法重写,一个类中可以有多个具有相同名字的方法,由传递给它们不同个数或不同类型的参数来决定使用哪种方法,这就是多态。 例如,对于一个作图的类,它有一个方法用来画图或输出文字,我们可以传递给它一个字符串、一个矩形、一个圆形,甚至还可以再指定作图的初始位置、图形的颜色等,对于每一种实现,只需实现一个新的方法即可,而不需要新起一个名字,这样大大简化了方法的实现和调用,程序员和用户都不需要记住很多的方法名,只需要传入相应的参数即可。 通过方法重载,子类可以重新实现父类的某些方法,使其具有自己的特征。 例如对于汽车类的加速方法,其子类如赛车中可能增加了一些新的部件来改善提高加速性能,这时可以在赛车类中重载父类的加速方法。 重载隐藏了父类的方法,使子类拥有自己具体实现,更进一步表明了与父类相比,子类所具有的特殊性。 本节中,
您可能关注的文档
- 2017年计算机二级VB考试重点知识精讲(4).docx
- 2017年计算机二级《C语言》考前提分试题及答案2.docx
- 2017年计算机二级《C语言》考前冲刺必做试题及答案2.docx
- 2017年计算机二级《C语言》考前冲刺必做试题及答案1.docx
- 2017年计算机二级《C语言》考前提分试题及答案1.docx
- 2017年计算机二级VFP复习重点-Visual FoxPro基础.docx
- 2017年计算机二级VB考试重点知识讲解.docx
- 2017年计算机二级《C语言》考前提分试题及答案3.docx
- 2017年计算机二级《C语言》考前提分试题及答案4.docx
- 2017年计算机二级《C语言》考前提分试题及答案5.docx
最近下载
- 计算材料学课件:能带计算.ppt VIP
- 在线网课学堂《心理统计》单元考核测试答案.pdf VIP
- 《手术烟雾安全指南(2022版)》解读.pdf VIP
- 2024-2025学年扬州八年级数学下学期第一次月考卷【测试范围:苏科版八年级下册第七章-第九章】(全解全析).pdf VIP
- 世界贸易组织WTO规则课件(1-5).ppt VIP
- (六个对照)加强理论武装、执行上级组织决定、严格组织生活、加强党员管理监督、做好群众工作、抓好自身建设党支部2025年度组织生活会班子对照检查材料.docx VIP
- 2025年咸阳职业技术学院高职单招职业技能考试题库完整版带答案解析.docx VIP
- 光纤通信系统 第4版 习题及答案 沈建华 第1--4章.pdf
- 建筑施工测量培训课件.ppt VIP
- CNAS管理评审报告.docx VIP
原创力文档

文档评论(0)