版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、信息系统工程,1,4 面向对象的概念,4.1 起源 4.2 对象和类 4.3 消息和方法 4.4 对象接口 4.5 继承性 4.6 封装性 4.7 多态性,信息系统工程,2,4.1 起源,在软件开发过程中及使用后,使用者会不断地提出各种更改要求。 而结构化方法开发的程序中: 这种修改往往是很困难的,而且还会因为计划或考虑不周,不但旧错误没有得到彻底改正,又引入了新的错误; 另一方面,在结构化程序开发中,代码的重用率很低,使得程序员的效率并不高。 为提高软件系统的稳定性、可修改性和可重用性,人们在实践中逐渐创造出软件工程的一种新途径面向对象方法学。,面向对象基本概念,信息系统工程,3,面向对象基
2、本概念,OOP的出现,信息系统工程,4,面向对象方法的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程。 面向对象程序员的观点:计算机程序结构应该与要解决的问题一致,而不是与某种分析或开发方法保持一致。 经验表明,对任何软件系统而言,其中最稳定的成分往往是其相应问题域(problem domain)中的成分。,面向对象基本概念,信息系统工程,5,面向对象方法具有下述四个要点: (1)认为客观世界是由各种对象组成的,任何事物都是对象。 世界:学校、学生、教师、桌子、教学楼、书籍等等对象 (2)把所有对象都划分成各种对象类(简称为类
3、),每个对象类都定义了一组数据和一组方法。 学生类:包含的对象有张三、李四等多个学生 学生类的数据:姓名(name),性别(gender),年龄(age),籍贯(hometown)等 学生类的方法:getName(),setName(),getAge(),calculateMark(),面向对象基本概念,信息系统工程,6,(3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。 (4)对象彼此之间仅能通过传递消息互相联系。,面向对象基本概念,信息系统工程,7,4 面向对象的概念,4.1 起源 4.2 对象和类 4.3 消息和方法 4.4
4、对象接口 4.5 继承性 4.6 封装性 4.7 多态性,信息系统工程,8,4.2 对象和类,某个信息系统所要处理的问题涉及的领域(范围)叫做问题空间(问题域),而对象是问题空间中与系统问题处理相关的事物的抽象体。 不同视角的观点: 用户对象相当于现实世界的某类事物; 系统分析员对象是描述该事物的一组属性数据和作用于这些属性数据之上的操作方法。 一个对象是把事物的属性和对属性数据的操作方法结合而成的整体。,面向对象基本概念,信息系统工程,9,对象表示真实的事物,它可以是视觉可见的东西或抽象概念,它既可以是主动的、可以启动或控制过程的事物,也可以是被动响应服务请求的事物。 对象有三个特性:预定义
5、行为、状态和标识。 预定义行为是对象初始时所定义的动作序列,直观地说,是对象定义的各种方法的集合。 一个对象可以有任意个属性或域,对象的状态和存储在它的域中的值相对应。 而标识是对象的唯一编号,用来与其他对象相区别。,面向对象基本概念,信息系统工程,10,学生对象张三,其数据包括(name,gender,age,grade) 状态: 状态1:(张三,男,18,大一) 状态2:(张三,男,19,大二) 状态3:(张三,男,20,大三) 预定义行为: getName(),setName(),getAge(),calculateMark() 标识一个独有的引用:张三,面向对象基本概念,信息系统工程,
6、11,一个类定义了一组大体上相同的对象。一个类所包含的操作方法和属性数据描述了一组对象的共同行为和属性。 如学生是一个类,学生丁三、李四是两个对象,是学生类的实例。 每一个对象都属于某个类。类不仅决定了对象的类型,还决定它的域(属性)和方法。 域和方法在类定义中表达出来。 创建一个新对象时,与对象类型相对应的类定义决定了对象的结构和行为。,面向对象基本概念,类(Class),信息系统工程,12,一个类的上层可以有超类,下层可以有子类,形成一种层次结构,且在这种类层次结构中,一个类可以有多个超类,也可以有多个子类。 类和类之间的主要关系: 分类结构: 聚集结构: 关联关系:,面向对象基本概念,信
7、息系统工程,13,类的主要功能有三个: 类定义了类型,即一组对象共有的属性和方法; 类提供了它的类型的实现,它定义了实例如何表示以及根据选定的表示方法如何实现; 类提供了初始化实例的构造器,构造器可以用来创建和初始化新的实例。,面向对象基本概念,信息系统工程,14,class Student String name; int age; String grade; public Student() age=0; public String getName() return name; public int getAge() return age; ,面向对象基本概念,/变量定义 Student
8、amy; Student richard; /变量初始化 amy=new Student(); /方法调用 int nowAge=amy.getAge();,信息系统工程,15,4 面向对象的概念,4.1 起源 4.2 对象和类 4.3 消息和方法 4.4 对象接口 4.5 继承性 4.6 封装性 4.7 多态性,信息系统工程,16,对象之间进行通信的数据叫做消息。当一个消息发送给某个对象时,包含要求接收对象去执行某些活动的信息,接收到消息的对象对其进行解释,然后予以响应。这种通信机制叫做消息传递。 一个消息由下列三个元素组成: 消息名; 零个或多个参数列表,为接收对象提供数据信息; 对接收对
9、象的引用。,面向对象基本概念,4.3 消息(Message)和方法(Method),信息系统工程,17,public class Student private int age; public void setAge(int newAge) age=newAge; public int getAge() return age; ,面向对象基本概念,Student amy; amy =new Student(); amy.setAge(20);,信息系统工程,18,方法就是与一个对象有关的过程,即实现某一操作的一段代码。 一个对象可以有任意数目的方法。当对象收到一个消息时,决定调用哪个方法来响应
10、消息的过程称为方法绑定。 方法绑定就是找到型构(signature)和消息的元素相匹配的方法: 方法名与消息名相匹配; 方法的参数表与消息的参数表在类型和数目上相匹配。 执行与消息对应的预定义行为可能会产生三种结果: 返回一个值给消息发送者。 改变接收者的状态。 改变作为参数传给接收者的对象的状态。,面向对象基本概念,信息系统工程,19,面向对象基本概念,对象Student具有以下方法: getName() getAge() setAge() getMark(String grade) getMark(String grade,String course),方法绑定: Student amy;
11、 amy.getAge(); amy.getMark(”first year”,”english”);,信息系统工程,20,4 面向对象的概念,4.1 起源 4.2 对象和类 4.3 消息和方法 4.4 对象接口 4.5 继承性 4.6 封装性 4.7 多态性,信息系统工程,21,对象可响应的消息是由对象接口决定的。 对象接口以一组操作方法的形式出现; 每一个操作对应于在响应某个消息时对象所完成的预定义行为; 客户通过对象接口来理解对象支持的各种行为,并根据接口来发送消息。 调用对象的操作方法是要遵守一定的规则,这些规则描述了如何使用对象的每一个操作。 例如,当一个Person对象接收到带有一
12、个参数的setAge()消息时,规则要求这个参数必须是整型数值对象,下面的消息就违反了对象调用规则: p.setAge(null);,面向对象基本概念,4.4 对象接口(Interface),信息系统工程,22,对象接口的分类:,面向对象基本概念,信息系统工程,23,class Student private String name,nickname; private int age; private String grade; public Student() age=0; public String getName() return name; public int getAge() re
13、turn age; public void setName(String newName) name=newName; setNickName(“nick”+newName); private void setNickName(String newName) nickname=newName; ,信息系统工程,24,4 面向对象的概念,4.1 起源 4.2 对象和类 4.3 消息和方法 4.4 对象接口 4.5 继承性 4.6 封装性 4.7 多态性,信息系统工程,25,继承性是类层次结构中的一个重要特点,是超类和子类之间共享数据和操作方法的机制。,面向对象基本概念,4.5 继承性(inher
14、itance),信息系统工程,26,面向对象基本概念,继承是软件重用的一个基本机制。当通过继承定义一个新类时,新类获得了已存在类的属性和行为。 新类称为子类,而已存在类称为超类或父类。 子类又可以是其他类的父类,这就形成了继承层次结构。,信息系统工程,27,面向对象基本概念,继承有下面三种使用方式: 子类定义新的属性和方法作为对它所继承的属性和方法的补充。 子类重新实现所继承的一个或多个方法。被子类重定义的方法称为被覆盖了;也可以说子类覆盖了特定的方法。 方法被覆盖后,类的行为发生了变化:对同一个消息,子类和父类的实例调用不同的方法,产生不同的行为。 子类实现一个或多个其父类声明但没有实现的方
15、法。这种情况下,这个父类就是一个抽象类,而它声明但没有实现的方法称为抽象方法。,信息系统工程,28,class Student public Student()age=0; String name;int age;String grade; public String getName() return name; public int getAge()return age; class MiddleStudent extends Student String nickName; public String getName() return nickName; ,面向对象基本概念,/变量定义 S
16、tudent amy; MiddleStudent richard; /变量初始化 。 /方法调用 amy.getName()和richard.getName(),信息系统工程,29,abstract class Student public Student()age=0; String name;int age;String grade; public String getName() return name; public int getAge()return age; public abstract void setAge(int newAge); class MiddleStudent
17、 extends Student String nickName; public String getName() return nickName; public void setAge(int newAge) age=newAge; ,面向对象基本概念,/变量定义 MiddleStudent richard; /变量初始化 。 /方法调用 richard.getName()和 richard.setAge(5),信息系统工程,30,面向对象基本概念,继承的优点 易编程、易理解:代码短, 结构清晰 易修改:共同部分只要在一处修改即可 易增加新类:只须描述不同部分,信息系统工程,31,4 面向对
18、象的概念,4.1 起源 4.2 对象和类 4.3 消息和方法 4.4 对象接口 4.5 继承性 4.6 封装性 4.7 多态性,信息系统工程,32,面向对象基本概念,4.6 封装性(encapsulation),封装是把一组相关软件元素组织到一起的方法,其目的在于将对象的使用者和设计者分开,使用者不必知道对象行为实现的细节,只须用设计者提供的对象接口来访问对象。 利用封装来隐藏那些不属于对象公有接口的软件元素称为信息隐藏。 封装的定义为: 对所有对象的内部软件范围的边界进行限定; 对各对象之间相互作用的接口进行描述; 对每个对象的内部实现(操作程序和数据)进行保护。,信息系统工程,33,面向对象基本概念,class Example private float bankRate; public float testResult() return bankRate; ,类Example定义了自己的软件范围; 仅能通过Example的接口来进行访问; 类的属性定义和方法的具体实现外部不可见。,信息系统工程,34,面向对象基本概念,封装的好处: 隐藏和保
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 《财务部流程大全》课件
- 《面试之逻辑题》课件
- 《八年级物理电荷》课件
- 建设工程工程量清单
- 食品厂设备操作制度
- 2026年杯测师职业技能等级认定(一级)理论知识模拟试题
- (2026版)计算机教研组工作总结
- (2026版)会计事务所实习总结
- 材料力学性能教学课件材料在冲击载荷下的力学性能
- 社区嵌入式养老服务项目可行性研究报告
- 2026年湘教版初中八年级数学上册(全册)知识点总结
- 《智慧广场-合理安排时间》教案(2课时)-2026-2027学年青岛版(新教材)小学数学六年级上册
- 课件-试点地区的增值税纳税申报表填报实务(一)
- 本科《伤寒论》太阳病篇(一)教学设计-六经辨证体系与太阳病纲领
- 《水质-9种酯类化合物的测定 吹扫捕集-气相色谱-质谱法》
- 2026中铝科学技术研究院有限公司(中铝集团未来科学技术研究院)面向中铝集团内部招聘笔试历年备考题库附带答案详解
- GB/T 47260.6-2026钢轨扣件系统试验方法第6部分:耐恶劣环境条件试验方法
- 消防施工安全管理体系
- 2025年上海市安全员-C3证模拟试题及答案
- 泰国政治概况
- 《黄帝内经》理论与女子不月的治法解读课件
评论
0/150
提交评论