基本信息
文件名称:面向对象编程技术第四章.ppt
文件大小:14.77 MB
总页数:65 页
更新时间:2025-09-24
总字数:约8.54千字
文档摘要

三、面向对象的设计思想层层分类,使概念逐渐细化,即具体化。例如,生物分为动物和植物,动物又分为脊椎动物和无脊椎动物,脊椎动物包括哺乳动物,哺乳动物又分为猫、狗……,等等-之分类回顾第29页,共65页,星期日,2025年,2月5日三、面向对象的设计思想将抽象出的数据成员、代码成员相结合,将它们视为一个整体。增强安全性和简化编程,不必了解具体的实现细节,只需要通过外部接口,以特定的访问权限,来使用类的成员。实现封装:类定义中的{}-之封装在设计者允许的权限下第30页,共65页,星期日,2025年,2月5日三、面向对象的设计思想子类与父类子类继承父类所有的属性、方法,并可定义自己的特有属性与方法提高软件开发效率,为软件复用提供强有力的支持多种继承方式:公有、私有、保护;单继承、多继承-之继承第31页,共65页,星期日,2025年,2月5日三、面向对象的设计思想-之多态定义:指类具有相似功能的不同函数使用同一个名称来实现如:1.运算符重载2.函数重载3.虚函数…慢慢领会…第32页,共65页,星期日,2025年,2月5日插入语学习复杂、严密的C++语法体系C++既考虑设计理念的先进性,又兼顾程序执行的效率!理解、领会、运用其中的优秀的面向对象程序设计、分析思想!返回是否感觉有点烦!第33页,共65页,星期日,2025年,2月5日四、类的组合类中的成员数据是另一个类的对象可以在已有的抽象的基础上实现更复杂的抽象注意是对象第34页,共65页,星期日,2025年,2月5日例:classPoint{private:floatx,y;//点的坐标public:Point(floath,floatv);//构造函数floatGetX(void);//取X坐标floatGetY(void);//取Y坐标voidDraw(void);//在(x,y)处画点};//...函数成员部分,略第35页,共65页,星期日,2025年,2月5日classLine{private:pointp1,p2;//线段的两个端点public:Line(Pointa,Pointb);//构造函数VoidDraw(void);//画出线段};//...函数的实现略第36页,共65页,星期日,2025年,2月5日1.如何设计组合类的构造函数?原则:不仅要负责对本类中的基本类型成员数据赋初值,也要对对象成员初始化。声明形式:类名::类名(形参,本类成员形参):内嵌对象1(参数),内嵌对象2(参数),......{本类初始化}注意否则可能是一个不确定的值第37页,共65页,星期日,2025年,2月5日2.组合类的构造函数调用构造函数调用顺序:若调用缺省构造函数(即无形参的),则内嵌对象的初始化也将调用相应的缺省构造函数。内嵌对象的构造函数内嵌对象是客人;声明顺序调用本类的构造函数调用本类的析构函数内嵌对象的析构函数构造:析构:穿衣服与脱衣服第38页,共65页,星期日,2025年,2月5日classPoint //Point类声明{public: Point(intxx=0,intyy=0){X=xx;Y=yy;coutpoint的构造函数被调用endl;} Point(Pointp); intGetX(){returnX;} intGetY(){returnY;}private: intX,Y;};Point::Point(Pointp) //拷贝构造函数的实现{ X=p.X; Y=p.Y; coutPoint拷贝构造函数被调用endl;}第39页,共65页,星期日,2025年,2月5日classLine //Line类的声明{public: //外部接口 Line(Pointxp1,Pointxp2); Line(Line); doubleGetLen(){returnlen;}private: //私有数据成员 Pointp1,p2; //Point类的对象p1,p2 doublelen; };//组合类的构造函数Line::Line