- 1、本文档共14页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C_3_类与对象.
类与对象
§3—1 面向对象
§3—2 类的定义
§3—3 对象的定义
§3—4 对象的初始化
§3—5 特殊类
§3—6 特殊对象
§3—7 特殊成员
§3—8复杂对象
§3—9 类类型转换
§3—10 友元
§3—1 面向对象
一.面向对象
面向对象本质上是一种自然合理的思维方法,是一种通过模仿人类建立现实世界模型的习惯思维方式和表达方式,运用对象、类、封装、继承、消息、多态性等概念来构造系统的软件开发方法,它包含面向对象的分析、设计、编程、测试和维护等过程。
它从研究的客观事物出发,将它们抽象为系统中的对象,作为构成系统的基本单位,并尽可能隐蔽对象的内部细节,再把具有相同属性和服务的对象抽象为类。
从客观事物出发,经过不同层次上的抽象得到基类和它的派生类,派生类继承基类的属性和服务,实现了共享。
类中的大多数数据只能用本类的方法进行处理,类通过一个简单的外部接口与外界发生关系,对象与对象之间通过消息进行通信。
向不同对象发送同一消息,可产生不同的行为
面向对象的三大特性
1.封装性:是基础
是把对象的属性和服务结合成一个独立的系统单位,并尽可能隐藏对象的内部细节,只保留有限的对外接口使之与外部发生联系,其目的是有效地实现信息隐藏,它是软件设计模块化、软件复用、软件维护的基础
对象和类是封装性的体现。
类是对若干对象的抽象描述,对象是它所属类的实例
对象:是用来描述客观事物的一个实体,是问题域中客观事物的抽象表示,是用来构成系统的基本单位,由一组属性和行为构成
对象属性:表示客观事物的静态特性,一般用数据表达
对象行为:描述客观事物的动态特性,即事物的行为,一般用函数(方法)来表达
类:是一种用户自定义的抽象数据类型,包含属性和服务两部分,它为该类的所有对象提供一种统一的抽象描述
2.继承性:是关键
派生类继承基类的属性和服务,派生类自身还有新的属性和服务
继承机制既可避免公用代码的重复开发,减少代码和数据冗余,又可通过增强一致性来减少模块间的接口和界面
继承有单继承和多继承,继承有传递性
3.多态性:是补充
即同一接口,多种方法;相同界面,多种实现
指同一个名字对应着多种不同的行为或实现
或不同对象收到相同的消息时,产生不同的行为
多态性有两种:
编译时的多态性:重载,包括函数和运算符重载
运行时的多态性:动态联编,即同一属性或行为在基类及其各个派生类中具有不同的语义
多态性使高层代码只写一次而在低层可多次复用,提高了程序设计的灵活性和效率
基本术语
1.抽象
对一类具体事物共性的描述,即从一类事物中抽取共同的本质特点成为概念
2.消息
即成员函数的调用
是向对象发出的服务请求,它包含提供服务的对象标识、服务标识以及输入信息和回答信息
消息的接收者是提供服务的对象,它对外提供的每一种服务是按消息格式规定好的消息协议,该消息协议就是其服务的具体功能,即通过函数体来实现的
一条完整的消息包含如下内容:
① 消息的接收者:对象标识
② 服务标识:函数名
③ 符合消息协议要求的参数:函数实参表
§3—2 类的定义
一、类
面向对象程序设计=对象+对象+对象
对象=算法+数据结构
类:
是对某一类对象的抽象,它由概括了一组对象共同性质的数据和函数组成
是一种用户自定义的抽象数据类型,它具有对数据的抽象性、隐藏性和封装性
对象:
是某一个类的实例,是对现实世界中真实对象的模拟
现实世界是一个对象的世界,任何对象都具有一定的属性和操作,总能用数据结构与算法两者合一地来描述
类的定义
1.类的定义
(1)说明部分
用于类中成员作说明,告诉使用者“干什么”:
① 数据成员说明:对象的属性、状态、特征
② 成员函数说明:对象的行为、操作、服务、方法
(2)实现部分
用来实现成员函数,告诉使用者“怎么干”
即提供成员函数的函数体
2.具体定义格式:
class 类名
{
public:成员函数和数据成员的说明或实现
protected:成员函数和数据成员的说明或实现
private:数据成员和成员函数的说明或实现
};
各个成员函数的实现
说明:
(1)类名:用户自定义的标识符,应有一定英文含义,类名本身就是类型名
(2)类体:“{ }”括起来的部分,凡在其中实现的成员函数均为内联函数
(3)访问权限修饰符:
① public:公有访问属性,这种成员可以被任意函数访问(使用),提供类的接口功能
② protected:保护访问属性,这种成员只能被本类的成员函数和友元函数以及派生类中的成员函数和友元函数访问(使用)
③ private:私有访问属性,这种成员只能被本类的成员函数和友元函数访问(使用)
(4)当把私有成员的声明放
文档评论(0)