1.什么是面向对象的程序设计
- 对象由一组属性和一组行为构成
- 属性;—-数据描述、静态特性
- 行为,即能根据外界给的信息进行相应操作。—-行为描述、动态特性
- 行为操作属性。
- 消息是外部控制行为的途径,对象间进行联系和协调也是靠消息。
- 在C++中,对象由数据和函数组成。
- 我们可以对一个对象进行封装处理,把其一部分属性和功能对外屏蔽,使用对象的人不必知道对象内部的具体细节,只需了解其外部功能即可操作对象。把对象的内部实现和外部行为分隔开来。
- 面向对象程序设计的每一组数据都有特定的用途,是某种操作的对象。即,一组操作调用一组数据。
- 程序设计的任务:
- 设计所需的各种种类和对象,即决定把那些数据和操作封装在一起;
- 考虑怎样向有关对象发送消息,以完成所需的任务。
- 面向对象的程序组成:
- 对象 = 算法 + 数据结构
- 程序=(对象+对象+对象+……)+ 消息
- 消息的作用就是对对象的控制
2.重要概念**
- 对象
- 客观世界中任何一个事物都可看成对象,对象时构成系统的基本单位。
- 任何对象都应当具有两个要素:属性和行为。
- 要使某一个对象实现某种行为,应当向它传送相应的消息。对象直接通过发送和接收消息互相联系。
- 封装与消息隐蔽
- 封装的含义
- 将有关的数据和操作代码封装在一个对象中,形成一 个基本单位,各个对象之间相对独立,互不干扰;
- 将对象中某些部分对外隐蔽,即隐蔽其内部细节,只 留下少量接口,以便与外界联系,接收外界的消息。
- 对外界隐蔽的做法称信息隐蔽。信息隐蔽有利于数据安全,防止无关的人修改数据
- 函数名时对象的对外接口,外界可通过函数名来调用这些函数来实现某些行为(功能)。
- 封装的含义
- 抽象
- 抽象即将有关事物的共性归纳、集中。抽象的作用是表示同一类事物的本质。
- 类是对象的抽象,而对象是类的特例,是类的具体表现形式。
- 对象是具体存在的。
- 继承与重用
- C++提供了继承机制,可以很方便地利用已有的类建立一个新的类。
- 如:“白马”继承了“马”的基本特征,又增加了新的特征(颜色),“马”是父类,或称基类,“白马”从“马”派送出来,称为子类或派生类。
- 继承机制可简化程序设计的步骤。
- 多态性
- 如有几个相似而不完全相同的对象,有时人们要求在向它们发出同一个消息时,它们的反应各不相同,分别执行不同的操作。这种情况就是多态现象。
- 多态性的含义:由继承而产生的相关的不同的类,其对象对同一消息会做出不同的响应。
- 多态性是面向对象程序设计的一个重要特征,能增加程序的灵活性。