面向对象-封装
面向对象编程的三要素:封装,继承,多态。我们接下来一一介绍这些面向对象的概念。
什么是封装?要知道什么什么是封装,需要先知道怎么是类,什么是对象。
类是抽象,将有共同属性和行为的“对象”抽象成为类,比如:猫,狗拥有共同的属性特征:哺乳,胎生。。我们可以抽象出哺乳动物的类 class Mammal。我们将其属性隐藏,对外提供接口,外部可以通过接口访问提供的属性。这些属性不是所有的都能被访问到,只有我们提供了接口的属性才行。
对象是类的实例,比如 class Mammal,我们为邻居家的金毛创建一个实例: Mammal oMammal。oMammal 称为对象,它是类 Mammal 的一个实例。
在类 Mammal 中,我们提供了接口获取颜色, GetColor()。我们能够通过这个接口来获取 oMammal 的颜色。邻居家的金毛是金黄色,我们能够通过该接口得到颜色为金黄。
我们想知道 oMammal 的年龄,我们不能通过 m_Age 来直接获取,那要知道 oMammal 的年龄,就必须有一个类似 GetAge() 的接口。非常遗憾,我们没有提供这样的接口。对于动物的接口我们也要保密,不想让别人知道。
整个抽象出 Mammal 类的过程,我们称为封装的过程。
所以封装就是抽象出类的过程,在封装的过程中,我们定义了共同的属性,这些属性是不能随意访问的。在抽象的过程中,我们提供部分接口,外部可以通过这些接口访问部分属性。
这就是封装。