计算机程序设计基础-c简介.ppt
《计算机程序设计基础-c简介.ppt》由会员分享,可在线阅读,更多相关《计算机程序设计基础-c简介.ppt(71页珍藏版)》请在三一办公上搜索。
1、1,C+语言简介,清华大学 郑 莉,2,本讲内容,类与对象继承与派生多态性C+标准模板库,3,回顾:面向过程的设计方法,重点:重点是实现的细节和过程,将数据与函数分开。形式:主模块+若干个子模块(main()+子函数)。特点:自顶向下,逐步求精功能分解。缺点:效率低,程序的可重用性差。,面向对象的思想,4,面向对象的方法,目的:实现软件设计的产业化。观点:自然界是由实体(对象)所组成。程序设计方法:使用面向对象的观点来描述、模仿并处理现实问题。要求:高度概括、分类、和抽象。,面向对象的思想,5,抽象,抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。先注意问题的本质及
2、描述,其次是实现过程或细节。数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。代码抽象:描述某类对象的共有的行为特征或具有的功能。抽象的实现:通过类的声明。,OOP的基本特点,6,抽象实例钟表,数据抽象:int Hour,int Minute,int Second代码抽象:SetTime(),ShowTime(),OOP的基本特点,7,抽象实例钟表类,class Clock public:void SetTime(int NewH,int NewM,int NewS);void ShowTime();private:int Hour,Minute,Second;,OOP的基本特点,8
3、,抽象实例人,数据抽象:char*name,char*gender,int age,int id代码抽象:生物属性角度:GetCloth(),Eat(),Step(),社会属性角度:Work(),Promote(),OOP的基本特点,9,封装,将抽象出的数据成员、代码成员相结合,将它们视为一个整体。目的是曾强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。实现封装:类声明中的,OOP的基本特点,10,封装,实例:class Clock public:void SetTime(int NewH,int NewM,int NewS);void
4、 ShowTime();private:int Hour,Minute,Second;,特定的访问权限,OOP的基本特点,11,继承与派生,是C+中支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,进行更具体的说明。实现:声明派生类,OOP的基本特点,12,多态性,多态:同一名称,不同的功能实现方式。目的:达到行为标识统一,减少程序中标识符的个数。实现:重载函数和虚函数,OOP的基本特点,13,c+中的类,类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。利用类可以实现数据的封装、隐藏、继承与派生。利用类易于编写大型
5、复杂程序,其模块化程度比C中采用函数更高。,类 和 对 象,14,类的声明形式,类是一种用户自定义类型,其声明形式:class 类名称 public:公有成员(外部接口)private:私有成员 protected:保护型成员,类 和 对 象,15,公有类型成员,是类与外部的接口,任何外部函数都可以访问公有类型数据和函数。以关键字public修饰。,类 和 对 象,16,私有类型成员,只允许本类中的函数访问,而类外部的任何函数都不能访问。以关键字private修饰。如果紧跟在类名称的后面声明私有成员,则关键字private可以省略。,类 和 对 象,17,保护类型,与private类似,其差别
6、表现在继承与派生时对派生类的影响不同。以关键字protected修饰。,类 和 对 象,18,类的成员,class Clock public:void SetTime(int NewH,int NewM,int NewS);void ShowTime();private:int Hour,Minute,Second;,类 和 对 象,数据成员,函数成员,void Clock:SetTime(int NewH,int NewM,int NewS)Hour=NewH;Minute=NewM;Second=NewS;void Clock:ShowTime()coutHour:Minute:Secon
7、d;,19,20,数据成员,与一般的变量声明相同,但需要将它放在类的声明体中。,类 和 对 象,21,函数成员,在类中说明原型,可以在类外给出函数体实现,并在函数名前使用类名加以限定。也可以直接在类中给出函数体,形成内联成员函数。允许声明重载函数和带默认形参值的函数。,类 和 对 象,22,对象,类的对象是该类的某一特定实体,即类类型的变量。声明形式:类名 对象名;例:Clock myClock;,类 和 对 象,23,类中成员的访问方式,类中成员互访直接使用成员名从类外访问使用“对象名.成员名”方式访问 public 属性的成员,类 和 对 象,24,类的应用举例,#includeusing
8、 namespace std;class Clock./类的声明略/.类的实现略int main()Clock myClock;myClock.SetTime(8,30,30);myClock.ShowTime();,类 和 对 象,25,组合的概念,可以在已有的抽象的基础上实现更复杂的抽象。类中的数据成员是另一个类的对象。,类 的 组 合,26,举例,class Point private:float x,y;/点的坐标 public:Point(float h,float v);/构造函数 float GetX(void);/取X坐标 float GetY(void);/取Y坐标 void
9、 Draw(void);/在(x,y)处画点;/.函数的实现略,类 的 组 合,class Line private:Point p1,p2;/线段的两个端点 public:Line(Point a,Point b);/构造函数 Void Draw(void);/画出线段;/.函数的实现略,49,28,继承与派生简介,29,类的继承与派生,保持已有类的特性而构造新类的过程称为继承。在已有类的基础上新增自己的特性而产生新类的过程称为派生。被继承的已有类称为基类(或父类)。派生出的新类称为派生类。,30,继承与派生问题举例,类的继承与派生,31,继承与派生问题举例,类的继承与派生,32,继承与派生
10、问题举例,类的继承与派生,33,继承与派生问题举例,类的继承与派生,34,继承与派生的目的,继承的目的:实现代码重用。派生的目的:当新的问题出现,原有程序无法解决(或不能完全解决)时,需要对原有程序进行改造。,类的继承与派生,35,派生类的声明,class 派生类名:继承方式 基类名 成员声明;,类的继承与派生,36,继承举例,class Point/基类Point类的声明public:/公有函数成员void InitP(float xx=0,float yy=0)X=xx;Y=yy;void Move(float xOff,float yOff)X+=xOff;Y+=yOff;float G
11、etX()return X;float GetY()return Y;private:/私有数据成员float X,Y;,类成员的访问控制,class Rectangle:public Point/派生类声明public:/新增公有函数成员void InitR(float x,float y,float w,float h)InitP(x,y);W=w;H=h;/调用基类公有成员函数float GetH()return H;float GetW()return W;private:/新增私有数据成员float W,H;,37,#include#includeusing namecpace st
12、d;int main()Rectangle rect;rect.InitR(2,3,20,10);/通过派生类对象访问基类公有成员rect.Move(3,2);coutrect.GetX(),rect.GetY(),rect.GetH(),rect.GetW()endl;return 0;,38,39,多态性简介,40,多态性的概念,多态性是面向对象程序设计的重要特征之一。多态性是指发出同样的消息被不同类型的对象接收时有可能导致完全不同的行为。多态的实现:函数重载运算符重载虚函数,41,问题举例复数的运算,class complex/复数类声明public:complex(double r=0
13、.0,double i=0.0)/构造函数 real=r;imag=i;void display();/显示复数的值private:double real;double imag;,运算符重载,42,问题举例复数的运算,用“+”、“-”能够实现复数的加减运算吗?实现复数加减运算的方法 重载“+”、“-”运算符,运算符重载,43,运算符重载的实质,运算符重载是对已有的运算符赋予多重含义必要性C+中预定义的运算符其运算对象只能是基本数据类型,而不适用于用户自定义类型(如类)实现机制将指定的运算表达式转化为对运算符函数的调用,运算对象转化为运算符函数的实参。编译系统对重载运算符的选择,遵循函数重载的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 程序设计 基础 简介
链接地址:https://www.31ppt.com/p-6606575.html