ISE-2-2-信息系统开发之面向对象概念.ppt

上传人:max****ui 文档编号:11496661 上传时间:2020-04-25 格式:PPT 页数:38 大小:516.50KB
返回 下载 相关 举报
ISE-2-2-信息系统开发之面向对象概念.ppt_第1页
第1页 / 共38页
ISE-2-2-信息系统开发之面向对象概念.ppt_第2页
第2页 / 共38页
ISE-2-2-信息系统开发之面向对象概念.ppt_第3页
第3页 / 共38页
点击查看更多>>
资源描述
信息系统工程,1,4面向对象的概念,4.1起源4.2对象和类4.3消息和方法4.4对象接口4.5继承性4.6封装性4.7多态性,信息系统工程,2,4.1起源,在软件开发过程中及使用后,使用者会不断地提出各种更改要求。而结构化方法开发的程序中:这种修改往往是很困难的,而且还会因为计划或考虑不周,不但旧错误没有得到彻底改正,又引入了新的错误;另一方面,在结构化程序开发中,代码的重用率很低,使得程序员的效率并不高。为提高软件系统的稳定性、可修改性和可重用性,人们在实践中逐渐创造出软件工程的一种新途径面向对象方法学。,面向对象基本概念,信息系统工程,3,面向对象基本概念,OOP的出现,信息系统工程,4,面向对象方法的出发点和基本原则是尽可能模拟人类习惯的思维方式,使开发软件的方法与过程尽可能接近人类认识世界、解决问题的方法与过程。面向对象程序员的观点:计算机程序结构应该与要解决的问题一致,而不是与某种分析或开发方法保持一致。经验表明,对任何软件系统而言,其中最稳定的成分往往是其相应问题域(problemdomain)中的成分。,面向对象基本概念,信息系统工程,5,面向对象方法具有下述四个要点:(1)认为客观世界是由各种对象组成的,任何事物都是对象。世界:学校、学生、教师、桌子、教学楼、书籍等等对象(2)把所有对象都划分成各种对象类(简称为类),每个对象类都定义了一组数据和一组方法。学生类:包含的对象有张三、李四等多个学生学生类的数据:姓名(name),性别(gender),年龄(age),籍贯(hometown)等学生类的方法:getName(),setName(),getAge(),calculateMark(),面向对象基本概念,信息系统工程,6,(3)按照子类(或称为派生类)与父类(或称为基类)的关系,把若干个对象类组成一个层次结构的系统(也称为类等级)。(4)对象彼此之间仅能通过传递消息互相联系。,面向对象基本概念,信息系统工程,7,4面向对象的概念,4.1起源4.2对象和类4.3消息和方法4.4对象接口4.5继承性4.6封装性4.7多态性,信息系统工程,8,4.2对象和类,某个信息系统所要处理的问题涉及的领域(范围)叫做问题空间(问题域),而对象是问题空间中与系统问题处理相关的事物的抽象体。不同视角的观点:用户对象相当于现实世界的某类事物;系统分析员对象是描述该事物的一组属性数据和作用于这些属性数据之上的操作方法。一个对象是把事物的属性和对属性数据的操作方法结合而成的整体。,面向对象基本概念,信息系统工程,9,对象表示真实的事物,它可以是视觉可见的东西或抽象概念,它既可以是主动的、可以启动或控制过程的事物,也可以是被动响应服务请求的事物。对象有三个特性:预定义行为、状态和标识。预定义行为是对象初始时所定义的动作序列,直观地说,是对象定义的各种方法的集合。一个对象可以有任意个属性或域,对象的状态和存储在它的域中的值相对应。而标识是对象的唯一编号,用来与其他对象相区别。,面向对象基本概念,信息系统工程,10,学生对象张三,其数据包括(name,gender,age,grade)状态:状态1:(张三,男,18,大一)状态2:(张三,男,19,大二)状态3:(张三,男,20,大三)预定义行为:getName(),setName(),getAge(),calculateMark()标识一个独有的引用:张三,面向对象基本概念,信息系统工程,11,一个类定义了一组大体上相同的对象。一个类所包含的操作方法和属性数据描述了一组对象的共同行为和属性。如学生是一个类,学生丁三、李四是两个对象,是学生类的实例。每一个对象都属于某个类。类不仅决定了对象的类型,还决定它的域(属性)和方法。域和方法在类定义中表达出来。创建一个新对象时,与对象类型相对应的类定义决定了对象的结构和行为。,面向对象基本概念,类(Class),信息系统工程,12,一个类的上层可以有超类,下层可以有子类,形成一种层次结构,且在这种类层次结构中,一个类可以有多个超类,也可以有多个子类。类和类之间的主要关系:分类结构:聚集结构:关联关系:,面向对象基本概念,信息系统工程,13,类的主要功能有三个:类定义了类型,即一组对象共有的属性和方法;类提供了它的类型的实现,它定义了实例如何表示以及根据选定的表示方法如何实现;类提供了初始化实例的构造器,构造器可以用来创建和初始化新的实例。,面向对象基本概念,信息系统工程,14,classStudentStringname;intage;Stringgrade;publicStudent()age=0;publicStringgetName()returnname;publicintgetAge()returnage;,面向对象基本概念,/变量定义Studentamy;Studentrichard;/变量初始化amy=newStudent();/方法调用intnowAge=amy.getAge();,信息系统工程,15,4面向对象的概念,4.1起源4.2对象和类4.3消息和方法4.4对象接口4.5继承性4.6封装性4.7多态性,信息系统工程,16,对象之间进行通信的数据叫做消息。当一个消息发送给某个对象时,包含要求接收对象去执行某些活动的信息,接收到消息的对象对其进行解释,然后予以响应。这种通信机制叫做消息传递。一个消息由下列三个元素组成:消息名;零个或多个参数列表,为接收对象提供数据信息;对接收对象的引用。,面向对象基本概念,4.3消息(Message)和方法(Method),信息系统工程,17,publicclassStudentprivateintage;publicvoidsetAge(intnewAge)age=newAge;publicintgetAge()returnage;,面向对象基本概念,Studentamy;amy=newStudent();amy.setAge(20);,信息系统工程,18,方法就是与一个对象有关的过程,即实现某一操作的一段代码。一个对象可以有任意数目的方法。当对象收到一个消息时,决定调用哪个方法来响应消息的过程称为方法绑定。方法绑定就是找到型构(signature)和消息的元素相匹配的方法:方法名与消息名相匹配;方法的参数表与消息的参数表在类型和数目上相匹配。执行与消息对应的预定义行为可能会产生三种结果:返回一个值给消息发送者。改变接收者的状态。改变作为参数传给接收者的对象的状态。,面向对象基本概念,信息系统工程,19,面向对象基本概念,对象Student具有以下方法:getName()getAge()setAge()getMark(Stringgrade)getMark(Stringgrade,Stringcourse),方法绑定:Studentamy;amy.getAge();amy.getMark(”firstyear”,”english”);,信息系统工程,20,4面向对象的概念,4.1起源4.2对象和类4.3消息和方法4.4对象接口4.5继承性4.6封装性4.7多态性,信息系统工程,21,对象可响应的消息是由对象接口决定的。对象接口以一组操作方法的形式出现;每一个操作对应于在响应某个消息时对象所完成的预定义行为;客户通过对象接口来理解对象支持的各种行为,并根据接口来发送消息。调用对象的操作方法是要遵守一定的规则,这些规则描述了如何使用对象的每一个操作。例如,当一个Person对象接收到带有一个参数的setAge()消息时,规则要求这个参数必须是整型数值对象,下面的消息就违反了对象调用规则:p.setAge(null);,面向对象基本概念,4.4对象接口(Interface),信息系统工程,22,对象接口的分类:,面向对象基本概念,信息系统工程,23,classStudentprivateStringname,nickname;privateintage;privateStringgrade;publicStudent()age=0;publicStringgetName()returnname;publicintgetAge()returnage;publicvoidsetName(StringnewName)name=newName;setNickName(“nick”+newName);privatevoidsetNickName(StringnewName)nickname=newName;,信息系统工程,24,4面向对象的概念,4.1起源4.2对象和类4.3消息和方法4.4对象接口4.5继承性4.6封装性4.7多态性,信息系统工程,25,继承性是类层次结构中的一个重要特点,是超类和子类之间共享数据和操作方法的机制。,面向对象基本概念,4.5继承性(inheritance),信息系统工程,26,面向对象基本概念,继承是软件重用的一个基本机制。当通过继承定义一个新类时,新类获得了已存在类的属性和行为。新类称为子类,而已存在类称为超类或父类。子类又可以是其他类的父类,这就形成了继承层次结构。,信息系统工程,27,面向对象基本概念,继承有下面三种使用方式:子类定义新的属性和方法作为对它所继承的属性和方法的补充。子类重新实现所继承的一个或多个方法。被子类重定义的方法称为被覆盖了;也可以说子类覆盖了特定的方法。方法被覆盖后,类的行为发生了变化:对同一个消息,子类和父类的实例调用不同的方法,产生不同的行为。子类实现一个或多个其父类声明但没有实现的方法。这种情况下,这个父类就是一个抽象类,而它声明但没有实现的方法称为抽象方法。,信息系统工程,28,classStudentpublicStudent()age=0;Stringname;intage;Stringgrade;publicStringgetName()returnname;publicintgetAge()returnage;classMiddleStudentextendsStudentStringnickName;publicStringgetName()returnnickName;,面向对象基本概念,/变量定义Studentamy;MiddleStudentrichard;/变量初始化。/方法调用amy.getName()和richard.getName(),信息系统工程,29,abstractclassStudentpublicStudent()age=0;Stringname;intage;Stringgrade;publicStringgetName()returnname;publicintgetAge()returnage;publicabstractvoidsetAge(intnewAge);classMiddleStudentextendsStudentStringnickName;publicStringgetName()returnnickName;publicvoidsetAge(intnewAge)age=newAge;,面向对象基本概念,/变量定义MiddleStudentrichard;/变量初始化。/方法调用richard.getName()和richard.setAge(5),信息系统工程,30,面向对象基本概念,继承的优点易编程、易理解:代码短,结构清晰易修改:共同部分只要在一处修改即可易增加新类:只须描述不同部分,信息系统工程,31,4面向对象的概念,4.1起源4.2对象和类4.3消息和方法4.4对象接口4.5继承性4.6封装性4.7多态性,信息系统工程,32,面向对象基本概念,4.6封装性(encapsulation),封装是把一组相关软件元素组织到一起的方法,其目的在于将对象的使用者和设计者分开,使用者不必知道对象行为实现的细节,只须用设计者提供的对象接口来访问对象。利用封装来隐藏那些不属于对象公有接口的软件元素称为信息隐藏。封装的定义为:对所有对象的内部软件范围的边界进行限定;对各对象之间相互作用的接口进行描述;对每个对象的内部实现(操作程序和数据)进行保护。,信息系统工程,33,面向对象基本概念,classExampleprivatefloatbankRate;publicfloattestResult()returnbankRate;,类Example定义了自己的软件范围;仅能通过Example的接口来进行访问;类的属性定义和方法的具体实现外部不可见。,信息系统工程,34,面向对象基本概念,封装的好处:隐藏和保护对象的内部信息在对象行为发生变化时不会对其他对象产生影响,信息系统工程,35,4面向对象的概念,4.1起源4.2对象和类4.3消息和方法4.4对象接口4.5继承性4.6封装性4.7多态性,信息系统工程,36,面向对象基本概念,4.7多态性(polymorphism),在收到消息时,对象要予以响应,不同的对象收到同一消息可能产生多种不同的结果,即会有多种不同形式,这就是多态。在使用多态时,用户可以发送一个通用的消息,而实现的细节则由接收对象自行决定。多态的实现受到继承性的支持。把具有通用功能的消息存放在高层次,而实现这一功能的不同的行为放在较低层次,则在这些低层次上生成的对象就能对通用消息做出不同的响应。,信息系统工程,37,面向对象基本概念,FigurefigPara;figPara=newLineSegment();/figPara=newPoint();/figPara=newRegion();figPara.draw();/对象figPara可以是上述四个类中的任一个类的实例对象,信息系统工程,38,面向对象基本概念,好处:系统很灵活,易扩充:发送者只知道另一个实例可以执行某个行为,但不知道该实例属于哪个类。如打印功能,打印某页到某页,发送print命令,打印设备可以是任意类型。增加一种新的打印设备,不必修改发送打印命令的类,也不必修改其它设备的类。,
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!