面向对象程序设计(object-oriented programming,OOP)是当今主流的程序设计范型,它取代了20世纪70年代的“结构化”或过程式编程技术。由于Java是面向对象的,所以必须熟悉OOP才能够更好地使用Java。
面向对象的程序是由对象组成的,每个对象包含对用户公开的特定功能部分和隐藏的实现部分。程序中的很多对象来自标准库,还有一些是自定义的。
程序=算法+数据结构
- 类
类(class)是构造对象的模板或蓝图。
可以将类想象成制作小甜饼的模具,将对象想象为小甜饼。
由类构造对象的过程称为创建类的实例。
封装: 是处理对象的一个重要的概念。从形式上看,封装就是将数据和行为组合在一个包中,并对对象的使用者隐藏具体的实现方式。实现封装的关键在于,绝对不能让类中的方法直接访问其他类的实例字段。程序只能通过对象的方法与对象数据进行交互。封装给对象赋予了“黑盒”特征,这是提高重用性和可靠性的关键。这意味着一个类可以完全改变存储数据的方式,只要仍旧使用同样的方法操作数据,其他对象就不会知道也不用关心这个类所发生的变化。 - 对象
要想使用OOP,一定要清楚对象的三个主要特性:
对象的行为: 可以对对象完成那些操作,或者可以对对象应用那些方法?
对象的行为是用可调用的方法来定义的。
对象的状态: 当调用那些方法时,对象会如何响应?
每个对象都保存着描述当前状态的信息。这就是对象的状态。对象状态的改变必须通过调用方法实现(如果不经过方法调用就可以改变对象状态,只能说明破坏了封装性)。
对象的标识: 如何区分具有相同行为与状态的不同对象?
每个对象都有一个唯一的标识。
对象的这些关键特性会彼此相互影响。