面向对象的编程方法精选文档.ppt
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《面向对象的编程方法精选文档.ppt》由会员分享,可在线阅读,更多相关《面向对象的编程方法精选文档.ppt(63页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、面向对象的编程方法面向对象的编程方法1本讲稿第一页,共六十三页本讲主要内容本讲主要内容l面向对象的思想面向对象的思想lOOP的基本特点的基本特点l类类l构造函数构造函数l析构函数析构函数l对象对象l内联成员函数内联成员函数l拷贝构造函数拷贝构造函数l聚集的概念聚集的概念2本讲稿第二页,共六十三页回顾:面向过程的设计方法回顾:面向过程的设计方法l重点放在如何实现细节过程方面,将数重点放在如何实现细节过程方面,将数据与函数分开。据与函数分开。l形式:主模块形式:主模块+若干个子模块若干个子模块(main()+子函数)。子函数)。l特点:特点:自顶向下,逐步求精自顶向下,逐步求精功能分解。功能分解。
2、l缺点:效率低,是手工作坊式的编程。缺点:效率低,是手工作坊式的编程。面向对象的思想3本讲稿第三页,共六十三页面向对象的方法面向对象的方法l观点:自然界是由实体(对象)所组观点:自然界是由实体(对象)所组成。成。l程序设计方法:使用面向对象的观点程序设计方法:使用面向对象的观点来描述模仿并处理现实问题。来描述模仿并处理现实问题。l要求:高度概括、分类和抽象。要求:高度概括、分类和抽象。l目的:实现软件设计的产业化。目的:实现软件设计的产业化。面向对象的思想4本讲稿第四页,共六十三页抽象抽象抽象是对具体对象(问题)进行概括,抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述抽出
3、这一类对象的公共性质并加以描述的过程。的过程。先注意问题的本质及描述,其次是实现过程或细节。数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。代码抽象:描述某类对象的共有的行为特征或具有的功能。抽象的实现:通过类的定义。OOP的基本特点5本讲稿第五页,共六十三页抽象抽象l实例一:窗口实例一:窗口数据抽象:int x1,y1,x2,y2,color代码抽象:OpenWindow(),CloseWindow(),MoveWindow(),ChangeWindow()l实例二:钟表实例二:钟表数据抽象:int Hour,int Minute,int Second代码抽象:SetTime()
4、,ShowTime()OOP的基本特点6本讲稿第六页,共六十三页抽象抽象l实例三:人实例三:人数据抽象:char*name,char*sex,int age,int id代码抽象:生物属性角度:GetCloth(),EatFood(),GoHome(),Sleep()社会属性角度:AddPerson(),DeletePerson(),PrintData(),Change()OOP的基本特点7本讲稿第七页,共六十三页封装封装将抽象出的数据成员、代码成员相结将抽象出的数据成员、代码成员相结合,将它们视为一个整体。合,将它们视为一个整体。目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只
5、需要通过外部接口,以特定的访问权限,来使用类的成员。实现封装:类定义中的OOP的基本特点8本讲稿第八页,共六十三页封装封装l实例:实例:class Watch public:void SetTime(int NewH,int NewM,int NewS);void ShowTime();private:int Hour,Minute,Second;边界外部接口特定的访问权限OOP的基本特点9本讲稿第九页,共六十三页继承与派生继承与派生是是C+中支持层次分类的一种机制,中支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,允许程序员在保持原有类特性的基础上,进行更具体的类定义。进行更具体
6、的类定义。实现:定义派生类。实现:定义派生类。OOP的基本特点10本讲稿第十页,共六十三页多态性多态性l多态:同一名称,不同的功能实现方多态:同一名称,不同的功能实现方式。式。l目的:达到行为标识统一,减少程序目的:达到行为标识统一,减少程序中标识符的个数。中标识符的个数。l实现:重载函数和虚函数。实现:重载函数和虚函数。OOP的基本特点11本讲稿第十一页,共六十三页c+中的类中的类l类是类是OOP的精华,利用它可以实现数的精华,利用它可以实现数据的封装、隐藏、继承与派生。据的封装、隐藏、继承与派生。l利用类可以编写大型复杂程序,其模利用类可以编写大型复杂程序,其模块化程度比块化程度比C中采用
7、函数更高。中采用函数更高。类 和 对 象12本讲稿第十二页,共六十三页类的定义类的定义 类是一种用户自定义类型,定义形式:类是一种用户自定义类型,定义形式:class 类名称 public:外部接口 protected:保护型成员 private:私有成员类 和 对 象13本讲稿第十三页,共六十三页类的成员类的成员l成员数据成员数据与一般的变量定义相同,但需要将它放在类的定义体中。l成员函数成员函数在类中说明原形,在类外定义函数体实现,并在函数名前使用类名加以限定。也可以直接在类中定义函数体,形成内联成员函数。允许定义重载函数和带缺省形参值的函数类 和 对 象14本讲稿第十四页,共六十三页类成
8、员的访问控制属性类成员的访问控制属性 在类中可以包含以下三种类型的数据在类中可以包含以下三种类型的数据和函数成员:和函数成员:l私有类型(私有类型(private)l公有类型(公有类型(public)l保护类型(保护类型(protected)类 和 对 象15本讲稿第十五页,共六十三页类的定义举例类的定义举例class one_datum int data_store;public:void set(int in_value);int get_value(void);void one_datum:set(int in_value)data_store=in_value;int one_datu
9、m:get_value(void)return data_store;类 和 对 象19本讲稿第十九页,共六十三页内联成员函数内联成员函数l在类中声明的成员函数可以采用两种在类中声明的成员函数可以采用两种方式使其成为内联函数方式使其成为内联函数将函数体放在类的声明中。使用inline关键字。类 和 对 象20本讲稿第二十页,共六十三页内联成员函数举例内联成员函数举例class Location public:void Init(int initX,int initY)X=initX;Y=initY;int GetX()return X;int GetY()return Y;private:in
10、t X,Y;类 和 对 象21本讲稿第二十一页,共六十三页对象对象类的对象是具有该类类型的某一特定类的对象是具有该类类型的某一特定实体,即该类型的变量。实体,即该类型的变量。定义形式:定义形式:类名类名 对象名;对象名;例:例:watch myWatch;类 和 对 象22本讲稿第二十二页,共六十三页类中成员的访问方式类中成员的访问方式l类中成员互访类中成员互访直接使用成员名l类外访问类外访问使用“对象名.成员名”方式访问 public 属性的成员类 和 对 象23本讲稿第二十三页,共六十三页类的应用举例类的应用举例#includeclass Watch public:void SetTime
11、(int NewH=0,int NewM=0,int NewS=0);void ShowTime();private:int Hour,Minute,Second;类 和 对 象24本讲稿第二十四页,共六十三页类的应用举例类的应用举例/时钟类成员函数的实现时钟类成员函数的实现void Watch:SetTime(int NewH,int NewM,int NewS)Hour=NewH;Minute=NewM;Second=NewS;inline void Watch:ShowTime()coutHour:Minute:Second;类 和 对 象25本讲稿第二十五页,共六十三页类的应用举例类的
12、应用举例/主函数主函数void main(void)Watch myWatch;/定义对象定义对象 myWatch.SetTime();/按默认值设置按默认值设置 myWatch.ShowTime();myWatch.SetTime(8,30,30);myWatch.ShowTime();类 和 对 象26本讲稿第二十六页,共六十三页构造函数构造函数l以上例中定义了一个以上例中定义了一个SetTime()成员成员函数。调用这个函数可以给对象设置函数。调用这个函数可以给对象设置时间。时间。l构造函数也有类似的功能:给对象赋构造函数也有类似的功能:给对象赋初值。但构造函数是在定义对象时由初值。但构
13、造函数是在定义对象时由系统自动调用的。系统自动调用的。构造函数和析构函数27本讲稿第二十七页,共六十三页构造函数构造函数l构造函数的作用是在对象被创建时使构造函数的作用是在对象被创建时使用特定的值构造对象,或者说将对象用特定的值构造对象,或者说将对象初始化为一个特定的状态。初始化为一个特定的状态。l在对象创建时由系统自动调用。在对象创建时由系统自动调用。l如果程序中未定义出,则系统自动产如果程序中未定义出,则系统自动产生出一个缺省形式的构造函数生出一个缺省形式的构造函数l允许为内联函数、重载函数、带缺省允许为内联函数、重载函数、带缺省形参值的函数形参值的函数构造函数和析构函数28本讲稿第二十八
14、页,共六十三页构造函数(例)构造函数(例)class watch public:watch(int initH,int initM,int initS);/构造函数 void SetTime(int NewH,int NewM,int NewS);void ShowTime();private:int Hour,Minute,Second;构造函数和析构函数29本讲稿第二十九页,共六十三页构造函数(例)构造函数(例)/实现构造函数watch:watch(int initH,int initM,int initS)Hour=initH;Minute=initM;Second=initS;构造函数
15、和析构函数30本讲稿第三十页,共六十三页构造函数(例)构造函数(例)/主函数void main(void)watch myWatch(05,06,07);/定义对象定义对象 watch watch01(03,04,05);myWatch.SetTime();/按默认值设置按默认值设置 myWatch.ShowTime();coutendl;myWatch.SetTime(8,30,30);myWatch.ShowTime();coutendl;watch01.ShowTime();coutendl;构造函数和析构函数31本讲稿第三十一页,共六十三页构造函数构造函数l构造函数的名字一定和类的名字
16、相同。构造函数的名字一定和类的名字相同。l构造函数没有返回值;函数也没有类构造函数没有返回值;函数也没有类型。型。l构造函数主要是两个功能:为对象开辟空间,构造函数主要是两个功能:为对象开辟空间,为对象中的数据成员赋初值。为对象中的数据成员赋初值。l如果没有定义构造函数,编译系统会自动生成一如果没有定义构造函数,编译系统会自动生成一个确省的构造函数。个确省的构造函数。构造函数和析构函数32本讲稿第三十二页,共六十三页构造函数构造函数l对上例中构造函数的默认构造函数是:对上例中构造函数的默认构造函数是:watch:watch()l只能用来设置对象的存储空间,不能赋初值。只能用来设置对象的存储空间
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 编程 方法 精选 文档
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内