欢迎来到天天文库
浏览记录
ID:40238213
大小:652.00 KB
页数:144页
时间:2019-07-28
《C++程序设计 冯博琴 C++第7章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第7章类和对象中国铁道出版社17.1面向对象的程序设计概述7.1.1对象和类的概念1.对象将现实世界中事物的本质抽象为对象,每个对象都具有属性和方法这两方面的特征。对象的属性描述了对象的状态也就是静态特征,可以使用变量表示,对象的方法则说明了对象的行为也就是动态特征,这两个方面的结合构成了对该对象的完整描述,可以使用函数来实现。22.类具有相似属性和行为的一组对象集合在一起,就形成了类。程序中,类是一种由用户自定义的数据类型,称为类类型,在这个数据类型中不但包含不同类型的数据,也包含了完成操作的函数。类和对象的关系类是对具有相同类型对象的抽象,而对象则是类的一个具体实例。同
2、一个类可以有不同的对象或实例,这些对象的状态可以不同,但功能都是相同的。33.面向对象程序设计的特性(1)封装把类的属性和方法看成了一个密不可分的整体,从而使类具有明确的独立性,这样能够完整地描述并对应于一类具体事物。(2)消息一个对象需要另外一个对象提供服务时,它向对方发出一个服务请求,收到请求的对象会响应这个请求并完成指定的服务,向对象发出的服务请求就称为消息,C++中消息是通过调用类的成员函数实现的。4(3)继承允许在已有类的基础上通过增加新特征而派生出新的类,原有的类称为基类,新建立的类称为派生类。属于某个类的对象除具有该类所描述的特性外,还具有层次结构中该类上层的
3、所有类描述的全部性质。继承性保证了新的程序设计可在原有基础上通过重用、扩展和细化来进行,不必从头做起,大大减少了重新编写新代码的工作量。5(4)多态性当程序中的其他部分向同名的方法发出同样的消息时,按照接收消息对象的不同能够自动执行类中不同的方法,这就是多态性。67.1.2面向对象的程序设计1.面向对象程序的结构框架面向对象的程序设计中,类作为程序的基本组成单元,通过类将数据和实现方法的函数封装在一起,类和类之间又通过成员、参数、继承和派生等实现相互的通信和联系,从而形成一个完整的整体。面向对象的程序一般由三个部分构成:(1)类的定义(2)类中函数成员的定义(3)main函
4、数的定义72.面向对象的程序设计方法与结构化程序设计方法的比较结构化程序设计方法以过程为中心构造应用程序,数据和处理数据的过程代码是分离的、相互独立的实体,设计出的程序可重用代码少,并且当代码量增加时维护数据和代码的一致性非常困难。面向对象方法吸收了结构化程序设计方法的优点,同时引入了新概念、新机制并建立了比传统方法更高层次的抽象。面向对象程序设计中,对象所具有的封装性和继承性使得代码重用成为可能,大大减少了程序出错的可能性。87.2类的定义类是由用户定义的一种新的数据类型,它将不同类型的数据和与这些数据有关的操作即函数封装在一起形成了一种数据类型。97.2.1定义类的一般
5、格式类的定义一般由声明和实现两部分组成,第1部分是类的声明,格式:class类名{public:数据成员和函数成员的声明//声明公有成员protected:数据成员和函数成员的声明//声明保护成员private:数据成员和函数成员的声明//声明私有成员};//注意末尾有分号10类的声明(1)class是保留关键字,用来定义类;(2)类名命名方式与标识符命名相同;(3)类的成员包括数据成员和函数成员两类,分别对应类的属性和行为;(4)关键字public、protected和private用来控制类成员的访问控制范围,它们称为访问权限修饰符。(5)一对花括号内的部分称为类体。1
6、1第2部分:函数成员的定义函数成员既可以在类的体内定义,也可以在类的体外定义C++程序中的某个函数可以属于某个类或者不属于任何一个类,属于某个类的函数称为成员函数,不属于任何类的函数称为非成员函数或普通函数。12示例:定义名为Rectangle的矩形类classRectangle//类名为Rectangle{public://声明3个公有成员voidInit(intLen,intWid);boolIsRectangle();voidArea();private:intLength,Width;//2个私有成员};//该行末尾有分号13类的实现voidRectangle::I
7、nit(intLen,intWid)//定义函数成员Init(){Length=Len;Width=Wid;}//该行末尾没有分号14类的定义boolRectangle::IsRectangle()//定义函数成员IsRectangle(){if(Length<=0
8、
9、Width<=0)returnfalse;elsereturntrue;}//该行末尾没有分号voidRectangle::Area()//定义函数成员Area(){cout<<"AREA="<
此文档下载收益归作者所有