面向对象程序设计
对象
- 万物皆为对象
- 包含一定的数据结构和状态的实体,称为对象
- 作用于对象的行为(如访问和处理对象的状态),称为操作(operation)
面向对象(Objective Orientation,OO)
- 以==对象==为核心
- 先构造与整个系统(问题)相关的各个对象,描述他们的状态,他们的行为,然后通过消息来调动这些对象,让他们来解决这个问题
- ==程序 = 对象 + 消息==
- 面向对象将对象作为软件系统结构的基本组成单元,以主体数据为中心,将数据及其上作用的操作一起封装,以标准的接口规范对外提供服务
面向对象程序设计
更易理解
- 用更利于人理解的方法对复杂系统进行分析、设计与编程。
更高效
- 面向对象能有效提高编程的效率,通过封装技术,消息机制可以像搭积木的一样快速开发出一个全新的系统,
可重用性,可维护性更好。
再面向过程的思想中,编程者更像是一个==独裁者==,一个==执行者==;
面向对象的思想中,编程者更像是一部==电影的导演==。他组织剧组里的成员,交代分工和工作时的互相配合,然后再启动拍摄后退居到幕后,具体工作由收下按照他早已做好的安排来完成。
封装(Encapsulation)
- 开车时,引擎之于司机;
- 定义对象的操作,==只提供抽象的接口,并隐藏他们的具体实现==,称为封装。
- 面向对象封装了数据和逻辑,具有==更好的信息隐藏能力==。
继承(Inheritance)
- 子类(也称派生类)对象拥有与其基类(也称父类)相同的全部属性和方法,
多态性(Poymorphism)
- 多态是指在基本类中定义的属性或行为被子类继承后,==可以有不同的数据类型或行为特征==,多态性使程序可以按照他们的共同特征来书写