Java面向对象编程(OOP)定义
Java的面向对象编程包含四个核心概念:抽象、封装、继承、多态。把握这些概念对于理解Java至关重要。最基础地,OOP让我们创建方法和变量,并可以安全地全部或部分复用他们。
Java OOP 概念列表
- 抽象(Abstraction). 抽象意味着使用简单的事物来表征复杂场景/事物。我们都知道如何打开电视,我们享受看电视的乐趣,但是不需要知道电视是如何工作的。在Java中,抽象意味着使用简单的事物:类、对象、变量来表示深层次的复杂代码和数据。它可以让我们避免重复进行同样的工作。
- 封装(Encapsulation). 能够诠释封装性的最简单实践是:让类字段保持私有,提供公有方法对他们访问。类是一个保护栅栏,提供访问控制机制,保证其内部的数据和代码安全,也是一个容器,使我们可以复用一些方法和数据。
- 继承(Inheritance). 继承使开发者可以在已有类对基础上创建新的类,新对类可以共享已有类对一些属性。这避免了开发者不断重复造轮子。
多态(Polymorphism). 多态使开发者使用同样的语言,在不同的语境下表示不同的事物。多态的一个组成部分是方法重载,同一个方法名可以有不同的输入,差异化的过程和输出。另一个组成部分是方法重写,同一个方法在父类和子类中有不同的实现。
How OOP Concepts in Java Work
How Abstraction Works
抽象让开发者创建有用、可复用的工具。举例,开发者可以创建不同的对象,也可以创建不同类型的对象。类是对象的模板、对象是类的实例。
How Encapsulation Works
封装的意义:创建可复用的代码片段,使用者不需要关心其内部细节;另一方面,封装有助于数据的访问控制和安全。
How Inheritance Works
继承的意义:让一个类可以共享另一个类的属性。避免重复的工作。具体而言,子类可以共用父类的部分属性。
How Polymorphism Works
父类引用可以指向任意子类对象,即一个类型的引用可以有不同类型的具体实现。多态体现在两个方面:方法重载和方法重写。
面向对象编程的最佳实践
面向对象的目标是:复用组件并保证安全和易用性,最好的实践都是面向这个目标
DRY (Don’t Repeat Yourself). 这是Java的核心概念。类似的代码不要写两遍。**
- Single Responsibility. 单一职责原则。一个类应该只有一个职责。如果需要扩展新的功能,可以继承新的类,避免多个功能的耦合。
- Open Closed Design. 所有的方法和类对修改关闭,对扩展开放。