类与对象(1)

标题:类与对象

什么是面向对象**
面向对象(Object Oriented, OO)的程序设计的思路和人们日
常生活中处理问题的思路是相似的。在自然世界和社会生活
中,一个复杂的事物总是由许多部分组成的。
 当人们生产汽车时,分别设计和制造发动机、底盘、车身和轮子,最
后把它们组装在一起。在组装时,各部分之间有一定的联系,以便协
调工作。
 面向对象的程序设计的基本思路:使用现实世界的概念抽象
地思考问题从而自然地解决问题。
 现实世界是有各种实体组成。如一个学校,有学生、教师、各种教学辅
助设施等等不同的实体组成
 实体之间通过消息传递(教师学生布置作业即是发送了消息,)进行沟
通交流,相互协作完成某项任务。
对象
对象是人们要进行研究的任何事物,是现实世界中的一个实体。
例如学生就是一个对象。
任何对象都拥有一组数据和操作。
对象所拥有的数据称为对象的属性。
在现实世界中,对象都具有一定的行为,比如,学生要上课、
下课、写作业等等。
对象实现了数据和操作的封装。

类是对象的抽象。
相同特征的一组对象进行抽象形成了类。
比如,可以对不同的学生个体进行抽象,形成学生类。
本质上讲,类也是一种数据类型,是由程序员根据处理问题
的需要自己创建的一种数据类型,即用户自定义的数据类
型,而一个具体的对象可以视为属于这一数据类型的一个
变量。
任何一个对象都是通过类的实例化之后得到的。
数据封装
把数据和对数据的操作相结合,将它们视为一个单独的单元(称
为类)的行为称为封装。
在类中,被封装的数据不能被外界直接访问,只能被封装在同一
个类中的函数访问。这些函数提供了对象数据和程序之间的接口。
避免数据被程序直接访问的概念被称为信息隐藏。
封装的目的是增强安全性和简化编程,使用者不必了解具体的实
现细节,而只需要通过外部接口,以特定的访问权限,来使用类
的成员。
数据封装是类的最典型特点。
继承
继承是可以让某个类型的对象获得另一个类型的对象的属性
的一种技术。
继承的概念支持代码的重用性(reusability)
派生是C++中支持层次分类的一种机制,允许程序员在保持
原有类特性的基础上,进行更具体的说明。
实现:声明派生类。
多态性
不同的对象,对同一消息的不同响应。
如:加法操作,
如果操作的数据是数,它对两个数求和。
如果操作的数据是字符串,则它将连接两个字符串。
目的:达到行为标识统一,减少程序中标识符的个数。
实现:重载函数和虚函数。
消息传递
一个面向对象的程序由许多对象组成,对象之间通过收发
信息相互沟通,
消息就是请求执行某个过程,
消息的接收对象会调用一个函数(过程),以产生预期的结果。
面向对象程序设计
面向对象程序设计的核心任务是:
 类的确定和对象的创建,
而不是将各个具体的对象逐一进行描述。
 忽略各具体对象的非本质特征,抽象出本质特征与共
性,然后形成类的概念,对象是类的实例。
面向对象程序设计好处
1.写程序不再是从计算机的角度考虑问题了,而是站在
人类思维的角度。
2.程序的可扩展性要比其他不是面向对象的程序设计语言好。
3.能最大限度保护已有程序代码。
面向对象的方法
目的:
 实现软件设计的产业化。
 观点:
 自然界是由实体(对象)所组成。
 程序设计方法:
 使用面向对象的观点来描述模仿并处理现实问题。
 要求:
 高度概括、分类、和抽象。
抽象
抽象是对具体对象(问题)进行概括,抽出这一
类对象的公共性质并加以描述的过程。
 先注意问题的本质及描述,其次是实现过程或细节。
 数据抽象:描述某类对象的属性或状态(对象相互区
别的物理量)。
 代码抽象:描述某类对象的共有的行为特征或具有的
功能。
 抽象的实现:通过类的声明。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值