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

下载本文档

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

文档简介

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

2、学。面向对象基本概念信息系统工程3面向对象基本概念1967年起源80年代才出现采用simula首创的对象、属性、消息等编程模式趋于成熟smalltalkobjective cc+smalltalk-80c+simula oop的出现object-oriented programming (oop)object-oriented analysis&design (ooa&ood)信息系统工程4面向对象方法的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程。面向对象程序员的观点:计算机程序结构应该与要解决的问题一致,而不是与某种分析

3、或开发方法保持一致。l经验表明,对任何软件系统而言,其中最稳定的成分往往是其相应问题域(problem domain)中的成分。面向对象基本概念世界世界对象2对象1对象m对象n对象3信息系统工程5 面向对象方法具有下述四个要点: (1)认为客观世界是由各种对象组成的,任何事物都是对象。l世界:学校、学生、教师、桌子、教学楼、书籍等等对象 (2)把所有对象都划分成各种对象类(简称为类),每个对象类都定义了一组数据和一组方法。l学生类:包含的对象有张三、李四等多个学生l学生类的数据:姓名(name),性别(gender),年龄(age),籍贯(hometown)等l学生类的方法:getname()

4、,setname(),getage(),calculatemark()面向对象基本概念信息系统工程6 (3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。 (4)对象彼此之间仅能通过传递消息互相联系。面向对象基本概念信息系统工程74 4 面向对象的概念面向对象的概念4.1 4.1 起源起源4.3 4.3 消息和方法消息和方法4.4 4.4 对象接口对象接口继承性继承性4.6 4.6 封装性封装性4.7 4.7 多态性多态性信息系统工程84.2 对象和类某个信息系统所要处理的问题涉及的领域(范围)叫做问题空间(问题域),而对象是问题空间

5、中与系统问题处理相关的事物的抽象体。l不同视角的观点:l用户对象相当于现实世界的某类事物;l系统分析员对象是描述该事物的一组属性数据和作用于这些属性数据之上的操作方法。l一个对象是把事物的属性和对属性数据的操作方法结合而成的整体。面向对象基本概念信息系统工程9对象表示真实的事物,它可以是视觉可见的东西或抽象概念,它既可以是主动的、可以启动或控制过程的事物,也可以是被动响应服务请求的事物。 对象有三个特性:预定义行为、状态和标识。l预定义行为是对象初始时所定义的动作序列,直观地说,是对象定义的各种方法的集合。l一个对象可以有任意个属性或域,对象的状态和存储在它的域中的值相对应。l而标识是对象的唯

6、一编号,用来与其他对象相区别。面向对象基本概念信息系统工程10学生对象张三,其数据包括(name,gender,age,grade)状态:l状态1:(张三,男,18,大一)l状态2:(张三,男,19,大二)l状态3:(张三,男,20,大三)预定义行为: getname(),setname(),getage(),calculatemark()标识一个独有的引用:张三面向对象基本概念信息系统工程11一个类定义了一组大体上相同的对象。一个类所包含的操作方法和属性数据描述了一组对象的共同行为和属性。 l如学生是一个类,学生丁三、李四是两个对象,是学生类的实例。 每一个对象都属于某个类。类不仅决定了对象

7、的类型,还决定它的域(属性)和方法。l域和方法在类定义中表达出来。l创建一个新对象时,与对象类型相对应的类定义决定了对象的结构和行为。 面向对象基本概念类(class)信息系统工程12一个类的上层可以有超类,下层可以有子类,形成一种层次结构,且在这种类层次结构中,一个类可以有多个超类,也可以有多个子类。类和类之间的主要关系:l分类结构:l聚集结构:l关联关系:面向对象基本概念信息系统工程13 类的主要功能有三个:l类定义了类型,即一组对象共有的属性和方法;l类提供了它的类型的实现,它定义了实例如何表示以及根据选定的表示方法如何实现;l类提供了初始化实例的构造器,构造器可以用来创建和初始化新的实

8、例。 面向对象基本概念信息系统工程14class student string name; int age; string grade; public student() age=0; public string getname() return name; public int getage() return age; 面向对象基本概念/变量定义student amy;student richard;/变量初始化amy=new student();/方法调用int nowage=amy.getage();类student的构造器信息系统工程154 4 面向对象的概念面向对象的概念4.1 4.

9、1 起源起源4.2 4.2 对象和类对象和类4.4 4.4 对象接口对象接口继承性继承性4.6 4.6 封装性封装性4.7 4.7 多态性多态性信息系统工程16对象之间进行通信的数据叫做消息。当一个消息发送给某个对象时,包含要求接收对象去执行某些活动的信息,接收到消息的对象对其进行解释,然后予以响应。这种通信机制叫做消息传递。一个消息由下列三个元素组成:l消息名;l零个或多个参数列表,为接收对象提供数据信息;l对接收对象的引用。 面向对象基本概念4.3 4.3 消息消息(message)(message)和方法和方法(method)(method)信息系统工程17public class st

10、udent private int age; public void setage(int newage) age=newage; public int getage() return age; 面向对象基本概念student amy;amy =new student();amy.setage(20);定义了类student的对象amy接收对象消息名参数信息系统工程18方法就是与一个对象有关的过程,即实现某一操作的一段代码。一个对象可以有任意数目的方法。当对象收到一个消息时,决定调用哪个方法来响应消息的过程称为方法绑定。方法绑定就是找到型构(signature)和消息的元素相匹配的方法:l方法

11、名与消息名相匹配;l方法的参数表与消息的参数表在类型和数目上相匹配。执行与消息对应的预定义行为可能会产生三种结果: 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的

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

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

14、nt() 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; 信息系统工程244 4 面向对象的概念面向对象的概念4.1 4.1 起源起源4.2 4.2 对象和类对象和类4.3 4.3 消息和方法消息和方法4.4 4.4 对

15、象接口对象接口4.6 4.6 封装性封装性4.7 4.7 多态性多态性信息系统工程25 继承性是类层次结构中的一个重要特点,是超类和子类之间共享数据和操作方法的机制。 面向对象基本概念继承部分 增加部分从a继承ab4.5 继承性(inheritance) 信息系统工程26面向对象基本概念继承是软件重用的一个基本机制。当通过继承定义一个新类时,新类获得了已存在类的属性和行为。l新类称为子类,而已存在类称为超类或父类。l子类又可以是其他类的父类,这就形成了继承层次结构。rectangleellipseregionpointfigurelinesegmentcirclepoint,linesegme

16、nt,region的父类ellipse,rectangle,circle的父类类figure的子类信息系统工程27面向对象基本概念 继承有下面三种使用方式:l 子类定义新的属性和方法作为对它所继承的属性和方法的补充。l 子类重新实现所继承的一个或多个方法。被子类重定义的方法称为被覆盖了;也可以说子类覆盖了特定的方法。l 方法被覆盖后,类的行为发生了变化:对同一个消息,子类和父类的实例调用不同的方法,产生不同的行为。l 子类实现一个或多个其父类声明但没有实现的方法。这种情况下,这个父类就是一个抽象类,而它声明但没有实现的方法称为抽象方法。 信息系统工程28class student public

17、 student()age=0; string name;int age;string grade; public string getnamepublic string getname() return name;() return name; public int getage()return age; class middlestudent extends student string nicknamestring nickname; ; public string getname() return nicknamepublic string getname() return nickn

18、ame; 面向对象基本概念/变量定义student amy; middlestudent richard;/变量初始化。/方法调用amy.getname()和richard.getname()对类student的拓展对类student方法的覆盖信息系统工程29abstract class student public student()age=0; string name;int age;string grade; public string getnamepublic string getname() return name;() return name; public int getage

19、()return age; public abstract void setage(int newagepublic abstract void setage(int newage); ); class middlestudent extends student string nicknamestring nickname; ; public string getname() return nicknamepublic string getname() return nickname; public void setage(int newage) age=newage public void

20、setage(int newage) age=newage;面向对象基本概念/变量定义middlestudent richard;/变量初始化。/方法调用richard.getname()和 richard.setage(5)对类student的拓展实现抽象方法对类student方法的覆盖信息系统工程30面向对象基本概念 继承的优点l易编程、易理解:代码短, 结构清晰l易修改:共同部分只要在一处修改即可l易增加新类:只须描述不同部分信息系统工程314 4 面向对象的概念面向对象的概念4.1 4.1 起源起源4.2 4.2 对象和类对象和类4.3 4.3 消息和方法消息和方法4.4 4.4 对象

21、接口对象接口继承性继承性4.7 4.7 多态性多态性信息系统工程32面向对象基本概念4.6 封装性(encapsulation)封装是把一组相关软件元素组织到一起的方法,其目的在于将对象的使用者和设计者分开,使用者不必知道对象行为实现的细节,只须用设计者提供的对象接口来访问对象。 利用封装来隐藏那些不属于对象公有接口的软件元素称为信息隐藏。封装的定义为: 对所有对象的内部软件范围的边界进行限定; 对各对象之间相互作用的接口进行描述; 对每个对象的内部实现(操作程序和数据)进行保护。 信息系统工程33面向对象基本概念class example private float bankrate; public float testresult() return bankrate; 类example定义了自己的软件范围;仅能通过example的接口来进行访问;类的属性定义和方法的具体实现外部不可见。信息

温馨提示

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

评论

0/150

提交评论