信息系统开发之面向对象概念_第1页
信息系统开发之面向对象概念_第2页
信息系统开发之面向对象概念_第3页
信息系统开发之面向对象概念_第4页
信息系统开发之面向对象概念_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

1、信息系统开发之面向对象概念 1 4 4 面向对象的概念面向对象的概念 4.2 4.2 对象和类对象和类 4.3 4.3 消息和方法消息和方法 4.4 4.4 对象接口对象接口 继承性继承性 4.6 4.6 4.7 4.7 多态性多态性 信息系统开发之面向对象概念 2 4.1 起源 在软件开发过程中及使用后,使用者会不断地提出各 种更改要求。 而结构化方法开发的程序中: l这种修改往往是很困难的,而且还会因为计划或考虑不周, 不但旧错误没有得到彻底改正,又引入了新的错误; l另一方面,在结构化程序开发中,代码的重用率很低,使 得程序员的效率并不高。 为提高软件系统的稳定性、可修改性和可重用性,人

2、 们在实践中逐渐创造出软件工程的一种新途径面 向对象方法学。 面向对象基本概念 信息系统开发之面向对象概念 3 面向对象基本概念 1967年 起源 80年代才出现 采用Simula首创的对象、 属性、消息等编程模式 趋于成熟 Smalltalk Objective C C+ Smalltalk-80 C+ Simula OOP的出现 Object-Oriented Programming (OOP) Object-Oriented Analysis int age; String grade; public Student() age=0; public String getName() re

3、turn name; public int getAge() return age; 面向对象基本概念 /变量定义 Student amy; Student richard; /变量初始化 amy=new Student(); /方法调用 int nowAge=amy.getAge(); 类Student的构造器 信息系统开发之面向对象概念 15 4 4 面向对象的概念面向对象的概念 4.1 4.1 起源起源 4.2 4.2 对象和类对象和类 4.4 4.4 对象接口对象接口 继承性继承性 4.6 4.6 封装性封装性 4.7 4.7 多态性多态性 信息系统开发之面向对象概念 16 对象之间进

4、行通信的数据叫做消息。当一个消息发送 给某个对象时,包含要求接收对象去执行某些活动的 信息,接收到消息的对象对其进行解释,然后予以响 应。这种通信机制叫做消息传递。 一个消息由下列三个元素组成: l消息名; l零个或多个参数列表,为接收对象提供数据信息; l对接收对象的引用。 面向对象基本概念 4.3 4.3 消息消息(Message)(Message)和方法和方法(Method)(Method) 信息系统开发之面向对象概念 17 public class Student private int age; public void setAge(int newAge) age=newAge; p

5、ublic int getAge() return age; 面向对象基本概念 Student amy; amy =new Student(); amy.setAge(20); 定义了类Student的对象amy 接收对象 消息名 参数 信息系统开发之面向对象概念 18 方法就是与一个对象有关的过程,即实现某一操作的一段 代码。 一个对象可以有任意数目的方法。当对象收到一个消息时, 决定调用哪个方法来响应消息的过程称为方法绑定。 方法绑定就是找到型构(signature)和消息的元素相匹配 的方法: l方法名与消息名相匹配; l方法的参数表与消息的参数表在类型和数目上相匹配。 执行与消息对应的

6、预定义行为可能会产生三种结果: l返回一个值给消息发送者。 l改变接收者的状态。 l改变作为参数传给接收者的对象的状态。 面向对象基本概念 信息系统开发之面向对象概念 19 面向对象基本概念 对象Student具有以下方法: getName() getAge() setAge() getMark(String grade) getMark(String grade,String course) 方法绑定: Student amy; amy.getAge(); amy.getMark(”first year”,”english”); 定义了类Student的对象amy 寻找型构相同的方法getA

7、ge() 寻找型构相同的方法 getMark(String grade,String course) 信息系统开发之面向对象概念 20 4 4 面向对象的概念面向对象的概念 4.1 4.1 起源起源 4.2 4.2 对象和类对象和类 继承性继承性 4.6 4.6 封装性封装性 4.7 4.7 多态性多态性 信息系统开发之面向对象概念 21 对象可响应的消息是由对象接口决定的。 l对象接口以一组操作方法的形式出现; l每一个操作对应于在响应某个消息时对象所完成的预定 义行为; l客户通过对象接口来理解对象支持的各种行为,并根据 接口来发送消息。 调用对象的操作方法是要遵守一定的规则,这些规则描述

8、 了如何使用对象的每一个操作。 例如,当一个Person对象接收到带有一个参数的setAge() 消息时,规则要求这个参数必须是整型数值对象,下面的 消息就违反了对象调用规则: p.setAge(null); 面向对象基本概念 4.4 对象接口(Interface) 信息系统开发之面向对象概念 22 对象接口的分类: 面向对象基本概念 公有接口:定义了一组可供任何对象发送的消息和调 用的操作方法 限制型接口:对象提供了仅供某些类型的客户使用的限 制型操作。 信息系统开发之面向对象概念 23 class Student private String name,nickname; private

9、int age; private String grade; public Student() age=0; public String getName() return name; public int getAge() return age; public void setName(String newName) name=newName; setNickName(“nick”+newName); private void setNickName(String newName) nickname=newName; 信息系统开发之面向对象概念 24 4 4 面向对象的概念面向对象的概念 4.

10、1 4.1 起源起源 4.2 4.2 对象和类对象和类 4.3 4.3 消息和方法消息和方法 4.4 4.4 对象接口对象接口 4.6 4.6 封装性封装性 4.7 4.7 多态性多态性 信息系统开发之面向对象概念 25 继承性是类层次结构中的一个重要特点,是超类 和子类之间共享数据和操作方法的机制。 面向对象基本概念 继承部分 增加部分 从A继承 A B 4.5 继承性(inheritance) 信息系统开发之面向对象概念 26 面向对象基本概念 继承是软件重用的一个基本机制。当通过继承定义一个 新类时,新类获得了已存在类的属性和行为。 l新类称为子类,而已存在类称为超类或父类。 l子类又可

11、以是其他类的父类,这就形成了继承层次结 构。 RectangleEllipse RegionPoint Figure LineSegment Circle Point,LineSegment ,Region的父类 Ellipse,Rectangle ,Circle的父类 类Figure的子类 信息系统开发之面向对象概念 27 面向对象基本概念 继承有下面三种使用方式: l 子类定义新的属性和方法作为对它所继承的属性和方法 的补充。 l 子类重新实现所继承的一个或多个方法。被子类重定义 的方法称为被覆盖了;也可以说子类覆盖了特定的方法。 l 方法被覆盖后,类的行为发生了变化:对同一个消息, 子类

12、和父类的实例调用不同的方法,产生不同的行为。 l 子类实现一个或多个其父类声明但没有实现的方法。这 种情况下,这个父类就是一个抽象类,而它声明但没有实 现的方法称为抽象方法。 信息系统开发之面向对象概念 28 class Student public Student()age=0; String name;int age;String grade; public String getName() return name;public String getName() return name; public int getAge()return age; class MiddleStudent

13、extends Student String nickName;String nickName; public String getName() return nickName;public String getName() return nickName; 面向对象基本概念 /变量定义 Student amy; MiddleStudent richard; /变量初始化 。 /方法调用 amy.getName()和richard.getName() 对类Student的拓展 对类Student方法的覆盖 信息系统开发之面向对象概念 29 abstract class Student publ

14、ic Student()age=0; String name;int age;String grade; public String getName() return name;public String getName() return name; public int getAge()return age; public abstract void setAge(int newAge); public abstract void setAge(int newAge); class MiddleStudent extends Student String nickName;String ni

15、ckName; public String getName() return nickName;public String getName() return nickName; public void setAge(int newAge) age=newAge; public void setAge(int newAge) age=newAge; 面向对象基本概念 /变量定义 MiddleStudent richard; /变量初始化 。 /方法调用 richard.getName()和 richard.setAge(5) 对类Student的拓展 实现抽象方法 对类Student方法的覆盖

16、信息系统开发之面向对象概念 30 面向对象基本概念 继承的优点 l易编程、易理解:代码短, 结构清晰 l易修改:共同部分只要在一处修改即可 l易增加新类:只须描述不同部分 信息系统开发之面向对象概念 31 4 4 面向对象的概念面向对象的概念 4.1 4.1 起源起源 4.2 4.2 对象和类对象和类 4.3 4.3 消息和方法消息和方法 4.4 4.4 对象接口对象接口 继承性继承性 4.7 4.7 多态性多态性 信息系统开发之面向对象概念 32 面向对象基本概念 4.6 封装性(encapsulation) 封装是把一组相关软件元素组织到一起的方法, 其目的在于将对象的使用者和设计者分开,

17、使用 者不必知道对象行为实现的细节,只须用设计者 提供的对象接口来访问对象。 利用封装来隐藏那些不属于对象公有接口的软件 元素称为信息隐藏。 封装的定义为: 对所有对象的内部软件范围的边界进行限定; 对各对象之间相互作用的接口进行描述; 对每个对象的内部实现(操作程序和数据)进行保 护。 信息系统开发之面向对象概念 33 面向对象基本概念 class Example private float bankRate; public float testResult() return bankRate; 类Example定义了自己的软件范围; 仅能通过Example的接口来进行访问; 类的属性定义和

18、方法的具体实现外部不可见。 信息系统开发之面向对象概念 34 面向对象基本概念 封装的好处: l隐藏和保护对象的内部信息 l在对象行为发生变化时不会对其他对象产生影响 信息系统开发之面向对象概念 35 4 4 面向对象的概念面向对象的概念 4.1 4.1 起源起源 4.2 4.2 对象和类对象和类 4.3 4.3 消息和方法消息和方法 4.4 4.4 对象接口对象接口 继承性继承性 4.6 4.6 封装性封装性 信息系统开发之面向对象概念 36 面向对象基本概念 4.7 多态性(polymorphism) 在收到消息时,对象要予以响应,不同的对象收 到同一消息可能产生多种不同的结果,即会有多种 不同形式,这就是多态。 在使用多态时,用户可以发送一个通用的消息, 而实现的细节则由接收对象自行决定。 多态的实现受到继承性的支持。 l把

温馨提示

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

评论

0/150

提交评论