Giskard

(二)类和对象的特性

2019-01-27

优良的软件系统具备的特点

可重用性:避免重复编程

可扩展性:在现有系统结构基础上,创建新的子系统

可维护性:能够适应用户的需求变化

面向过程的软件开发方法:

按照功能划分软件的结构

自顶向下的设计方法

以函数作为程序主体

面向对象的软件开发方法:

将软件系统看作各种对象的集合

系统结构比较稳定

对象将数据及函数的具体实现方式进行封装

提高了软件的可重用性、可维护性和可扩展性

面向过程编程与面向对象编程的区别

面向过程编程先确定算法,再确定数据结构;面向对象编程先确定数据结构,再确定运算。

面向过程编程的程序员,习惯于建立数据结构存放数据,并定义函数来操作数据;面向对象编程的程序员则构造一个对象模型,将数据与函数组织在一起。

软件对象

将状态(数据)和行为(功能)捆绑在一起的软件结构/模块

类是描述一组相似对象共有特征的抽象

对象和类的关系

对象是类的一个具有特定属性值的具体实例

从一个类可以创建(实例化)多个对象

相同类的两个对象具有相同的属性和函数,但属性值不同

数据成员不能在类体中被显式地初始化。

class Time
{
       int Hour=0;     // 错误

    int Minute=0;   // 错误

    int Second=0;   // 错误

};

类的数据成员将通过构造函数进行初始化

在类中定义的成员函数自动成为内联函数。

成员函数可直接访问私有成员

将类的声明和实现分别放在两个不同的文件中

如果在类外实现成员函数,可以大大节省空间。但不会自动当做inline

如果在类体中定义成员函数,系统会自动把它当作内联函数。

面向对象程序设计中,对类成员的访问往往通过接口(类的成员函数)实现。

在设计接口时,应注意为该类可以暴露给外界的信息提供接口,同时隐藏私密信息。

若要访问对象的私有的数据成员,只能通过对象的公有成员函数来获取。

各对象所占空间中只有数据成员,而无成员函数的空间。成员函数只存储一份,由对象共享。

Tags: C/C++