OOP
什么是OOP
- 面向对象编程:是一种以对象作为程序基本单元,将程序和数据封装在对象中,并通过对象之间的交互来实现程序的功能的编程范式。在面向对象编程中,对象是具有行为和状态的实体,可以通过定义类(Class)来创建对象,类是对象的蓝图,描述了对象的属性和行为。
- OOP与ADT:ADT是仅暴露接口的数据类型,在实现ADT时,可使用OOP的技术如继承、多态等,OOP中的类和对象也可以看作是一种ADT,他们将数据和相关操作封装在一起,定义了一种新的数据类型。通过将类实例化为对象,可以创造出具体的数据实例并对其进行操作,这也符合ADT的定义。
- 接口和类:在Java语言中接口可以确定ADT规约,类可以实现ADT,也可以不用接口直接使用类来作为ADT,但实际中更倾向于使用接口来定义变量
- 使用default方法可以在不破坏实现该接口的所有实现类的前提下,统一向接口添加新的方法,无需在各个类中重复实现。
OOP的一些细节
- 细节隐藏:好的模块对其他模块隐藏内部数据和其他细节,只通过API干净地与其他模块通信
- 通过接口实现信息隐藏
- 使用接口类型声明变量
- 客户端仅使用接口中定义的方法
- 客户端代码无法直接访问属性
- 继承和重写:
- 继承:在OOP中集成指可以使用已存在的类作为基础来定义自己的类,让自己的类获得已