1.面向对象技术的基本原则
(1)抽象
简而言之就是不具体,比如我把世界上所有的动物抽象成一个单词“animal”。
(2)封装
对客户隐藏实现,客户仅仅看到接口
(3)模块性
一个系统由不同的模块组成
(4)层次性
由更抽象到更具体的过程划分了不同的层次。
2.面向对象技术的基本概念
(1)对象
物理实体、概念实体、软件实体。如何寻找对象,找名词。
对象描述一个事物,它具有:
-状态:描述对象的静态信息
-行为:描述对象的动态信息
-标识:对象的名字
(2)类
类是对一组具有相同属性,行为,关系和寓意的对象的描述。
(3)类和对象的关系
类是创建对象的模板,对象是类的实例化
(4)对象间的关系
关联(聚合、组合)、依赖、泛化、实现
3.面向对象语言的特点
封装性:我们要把一个类的属性和方法封装到一起,外部只能通过一些公有的方法来访问一些私有的属性,做到了很好的信息隐藏
举例:
我:你多大?
男孩:我今年18岁。
在这段对话中我问男孩多大就是一个方法,我只有通过这个方法才能得知男孩的真正年龄,如果不使用这个方法就无从得知,男孩本身具有封装性,如果别人没有使用方法访问男孩,则他们无法得知他的年龄。
电视机与遥控器:
电视机是现实世界中客观存在的事物,可以定义为一个对象,我们操作遥控器对电视进行遥控,但是我们不需要知道电视机内部是如何运行的,这是因为我们通过遥控器操控了电视上对外的接口。
继承性:我们用继承机制来描述真实物理世界当中普遍存在的对象和对象之间的继承关系
举例:在面向对象编程过程中,我们定义一个类叫做“钢琴”一个类叫做“小提琴”一个类叫做“小号”,这个时候如果我们给所有的类都加上“品牌”这个属性,我们需要一个类一个类的进行添加,这时的代码维护量就很大,但是如果我们抽象出他们整体的一个父类,让这些子类去继承父类,这时,针对于所有乐器的属性我们就可以直接通过父类的代码修改来达成。
多态性:不同的事物当收到同样的消息时会产生不同的行为
举例:
一个遥控器同时对三个不同厂家的电视机发送开机指令,这三台电视的内部行为是不同的
乐队指挥对乐团发送同样的手势进行指挥,但是小号发出了小号的声音,钢琴发出了钢琴的声音,笛子发出了笛子的声音,他们的声音各不相同。
如何实现:首先要有一个接口