一、OOP的全称:
Object Oriented Programming
二、概念:
Namespace
Class:
定义对象的特征,定义对象的模子,JS没有类的概念
Object:
实体
Property:
属性,对象的特征(静态)
Method:
方法,对象的特征(动作行为)
Constructor:
构造,对象初始化的瞬间, 被调用的方法
三、面向对象特征:
1.封装(Encapsulation)
封装给对象提供了隐藏内部特性和行为的能力。对象提供一些能被其他对象访问的方法来改变它内部的数据。一般来讲有三种修饰符:public、private和protected。每一种修饰符给其他的位于同一个包或者不同包下面对象赋予了不同的访问权限。
下面列出了使用封装的一些好处:
- 通过隐藏对象的属性来保护对象内部的状态
- 提高了代码的可用性和可维护性,因为对象的行为可以被单独的改变或者是扩展
- 禁止对象之间的不良交互提高模块化
2.继承(Inheritance)
继承给对象提供了从基类获取字段和方法的能力。继承提供了代码的重用性,也可以在不修改类的情况下给现存的类添加新特性
3.多态(Polymorphism)
多态是编程语言给不同的底层数据类型做相同的接口展示的一种能力。一个多态类型上的操作可以应用到其他类型的值上面。
4.抽象(Abstraction)
抽象是把想法从具体的实例中分离出来的步骤,因此,要根据他们的功能而不是实现细节来创建类。比如Java支持创建只暴露接口而不包含方法实现的抽象的类。这种抽象技术的主要目的是把类的行为和实现细节分离开。
笔者个人认为面向对象编程就是基于对象编程,给不同的对象封装不同的方法与属性,通过调用对象的方法和属性实现代码的复用,摆脱面向过程的开发方式。而且不会全局污染。