这是这个系列的第二篇。在第二篇里,我决定讲一讲封装。
程序的不同部分应该用封装去互相隔离,模块之间应该不应该产生很随意的关联。
可能有的人觉得不解,又或觉得是有道理的废话,不急,先一步一步来。
我们先来看看面向对象的三个基本特征是什么?
继承
多态
封装
如果你是科班毕业,这6个字应该是你第一次学到类(class)的时候就听老师说了。
我们老师的话大概是这样的:
在类里面,封装就是通过一些手段来限制类外部的访问,依此隔离出类相对封闭的区域。
也就是说,如果有人想要操作类里面的成员(field),不应该让它直接进行这样操作。而应该通过良好定义的函数(或属性的Setter)来完成。除非你有不得不如此的理由,否则就不应该让人家直接访问你的私有成员。
下面的代码通常是bad practice。
任意的类均能任意的修改Person内的Name和Age,即便Name写成乱码或将Age设成负数,都是可以做到的,Person类自己是控制不住的。
public class Person{ public int Age; &nb