第21 面向对象程序设计精选文档.ppt
《第21 面向对象程序设计精选文档.ppt》由会员分享,可在线阅读,更多相关《第21 面向对象程序设计精选文档.ppt(37页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第21 面向对象程序设面向对象程序设计计本讲稿第一页,共三十七页2.1 面向对象程序设计思想面向对象程序设计思想面向面向对象程序象程序设计的特点的特点1抽象性用C+语言可以将该图形描述如下:圆形(circle):数据抽象:double x,y,r;行为抽象:setx();sety();setr();draw();本讲稿第二页,共三十七页抽象是面向对象方法的核心。2封装性3继承性 4多态性多态性也是面向对象程序设计的重要特性之一。本讲稿第三页,共三十七页1.1.抽象抽象抽象抽象 抽抽象象是是指指从从具具体体的的实实例例中中抽抽取取出出来来共共同同的的性性质质并并加加以以描描述述的的过过程程,它
2、它忽忽略略了了一一个个主主题题中中与与当当前前目目标标无无关关的的那那些些方方面面,以便更充分地注意与当前目标有关的方面。以便更充分地注意与当前目标有关的方面。本讲稿第四页,共三十七页抽象过程:u先注意问题的本质及描述,其次是实现过程或细节。u数据抽象:描述某类对象的属性或状态(对象相互 区别的物理量)。u代码抽象:描述某类对象的共有的行为特征或具有 的功能。抽象的实现:通过类的声明抽象的实现:通过类的声明本讲稿第五页,共三十七页抽象实例抽象实例钟表钟表数据抽象:int Hour,int Minute,int Second 代码抽象:代码抽象:SetTime(),ShowTime()本讲稿第六
3、页,共三十七页抽象实例抽象实例钟表类钟表类 class Clock public:void SetTime(int NewH,int NewM,int NewS);void ShowTime();private:int Hour,Minute,Second;本讲稿第七页,共三十七页2 2 封装封装封装封装 封装指的是将封装指的是将方法和数据放于同一对象中方法和数据放于同一对象中,使得对数据的,使得对数据的存取只能通过该对象本身的方法来进行。存取只能通过该对象本身的方法来进行。主主要要思思想想是是将将数数据据(数数据据成成员员)及及处处理理这这些些数数据据的的相相应应函函数数(成成员员函函数数)
4、封封装装到到类类classclass中中(C+C+的的一一种种新新的的定定义义数数据据类类型型的的方方法法),而而使使用用类类的的变变量量则则称称为为对对象象(objectobject),在在对对象象内内,只只有有属属于于该该对对象象的的成成员员函函数数才才可可以以存存取取该该对对象象的的数数据据成成员员。这这样样,其其他他函函数数就就不不会会破破坏坏到到它它的的内内容容,从而起到保护和隐藏数据的效果。从而起到保护和隐藏数据的效果。本讲稿第八页,共三十七页 将抽象出的数据成员、代码成员相结合,将它们视为一个整体。u目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,
5、以特定的访问权限,来使用类的成员。实现封装:类声明中的 本讲稿第九页,共三十七页实例实例本讲稿第十页,共三十七页3 3继承继承继承继承 E继承继承是一种联结类与类之间的层次模型,它允许和鼓励是一种联结类与类之间的层次模型,它允许和鼓励类的重用,提供了一种明确表达共性的方法。类的重用,提供了一种明确表达共性的方法。E一个新类可以从现有的类中派生,这个过程称为一个新类可以从现有的类中派生,这个过程称为类继承类继承 E继承性很好地解决了软件的可重用问题继承性很好地解决了软件的可重用问题 E实现:声明派生类 本讲稿第十一页,共三十七页4 4多态多态多态多态E多态性指的是同一消息被不同的对象接收后被解释
6、为不同含义多态性指的是同一消息被不同的对象接收后被解释为不同含义的能力,也就是的能力,也就是一个接口名称具有多种功能。一个接口名称具有多种功能。即即同一名称,不同同一名称,不同的功能实现方式。的功能实现方式。E多态性语言具有多态性语言具有语言灵活、抽象、行为共享、代码共享语言灵活、抽象、行为共享、代码共享的优势,很好的解决了应用程序函数同名的问题。的优势,很好的解决了应用程序函数同名的问题。E目的:达到行为标识统一,减少程序中标识符的个数。目的:达到行为标识统一,减少程序中标识符的个数。E实现:重载函数和虚函数实现:重载函数和虚函数 本讲稿第十二页,共三十七页2.2 面向对象的基石面向对象的基
7、石类类2.2.1 2.2.1 从结构到类从结构到类2.2.2 2.2.2 类的定义类的定义 2.2.3 2.2.3 构造函数构造函数 2.2.4 2.2.4 析构函数析构函数 本讲稿第十三页,共三十七页2.2.1从结构到类从结构到类 1结构体结构体 VCVC不不仅仅提提供供了了大大量量预预先先定定义义的的数数据据类类型型,而而且且还还支支持持自自定定义的数据类型。义的数据类型。结结构构就就是是把把相相互互关关联联的的一一些些基基本本数数据据类类型型的的元元素素组组成成一个新的独立统一体。一个新的独立统一体。本讲稿第十四页,共三十七页【例例2-1】定义一个职工定义一个职工EmployeeEmpl
8、oyee结构数据类型,它包括姓名、工资、结构数据类型,它包括姓名、工资、地址、移动电话。地址、移动电话。struct Employeestruct Employee char name9;char name9;float salary;float salary;char address40;char address40;char mobile12;char mobile12;定义一个结构体,事实上是定义了一种数据类型,程序并不会给定义一个结构体,事实上是定义了一种数据类型,程序并不会给类型分配内存,内存分配是发生在结构体变量上类型分配内存,内存分配是发生在结构体变量上本讲稿第十五页,共三十七页
9、#include iostream.h#include iostream.h#include string.h#include string.hvoid main()void main()struct Employee EmployeeA;struct Employee EmployeeA;strcpy(EmployeeA.name,strcpy(EmployeeA.name,灭绝师太灭绝师太););EmployeeA.salary=168.47;EmployeeA.salary=168.47;strcpy(EmployeeA.address,strcpy(EmployeeA.address,
10、峨眉山上峨眉山上););strcpy(EmployeeA.mobile,13688667755);strcpy(EmployeeA.mobile,13688667755);cout EmployeeA.namecout EmployeeA.name已经领上工资了已经领上工资了,其数目是其数目是 EmployeeA.salaryendl;EmployeeA.salaryendl;coutcout要要 想想 拜拜 谒谒 她她,请请 到到 EmployeeA.addressEmployeeA.address或或 直直 接接 传传 呼呼 EmployeeA.mobileendl;EmployeeA.m
11、obileendl;【例【例2-2】定义一个具体职工定义一个具体职工EmployeeAEmployeeA,并对该职工进行赋值。程,并对该职工进行赋值。程序的主文件名为序的主文件名为DefStru.cppDefStru.cpp。本讲稿第十六页,共三十七页程序的运行结果是:程序的运行结果是:灭绝师太已经领上工资了灭绝师太已经领上工资了,其数目是其数目是168.47168.47要想拜谒她,请到峨眉山上或直接传呼要想拜谒她,请到峨眉山上或直接传呼1368866775513688667755 本讲稿第十七页,共三十七页2类类E类类是是从从一一个个个个具具体体的的事事物物中中把把共共同同特特征征抽抽取取出
12、出来来形形成成的的一一个个概念,概念,它反映了事物之间的共性它反映了事物之间的共性 E在在C+C+中,在类的定义中,不仅有中,在类的定义中,不仅有反映事物属性的成员变量,反映事物属性的成员变量,还有反映属性操作的成员函数。还有反映属性操作的成员函数。E类一种自定义数据类型类一种自定义数据类型 。本讲稿第十八页,共三十七页2.2.2类的定义类的定义 在在C+中类的定义方式为:中类的定义方式为:class class 类名类名 private:private:私有数据及成员函数;私有数据及成员函数;protected:protected:保护数据及成员函数;保护数据及成员函数;public:pub
13、lic:公有数据及成员函数;公有数据及成员函数;;本讲稿第十九页,共三十七页Eclassclass是类定义符是类定义符,类名是一种标识符,它的命名规则与,类名是一种标识符,它的命名规则与变量名的命名规则相同。变量名的命名规则相同。一对花括号内是类的说明部分,说一对花括号内是类的说明部分,说明该类的成员明该类的成员。类的成员包括。类的成员包括成员变量和成员函数两部分。成员变量和成员函数两部分。E上述在类的成员变量和成员函数前面出现的关键字上述在类的成员变量和成员函数前面出现的关键字publicpublic(公有)、(公有)、privateprivate(私有)或(私有)或protectedpro
14、tected(保护)(保护)表示成员的访问属性表示成员的访问属性。在类中声明的成员变量若不特别指在类中声明的成员变量若不特别指明,都被视为私有类型明,都被视为私有类型。私有类型的数据只允许类本身声明。私有类型的数据只允许类本身声明的函数对其进行存取,而类外部的任何函数都不能访问。公的函数对其进行存取,而类外部的任何函数都不能访问。公有类型的成员可以被任何函数来访问,它们是类与外部的接有类型的成员可以被任何函数来访问,它们是类与外部的接口。口。本讲稿第二十页,共三十七页类的定义反映了对类的描述类的定义反映了对类的描述,定义一个类就是定义一种数据,定义一个类就是定义一种数据类型,把握类的定义首先要
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第21 面向对象程序设计精选文档 21 面向 对象 程序设计 精选 文档
限制150内