欢迎来到天天文库
浏览记录
ID:59207449
大小:88.50 KB
页数:30页
时间:2020-09-26
《第4章面向对象基本概念与类ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章面向对象基本概念与类面向对象的方法目的:实现软件设计的产业化。观点:自然界是由实体(对象)所组成。程序设计方法:使用面向对象的观点来描述模仿并处理现实问题。要求:高度概括、分类、和抽象。抽象抽象是对具体对象(问题)进行概括,抽出这一类对象的公共性质并加以描述的过程。先注意问题的本质及描述,其次是实现过程或细节。数据抽象:描述某类对象的属性或状态(对象相互区别的物理量)。代码抽象:描述某类对象的共有的行为特征或具有的功能。抽象的实现:通过类的声明。抽象实例——钟表数据抽象:intHour,intMinute,intSecond代码抽象:SetTime(
2、),ShowTime()抽象实例——钟表类classClock{public:voidSetTime(intNewH,intNewM,intNewS);voidShowTime();private:intHour,Minute,Second;};封装将抽象出的数据成员、代码成员相结合,将它们视为一个整体。目的是曾强安全性和简化编程,使用者不必了解具体的实现细节,而只需要通过外部接口,以特定的访问权限,来使用类的成员。实现封装:类声明中的{}封装实例:classClock{public:voidSetTime(intNewH,intNewM,intNe
3、wS);voidShowTime();private:intHour,Minute,Second;};边界特定的访问权限外部接口继承与派生是C++中支持层次分类的一种机制,允许程序员在保持原有类特性的基础上,进行更具体的说明。实现:声明派生类——第七章多态性多态:同一名称,不同的功能实现方式。目的:达到行为标识统一,减少程序中标识符的个数。实现:重载函数和虚函数——第八章c++中的类类是具有相同属性和行为的一组对象的集合,它为属于该类的全部对象提供了统一的抽象描述,其内部包括属性和行为两个主要部分。利用类可以实现数据的封装、隐藏、继承与派生。利用类易于编
4、写大型复杂程序,其模块化程度比C中采用函数更高。对象构成了面向对象程序的基本计算单位,而对象的特征则由相应的类来描述。类是对象的集合。C++的类是一种用户自定义类型,定义形式如下:class<类名>{<成员描述>};其中,类的成员包括:数据成员成员函数类成员标识符的作用域为整个类定义范围例:一个日期类的定义classDate{public:voidset(inty,intm,intd)//成员函数{year=y;month=m;day=d;}boolis_leap_year()//成员函数{return(year%4==0&&year%100!=0)
5、
6、(
7、year%400==0);}voidprint()//成员函数{cout<8、ubley=0.0;//Error......};数据成员的类型可以是任意的C++类型(void除外)。在说明一个数据成员的类型时,如果未见到相应的类型定义或相应的类型未定义完,则该数据成员的类型只能是这些类型的指针或引用类型(静态成员除外)。例如:classA;//A是在程序其它地方定义的类,这里是声明。classB{Aa;//Error,未见A的定义。Bb;//Error,B还未定义完。A*p;//OKB*q;//OKA&aa;//OKB&bb;//OK};成员函数成员函数描述了对类定义中的数据成员所能实施的操作。成员函数的定义可以放在类定义中,例如:9、classA{...voidf(){...}//建议编译器按内联函数处理。};成员函数的定义也可以放在类定义外,例如:classA{...voidf();//声明};voidA::f(){...}//需要用类名受限,区别于全局函数。类成员函数名是可以重载的(析构函数除外),它遵循一般函数名的重载规则。例如:classA{......public:voidf();intf(inti);doublef(doubled);......};类成员的访问控制在C++的类定义中,可以用访问控制修饰符public,private或protected来描述对类成员的访问限10、制。例如:classA{public://访问不受限制。intx;
8、ubley=0.0;//Error......};数据成员的类型可以是任意的C++类型(void除外)。在说明一个数据成员的类型时,如果未见到相应的类型定义或相应的类型未定义完,则该数据成员的类型只能是这些类型的指针或引用类型(静态成员除外)。例如:classA;//A是在程序其它地方定义的类,这里是声明。classB{Aa;//Error,未见A的定义。Bb;//Error,B还未定义完。A*p;//OKB*q;//OKA&aa;//OKB&bb;//OK};成员函数成员函数描述了对类定义中的数据成员所能实施的操作。成员函数的定义可以放在类定义中,例如:
9、classA{...voidf(){...}//建议编译器按内联函数处理。};成员函数的定义也可以放在类定义外,例如:classA{...voidf();//声明};voidA::f(){...}//需要用类名受限,区别于全局函数。类成员函数名是可以重载的(析构函数除外),它遵循一般函数名的重载规则。例如:classA{......public:voidf();intf(inti);doublef(doubled);......};类成员的访问控制在C++的类定义中,可以用访问控制修饰符public,private或protected来描述对类成员的访问限
10、制。例如:classA{public://访问不受限制。intx;
此文档下载收益归作者所有