基本概念
面向对象编程将一个系统抽象为许多对象的集合,每一个对象代表了这个系统的特定方面。对象包括函数(方法)和数据。一个对象可以向其他部分的代码提供一个公共接口,而其他部分的代码可以通过公共接口执行该对象的特定操作,系统的其他部分不需要关心对象内部是如何完成任务的,这样保持了对象自己内部状态的私有性。
类与实例
当我们使用面向对象编程的术语对一个问题进行建模时,我们会创建一系列抽象的定义,这些定义代表了系统中存在的各类对象。例如,如果我们要对一个学校进行建模,我们可能会建立许多用于代表教授的对象,所有教授通常都存在以下属性:教授们都有一个名字;都有一门他们各自所教的课程。此外,所有教授都可以做一些特定的事情,包括:他们可以为学生的论文打分;他们可以在学年的开始向学生介绍自己。
类只是一种用于创建具体对象的模板。
继承
如果我们可以用某种特别的方式共享教授和学生中相同属性的声明,那么这会节省我们不少的精力。更准确的说,在某种层级上,二者实际上是同种事物,他们能够具有相同的属性也是合理的。继承(Inheritance)可以帮助我们完成这一操作。
Professor
类和 Student
类由 Person
类派生(derive)而来。
封装
当其他部分的代码想要执行对象的某些操作时,可以借助对象向外部提供的接口完成操作,借此,对象保持了自身的内部状态不会被外部代码随意修改。也就是说,对象的内部状态保持了私有性,而外部代码只能通过对象所提供的接口访问和修改对象的内部状态,不能直接访问和修改对象的内部状态。保持对象内部状态的私有性、明确划分对象的公共接口和内部状态,这些特性称之为封装(encapsulation)。
封装的好处在于,当程序员需要修改一个对象的某个操作时,程序员只需要修改对象对应方法的内部实现即可,而不需要在所有代码中找出该方法的所有实现,并逐一修改。某种意义上来说,封装在对象内部和对象外部设立了一种特别的“防火墙”。
标签:封装,内部,对象,代码,接口,js,面向对象编程 From: https://www.cnblogs.com/q-jlv/p/17649238.html