封装
封装是面向对象编程三大特征之一,还有继承与多态。封装的作用是当我们拿到一个需求后,如何正确设计对象的属性与方法。当需要设计一个“人”类的时候需要人的姓名,年龄属性吃饭睡觉方法。如下
但在实际开发中需求不会这么简单举个比较通俗的例子,比如人画圆
就需要定义一个people类,和一个circlecle类。
而画即为一个draw方法。那现在问题就是画这个方法应该属于哪一个人和圆哪一个类中,按照现实逻辑大多数人会认为属于人,但在 编程思维里他其实是属于圆,要想画圆需要圆的半径,这里圆类需要封装一些圆的属性比如半径,所以这里就得提供相应的画圆方法。所以画圆这个方法属于圆对象。一句话解释:人画圆,圆不是人画的而是调用了圆的画方法。并根据圆的半径属性画出了圆。
再举几个形象的例子就是人关门,门并不是人关的,实际上人只是轻轻推了一下门,给了门一个作用力。在面向对象思维里城思维里人只是调用了门的关门方法。这样的好处就是换一个对象比如动物,照样可以调用门的关门方法,照样可以关门。
张三砍死了李四,法律判决是这样说的:张三持刀行凶,造成了李四的死亡后果。你细品一下。所以李四不是张三杀死的,是自己死的。张三只是调用了李四的死亡方法。
最后总结一句话封装的原则:对象代表什么,就得封装对应的数据,并提供数据对应的行为。