public意味着不封装,不封装意味着不可改变,特别是对广泛使用的class而言,被广泛使用的class是一个最需要封装的族群。
Protected的封装性并非高过public成员,某些东西的封装性与“当其内容改变时可能造成代码的破换量”成反比,从封装的角度来看,只有两种访问权限,private(提供封装)和其他(不提供封装)。
- 请注意
- 切记将成员变量声明为private。这可赋予客户访问数据的一致性、可细微划分访问控制、允诺约束条件获得保证,并提供class作者以充分的实现弹性。
- protect并不比public更具有封装性。
- 最好public中只存在函数。