版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、第第1 1章章 面向对象程序设计面向对象程序设计2教学目标教学目标n比较面向对象与面向过程的程序设计n类与对象n封装与信息隐藏n继承n多态性n面向对象的建模和UML 31.11.1比较面向对象与面向过程程序设计比较面向对象与面向过程程序设计n面向过程程序设计n程序由多个模块模块构成 n程序组成单位:过程或函数n结构化程序设计:n自顶向下、逐步求精的功能分解法,n一个要解决的问题被分解成若干个子问题,每个子问题又被划分成若干个子子问题。这种自顶向下的功能分解一直持续下去,直到子问题足够简单,可以在相应的子过程中解决。 n存在问题:把数据和处理数据的过程分离n可复用性差 、开发和维护都很困难。4面
2、向过程程序设计面向过程程序设计int max(int num1,int num2) if (num1num2) return num1; else return num2;图图1-11-1:自顶向下的功能分解与程序结构:自顶向下的功能分解与程序结构5面向对象程序设计面向对象程序设计n面向对象其实是现实世界模型的自然延伸。n现实世界是由一个一个对象组成;n对象之间通过消息(请求和服务)相互协作,完成系统的功能.61.2 1.2 类与对象类与对象n面向对象程序设计面向对象程序设计: :n将客观事物(或实体)看作具有属性和行为(或称服务)的对象(object),通过抽象抽象找出同一类对象的共同属性(
3、静态特征)和行为(动态特征),而形成类类(class)的概念。n程序的执行,表现为一组对象之间的交互通信。对象之间通过公共接口进行通信,从而完成系统功能。n类是相同对象的集合的描述类是相同对象的集合的描述。 例如,类Human就是现实世界中人(对象)的集合,我、你、他都是Human的对象。 分析类Human的所有对象人,得到对象的共同的数据属性和行为,如下所示: 数据属性:编号、姓名、年龄, 行为:吃饭、走路、跳舞, 抽象是对具体对象进行概括,抽象出这一类对象的公共性质并加以描述的过程。n先注意问题的本质及描述,其次是实现过程或细节。71.2 1.2 类与对象类与对象( (续续) )定义定义H
4、umanHuman类类:class Human int no; String name; int age; void eat() Human被称作类名。no,name,age被称作域域(fields)或变量或变量,eat()被称作方法方法(methods),它们都是类的成员。 81.2 1.2 类与对象类与对象( (续续) )n在面向对象的编程语言中,n类是一个数据类型n对象是类的实例对象是类的实例(instance)。n引用变量:具有类类型的变量被称作对象引用对象引用(object reference)。例如,Human p1=new Human(1,“张三”,20,);p1被称作对象引用变
5、量,new Human(1,”张三“,20,) 被称作Human的对象。9对象对象n对象对象: :是用来描述是用来描述现实世界中实际存在的事物现实世界中实际存在的事物的实的实体体,它是用来构成系统的一个单位。n对象由一组属性和一组行为对象由一组属性和一组行为( (操作或服务)构成构成。n对象具有固定的对外接口对外接口.n一组属性和操作的集合.n对象之间通过公共接口进行通信.n对象的状态对象的状态:n对象的属性值对象的属性值表示了它所处于的状态;n对象的操作对象的操作是用来改变对象状态。101.3 1.3 封装与信息隐藏封装与信息隐藏n封装封装(Encapsulation)是面向对象方法的重要原
6、则。n就是把对象的属性和操作(或服务)结合为一个独立的整体(系统单位),并尽可能隐藏对象的内部实现细节。n封装有两个含义:n其一,把对象的全部属性和全部服务结合在一起,形成一个不可分割的独立单位类。n其二,“信息隐蔽”,尽可能隐蔽对象的内部细节,对外界形成一个边界,只保留有限的对外接口使之与外部发生联系。111.3 1.3 封装与信息隐藏封装与信息隐藏( (续续) )nJavaJava语言中,定义类时通过大括号语言中,定义类时通过大括号 封装了类封装了类的成员:的成员:n域域(fields)(fields)和方法和方法(methods)(methods),n使用private和public等关
7、键字来控制对类的成员的访问,其中private修饰的成员是隐藏的,而public修饰的成员则定义了类对外的公共接口。n类作为一个抽象的数据类型类作为一个抽象的数据类型n允许用户从底层实现细节中抽象出来,提供给用户的是在公共接口上的上层操作。这是抽象性抽象性的含义。121.4 继承继承InheritanceInheritancen继承继承: :在已有类(父类或超类)的基础上派在已有类(父类或超类)的基础上派生出新的类(子类),新的类能够吸收已生出新的类(子类),新的类能够吸收已有类的属性和行为,并扩展新的能力有类的属性和行为,并扩展新的能力。n继承机制中,往往从一组类中抽象出公共属性放在父类。n
8、继承支持着软件代码的复用,是提高软件开发效率的重要因素之一。 13继承的例子继承的例子 例如,给定类Car、Motocycle和Truck,我们把它们的公共属性放在一个称为Vehicle的公共父类中。VehicalCarMotocycleTruck14继承的例子继承的例子苹果苹果梨梨西瓜西瓜水果水果15继承的例子继承的例子CircleCircleRectangleRectangleShape161.4 继承继承(续续) Java中继承的一个例子:给定一个Window类,通过继承扩展它而得到一个子类MenuWin。class Win / Win的成员定义class MenuWin extends
9、 Win /MenuWin新增加成员的定义171.4 继承继承(续续)n继承分为继承分为: :n单继承单继承是指一个子类最多只能有一个父类。n多继承多继承是一个子类可有二个以上的父类。n由于多继承会带来二义性,在实际应用中应尽量使用单继承。Java语言中的类只支持单继承,而接口支持多继承。 如何设计继承并完成继承层次是面向对象设计和编程的核心问题。继承是多态性的前提条件。18objectWinDialogWin单继承,in javaClass 1Class 4Class 2Class 3多继承多继承,in C+单继承与多继承例子单继承与多继承例子191.5 多态性多态性n多态性多态性(Poly
10、morphismPolymorphism):n指在超类中定义的属性或行为,被子类继承之后,可以具有不同的数据类型或表现出不同的行为。n这使得同一个属性或行为在超类及其各个子类中具有不同的语义。20本节小结本节小结n面向对象方法的显著特性n封装性、抽象性、继承性和多态性n将面向对象设计方法应用于程序的开发工具和开发过程中,不仅可以加快开发的速度,还可极大地增强程序的可维护性和可扩展性,提高代码重用率。211.6 面向对象的建模和面向对象的建模和UMLn统一建模语言(Unified Modeling Language,UML)是一种流行的建模语言。nUML是一种图形化语言,允许系统构造人员(即软件
11、设计师、系统工程师、程序员等)用一种通用表示法描述系统的需求以及面向对象的分析和设计结果。221.6 面向对象的建模和面向对象的建模和UML(续续)n作为一个建模语言, UML由一个用于表达模型的词汇表和一个定义怎样组合词汇的语法规则构成,即: UML = UML词汇表 + UML建模的语法规则 UML词汇表 = UML 事物+ 关系+ 模型图。nUML UML 事物(事物(ThingThing):就是被模拟的实体或对象。事物可能是包、类、接口等等。n事物之间的语义上的联系事物之间的语义上的联系:用关系表示,UML中共有4种关系,它们是:依赖关系、关联关系、泛化关系和实现关系。n从软件的体系结构出发,UMLUML把软件模型分成了四个视图:把软件模型分成了四个视图:用例视图、逻辑视图、实现视图和分布视图。用例视图、逻辑视图、实现视图和分布视图。 在本书的有关章节中,案例分析和设计的结果用UML图形化表示,使读者对UML有一个感性化认识。 23小结小结
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《GBT 21526-2008 结构胶粘剂 粘接前金属和塑料表面处理导则》专题研究报告
- 《GB 14722-2008组件式髋部、膝部和大腿假肢》专题研究报告深度
- 《GBT 22133-2008流体流量测量 流量计性能表述方法》专题研究报告
- 《GBT 17587.5-2008滚珠丝杠副 第5部分:轴向额定静载荷和动载荷及使用寿命》专题研究报告
- 道路安全培训教学课件
- 道教协会安全培训课件
- 道宝当众讲话培训
- 2025局部晚期非小细胞肺癌多学科管理与治疗策略共识课件
- 云南国防工业职业技术学院《机电一体化技术(军工方向)》2024-2025 学年第一学期期末试卷(核心专业)
- 达人培训课件安装
- 2023-2024学年北京市海淀区清华附中八年级(上)期末数学试卷(含解析)
- 临终决策中的医患共同决策模式
- 2026年包头轻工职业技术学院高职单招职业适应性测试备考题库及答案详解
- 流感防治知识培训
- 呼吸内科进修汇报课件
- 康复治疗进修汇报
- 牵引供电系统短路计算-三相对称短路计算(高铁牵引供电系统)
- 离婚协议书模板(模板)(通用)
- (完整版)第一性原理
- 降低住院患者口服药缺陷率教学课件
- 《质量管理与控制技术基础》第一章 质量管理基础知识
评论
0/150
提交评论