第12章面向对象的概念_第1页
第12章面向对象的概念_第2页
第12章面向对象的概念_第3页
第12章面向对象的概念_第4页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

第十二章面向对象的概念 C++语言是C语言的扩展。扩张表现在两个方面,一是在面向过程的程序设计机制基础上扩充C语言的功能,例如增加了函数重载、缺省参数函数、内置函数、变量引用、动态内存分配new等功能;另一个扩展是增加了面向对象的程序设计机制。而后者正是C和C++的最主要区别。第十二章面向对象的概念一、面向对象程序设计的基本概念 面向对象的程序设计它能较好地支持软件的扩充性和代码的重用性,从而提高程序员的生产能力,能控制软件的复杂性,提高软件的可维护性。

1.结构化程序设计 结构化程序设计的设计思路是:“自顶向下,逐步求精”。;每一模块内部均由顺序、选择和循环三种基本结构组成。

2.面向对象程序设计 一个程序是由一系列相互作用的对象构成的。对一组对象共性的抽象描述就是“类”。特点:

编写可重用代码 编写可维护代码 代码共享 精化已有代码第十二章面向对象的概念一、面向对象程序设计的基本概念 面向对象程序设计最突出的特性是封装性、继承性和多态性。

3封装性:封装是指将一个问题的数据和对数据的操作集合放在一起,形成一个有机的整体,即数据与操作数据行为的有机结合。对事物的封装结果就是对象。封装应该具有以下几个条件:具有一个清楚的边界,对象的所有私有数据和内部程序细节都被固定在这个边界内。具有一个接口,通过接口,对象外部能访问对象的数据和调用对象的行为。对象中的所有操作代码均受到封装壳的保护,其他人不能直接修改。

4.继承性:继承性在面向对象程序设计中主要有两个作用:代码重用,减少代码冗余;建立类之间的相交关系,减少对象的外部接口。

5.多态性:多态是指相同的函数调用在不同场合可以表现为不同的行为。多态性主要通过函数重载实现。第十二章面向对象的概念二、类和对象回顾结构体类型的定义:structstudent //定义结构体类型student {charnum[8]; //学号

intscore //成绩

};studentzhangsan; //定义结构体变量zhangsan1.类的定义:类的定义类似于结构体类型的定义,只是类的成员不仅是数据元素,还可以是操作数据的函数。C++中类的定义形式如下:class标识符{[private:

私有成员;][public:

公有成员;][protected:

保护成员;]}[对象列表];第十二章面向对象的概念二、类和对象对象列表是任选项,如果出现,表示定义类的同时定义了类的实例—对象。成员包括表示属性的数据成员和表示行为的成员函数。类的定义中可以包含三个保留字private、public、protected,用于控制数据成员或成员函数的访问权限。例.定义屏幕上的坐标点。classpoint{ intx,y;public: voidsetpoint(intvx,intvy); voidprint();};第十二章面向对象的概念二、类和对象2.类的成员函数一般地,在类定义体中只给出成员函数原型声明,在类定义之外再给出函数的具体实现代码。在类外定义成员函数时,必须在成员函数名前加上类名,具体形式为:返回值类型类名::函数名(参数表){

函数体}例如:voidpoint::setpoint(intvx,intvy){ x=vx; y=vy;}如果成员函数的函数体比较简单,也可以直接在类定义体内定义成员函数。第十二章面向对象的概念二、类和对象3.对象定义与成员访问对象的定义 定义对象和定义一般变量的过程相同,例如语句:

classpointp0;就定义一个point类型的对象p0,p0表示屏幕上的一个点。保留字class可以省略。 当然,也可以在定义类的同时定义对象(和结构体变量的定义方法类似)。对象成员的访问和访问结构体成员一样,访问对象成员也是使用“.“操作符。第十二章面向对象的概念二、类和对象3.对象定义与成员访问例:对象成员访问示例。voidmain(){ pointp; //定义对象p p.setpoint(10,20); //调用p的成员函数 setpoint,

//为数据成员提供值

p.print(); //调用p的成员函数print,

//输出数据:1020}第十二章面向对象的概念二、类和对象4.员的访问控制 类成员的访问权限控制是通过设置成员的访问控制属性符实现的。类的定义中可以包含三种访问控制属性符:private(私有)、public(公有)和protected(保护)。 为数据的安全性考虑,一般把数据成员定义成类的私有成员。 公有成员就是类的外部接口,类的外部通过外部接口(公有成员函数)访问类中数据。第十二章面向对象的概念二、类和对象5.构造函数 可以对象的成员初始化。要初始化对象成员,必须在类中定义构造函数。 构造函数也是类成员函数,具有一般成员函数的特征,但它与一般成员函数有下列区别:有固定的函数名,即构造函数名必须与类同名构造函数没有返回值,不能写返回值类型,包括void

构造函数必须定义为公有成员构造函数在定义对象时由系统自动调用,其他任何地方都无法调用它第十二章面向对象的概念二、类和对象5.构造函数例:带参数的构造函数示例。classpoint{ intx,y; public: point(intvx,intvy){x=vx;y=vy;}//定义带参数的构造函数

voidprint(){cout<<”x=”<<x<<”y=”<<y<<endl;} };voidmain(){ pointp(1,2); //定义对象时必须提供构造函数的实际参数

p.print(); //调用print函数,输出:x=1y=2}第十二章

温馨提示

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

评论

0/150

提交评论