Chapter03-类的定义.ppt_第1页
Chapter03-类的定义.ppt_第2页
Chapter03-类的定义.ppt_第3页
Chapter03-类的定义.ppt_第4页
Chapter03-类的定义.ppt_第5页
免费预览已结束,剩余125页可下载查看

下载本文档

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

文档简介

1,回顾:面向过程的设计方法,重点:如何实现细节过程,将数据与函数分开。形式:主模块+若干个子模块(main()+子函数)。特点:自顶向下,逐步求精功能分解。缺点:效率低,程序的可重用性差。,面向对象的思想,2,面向对象的方法,目的:实现软件设计的产业化。观点:自然界是由实体(对象)所组成。程序设计方法:使用面向对象的观点来描述模仿并处理现实问题。要求:高度概括、分类、和抽象。,面向对象的思想,3,抽象,抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。先注意问题的本质及描述,其次是实现过程或细节。数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。代码抽象:描述某类对象的共有的行为特征或具有的功能。抽象的实现:通过类的声明。,OOP的基本特点,4,抽象实例钟表,数据抽象:intHour,intMinute,intSecond代码抽象:SetTime(),ShowTime(),OOP的基本特点,5,抽象实例钟表类,classClockpublic:voidSetTime(intNewH,intNewM,intNewS);voidShowTime();private:intHour,Minute,Second;,OOP的基本特点,6,抽象实例人,数据抽象:char*name,char*gender,intage,intid代码抽象:生物属性角度:GetCloth(),Eat(),Step(),社会属性角度:Work(),Promote(),OOP的基本特点,7,封装,将抽象出的数据成员、代码成员相结合,将它们视为一个整体。目的是增强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。实现封装:类声明中的,OOP的基本特点,8,封装,实例:classClockpublic:voidSetTime(intNewH,intNewM,intNewS);voidShowTime();private:intHour,Minute,Second;,特定的访问权限,OOP的基本特点,封装可以解决数据与函数代码之间的相容性和数据的保护问题。先看C语言中不用封装的例子。,9,C+与面向对象程序设计,例1不用封装的例子,10,C+与面向对象程序设计,#includeintsq_int(inta)returna*a;doublesq_dbl(doublea)returna*a;,voidmain()inti=5;doubled=2.5;i=sq_int(i);d=sq_dbl(d);coutiendl;coutdendl;/*Results:256.25*/,此程序比较简练(当然还可以再简练些),但它改变了i和d的值。如果不希望改变这两个值,可以将主程序修改如下,增加两个变量:,11,C+与面向对象程序设计,voidmain()inti=5,j;doubled=2.5,f;j=sq_int(i);f=sq_dbl(d);coutjendl;coutfendl;,12,C+与面向对象程序设计,但又如何保证它需要修改时才修改,不需要修改时不修改。这要依靠封装。,13,C+与面向对象程序设计,例2使用封装以便保护数据#includeclassinteg/用户建立一个类,用于封装inti;public:integ()i=6;/构造函数intsq()returni*i;/平方函数voidinc()i+;/增量函数intread()returni;/读数据函数;,14,C+与面向对象程序设计,voidmain()inti;integobji;/建立对象并初始化coutobji.read()endl;i=obji.sq();/平方coutiendl;coutobji.read()endl;obji.inc();/增量coutobji.read()*定义指向数据成员的指针定义指向成员函数的指针使用指向数据成员/成员函数的指针STL函数配接器:mem_fun;mem_fun_ref,122,C+与面向对象程序设计,3.5、综合应用举例,123,C+与面向对象程序设计,3.5综合应用举例一元二次方程求根,对不同情况的方程,计算根并输出类Root:根据根的不同情况,记录并输出根类Equation:设置系数求解根,124,C+与面向对象程序设计,3.5方程求根类Root-定义,125,C+与面向对象程序设计,3.5方程求根类Root-Print,126,C+与面向对象程序设计,3.5方程求根类Equation-定义,127,C+与面向对象程序设计,3.5方程求根类Equation-Solve,128,C+与面向对象程序设计,3.5方程求根类Equation-main,129,C+与面

温馨提示

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

评论

0/150

提交评论