第1章 面向对象程序设计概述

上传人:dfg****19 文档编号:245148861 上传时间:2024-10-07 格式:PPT 页数:26 大小:253.50KB
返回 下载 相关 举报
第1章 面向对象程序设计概述_第1页
第1页 / 共26页
第1章 面向对象程序设计概述_第2页
第2页 / 共26页
第1章 面向对象程序设计概述_第3页
第3页 / 共26页
点击查看更多>>
资源描述
,单击此处编辑母版标题样式,*,主讲:孙 建,*,单击此处编辑母版文本样式,第二级,第三级,第四级,第五级,2024/10/7,1,C+,面向对象程序设计,陈维兴 林小茶编著,中国铁道出版社,主讲:孙 建,2024/10/7,主讲:孙 建,2,第,1,章 面向对象程序设计概述,2024/10/7,3,1.1,什么是面向对象程序设计,1.1.1,新的程序设计范型,面向对象程序设计,是一种新型的程序设计范型。这种范型的主要特征是,:,程序,=,对象,+,消息,过程程序设计,范型特征:,程序,=,过程,+,调用,C+,是混合范型程序设计语言。,2024/10/7,主讲:孙 建,4,1.1.2,面向对象程序设计的基本概念,1.,对象,在面向对象程序设计中,,对象是,描述其属性的数据以及对这些数据施加的一组操作封装在一起构成的统一体。,对象可以认为是:数据,+,操作,在现实世界中,任何事物都是对象。现实世界中的对象,具有以下特性,:,每一个对象必须有一个名字以区别于其他对象,;,用属性来描述它的某些特征,;,有一组操作,每个操作决定对象的一种行为,;,对象的操作可以分为两类,:,一类是自身所承受的操作,一类是施加于其他对象的操作。,2024/10/7,主讲:孙 建,5,数据,操作,1,接口,操作,2,接口,操作,3,接口,操作,1,、,2,、,3,的实现,图,1-1,具有,3,个操作的对象,例如:,电视、录音机、汽车、计算机硬件和计,算机软件等都是对象。,一个对象好象是一个黑盒子。,2024/10/7,主讲:孙 建,6,2.,类,在实现世界中,“,类,”,是一组具有相同属性和行为的对象的抽象。,类和对象之间的关系是抽象和具体的关系。类是多个对象进行综合抽象的结果,一个对象是类的一个实例。,类在现实世界中并不真正存在。,在面向对象程序设计中,,“,类,”,就是具有相同的数据和相同的操作的一组对象的集合,即,“,类,”,就是对具有相同数据结构和相同操作的一类对象的描述。,例如:,“学生”类:,属性(数据):学号、姓名、年龄、性别、成绩等;,操作:数据的录入、修改和显示等。,在面向对象程序设计中,总是先声明类,再由类生成其对象。类是建立对象的“模板”,由此产生一个个具体的对象,即类的实例。,2024/10/7,主讲:孙 建,7,3.,消息,在面向对象程序设计中,一个对象向另一个对象发出的请求被称为,“,消息,”,,也称为对象之间的交互,这种机制叫消息传递。,当对象接收到发向它的消息时,就调用有关的方法,执行相应的操作。,一般情况下,称发送消息的对象为发送者或请求者,接收消息的对象为接收者或目标对象。对象中的联系只能通过消息传递来进行。,2024/10/7,主讲:孙 建,8,消息具有,3,个性质,:,(,1,)同一对象可以接收不同形式的多个消息,作出不同的响应。,(,2,)相同形式的消息可以传给不同的对象,所作出的响应可以是不同的。,(,3,)对消息的响应并不是必需的,对象可以响应消息,也可以不响应消息。,消息分为两类:,公有消息和私有消息。,2024/10/7,主讲:孙 建,9,4.,方法,方法就是,对象所能执行的操作。方法包括界面和方法体两部分。,方法的界面也就是消息的模式,它给出了方法的调用协议;,方法体则是实现某种操作的一系列计算步骤,也就是一段程序。,消息和方法的关系是,:对象根据接收到的消息,调用相应的方法;反过来,有了方法,对象才能响应相应的消息。,在,C+,语言中,方法是通过函数实现的,称为成员函数。,2024/10/7,10,1.1.3,面向对象程序设计的基本特征,1.,抽 象,2.,封 装,3.,继 承,4.,多 态,2024/10/7,主讲:孙 建,11,1,、抽象,抽象是人类认识问题的最基本的手段之一。抽象是对复杂世界的简单表示,抽象强调感兴趣的信息,忽略不重要的信息。(学生“对象”),一般而言,抽象是通过特定的实例(对象)抽取共同性质以后形成概念的过程。,抽象包括两个方面:数据抽象和代码抽象(行为抽象),在面向对象程序设计方法中,对一个具体问题的抽象分析的结果,是通过类来描述和实现的。,2024/10/7,主讲:孙 建,12,以学生管理程序为例分析,抽象描述:,共同的属性:学号、姓名、成绩等,组成了学生的数据抽象部分。用,C+,的,数据成员,来表示,是,Char*name;int number;float score;,共同的行为:数据录入、修改和输出等,构成了学生的行为抽象部分,用,C+,的,成员函数,来表示,是,input();modify();print();,2024/10/7,主讲:孙 建,13,2,、封装,在面向对象程序设计方法中,封装是指把数据和实现操作的代码集中起来放在对象内部,并尽可能隐蔽对象的内部细节(,黑盒子,)。,不能从外面直接访问或修改对象的数据和代码。使用一个对象时,只需知道它向外面提供的接口形式而无需知道它的数据结构细节和实现操作的算法。,2024/10/7,主讲:孙 建,14,2,、封装,封装应具有下面的几个条件:,对象应有一个清楚的边界,对象的私有数据和实现操作的代码都被封装在该边界内。,具有一个描述对象与其它对象如何相互作用的接口,该接口必须说明消息传递的使用方法。,对象内部的代码和数据应受到保护,其它对象不能直接修改。,封装机制使设计者和使用者分开。隐藏了复杂性,提供了代码重用性,降低了开发软件系统的难度。,2024/10/7,主讲:孙 建,15,3,、继承,我的父母,我,图,1-2,两个对象相互关系示意图,2024/10/7,主讲:孙 建,16,3,、继承,图,1-3,各继承关系示意图,哺乳动物,热血、有毛发、用奶哺育幼崽,狗,有犬牙、食肉、特定骨骼结构、群居,柯利狗,尖鼻子、红白相间的颜色、适合放牧,2024/10/7,主讲:孙 建,17,3,、继承,以面向对象程序设计的观点,继承所表达的是,类,之间相关的关系。这种关系使得某一类可以继承另外一个类的特征和能力。,若类之间具有继承关系,则它们之间具有下列几个特性:,类间具有共享特征。,类间具有差别或新增部分。,类间具有层次结构。,2024/10/7,主讲:孙 建,18,3,、继承,A,B,A,B,C,术语:,基类或父类或超类;,派生类和子类;,直接基类;,间接基类;,总之,继承机制允许派生类继承基类的数据和操作,即允许派生类使用基类的数据和操作。同时,派生类还可以修改或增加新的操作和数据。,2024/10/7,主讲:孙 建,19,3,、继承,继承的作用:,避免公用代码的重复开发,减少代码和数据冗余;,通过增强一致性来减少模块间的接口和界面。,继承使程序不在是毫无关系的类的堆砌,而是具有了良,好的结构,。,2024/10/7,主讲:孙 建,20,3,、继承,从继承源上分,继承分为单继承和多继承。,A,B,C,A,B,C,图,1-4,单继承关系示意图,图,1-5,多继承关系示意图,2024/10/7,主讲:孙 建,21,4,、多态,现实世界的多态性:,挪开汽车,|,挪开凳子 ;,洗衣服,|,洗车,;,面向对象系统的多态性是指不同的对象收到相同的消息时产生多种不同的行为方式。,双击命令钮,|,双击图片;,1+2=,?,|“A”+“B”=?,;,2024/10/7,主讲:孙 建,22,4,、多态,C+,语言支持两种多态性:,编译时的多态性(通过重载实现);,运行时的多态性(通过虚函数实现);,重载包括函数重载和运算符重载。,函数重载:指一个标识符可同时用于为多个函数命名。,运算符重载:指一个运算符可同时用于多种计算。,例:,void print (int i),语句,1,;,void print (float f),语句,2,;,void print (const char *c),语句,3,;,发送消息:,print(20)|print(34.56)|print(“,大家好!”,),虚函数在第,6,章讲解。,多态性增强了软件的灵活性和重用性。便于软件的开发和维护。,2024/10/7,主讲:孙 建,23,1.2,为什么要使用面向对象程序设计,1.2.1,传统程序设计方法的局限性,(1),传统程序设计开发软件的生产效率低下,(2),传统程序设计难以应付日益庞大的信息量和多样的信息类型,(3),传统的程序设计难以适应各种新环境,2024/10/7,主讲:孙 建,24,1.2.2,面向对象程序设计的主要优点,(1),可提高程序的重用性,(2),可控制程序的复杂性,(3),可改善程序的可维护性,(4),能够更好地支持大型程序设计,(5),增强了计算机处理信息的范围,(6),能很好地适应新的硬件环境,2024/10/7,主讲:孙 建,25,1.3,面向对象程序设计的语言,1.3.1,面向对象程序设计语言的发展概况,2024/10/7,主讲:孙 建,26,1.3.2,几种典型的面向对象程序设计语言,1.,Smalltalk,语言,2.Simula,语言,3.C+,语言,4.Java,语言,
展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 商业管理 > 商业计划


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

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


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