六、类与对象:
我们首先看一下结构化程序设计语言(常见的就是C语言)的设计思想:
程序 = 算法 + 数据结构
其中算法第一,数据结构第二
而面向对象的程序设计OOP(Object Oriented Programming)的设计思想则是:
程序 = 对象 + 对象 + 对象 ……
关键:让每一个对象负责执行一组相关的任务
1.面向对象编程开发的特性:
1)万物皆对象
2)程序就是一组对象之间彼此在发送消息
3)每个对象都有自己的内存占用,可以组装成更大的对象
4)每个对象都有类型,特定类型的所有的对象可以接受相同的消息。
2.类:
1)类是创建对象的模板和蓝图
2)类是一组类似对象的共同的抽象定义
3.对象:
1)对象是类的实例化结果
2)对象是实实在在的存在,代表现实世界的某一事物
4.对象的三大关键特性:
1)行为:对象能干什么
2)状态:对象的属性,行为结果
3)标识:对象的唯一身份
5.类与对象之间的区别和联系:
区别:
1)类是静态的定义
2)对象是动态的实例
3)程序代码操作的是对象而非类
4)建立模型得到的是类而非对象
联系:
1)类是对象的定义
2)对象的产生离不开类这个模板
3)类存在的目的是实例化得到的对象
6.世界由对象组成
7.定义一个类的步骤:
1)定义类名
2)编写类的数据成员代表属性
3)编写类的方法代表行为
8.类的建模是一种抽象和封装的过程
1)抽象:去掉不关注的、次要的而保留重要的信息
2)封装:信息打包:
具体一点:将数据和行为结合在一个包中,对对象的使用者隐藏数据的具体实现方式。
实现封装的关键:不能让类中的方法直接访问其他类的内部数据,只能通过公开的行为方法直接访问。
9.定义成员函数:
在类中定义成员函数一般为内联函数,即使没有明确用inline标识
在类的其他地方定义成员函数
类的成员函数也可以像普通函数一样进行重载
但是不同的类即使有相同的函数名也不算重载
类的成员函数可以像普通的函数一样设置默认参数
10.调用成员函数
必须指定对象和成员名
11.面向对象编程的三大特性:继承,封装,多态
七、封装:类背后的思想是数据抽象和封装
信息隐藏,隐藏对象的实现细节,不让外部直接访问到,将数据成员和成员函数包装到一个单元中,单元以类的形式实现。
将数据成员和成员函数包装进类中,加上具体实现的隐藏,共同被称作封装,其结果是一个同时带有特征和行为的数据类型
信息隐藏是oop的最重要的功能之一,也是使用访问修饰符的原因。
信息隐藏的原因包括:
1)对模块的任何实现细节所做的更改不会影响使用该模块的代码
2)防止用户意外修改数据
3)使模块易于使用和维护