【技巧】
切记将成员变量声明为private
。这可赋予客户访问数据的一致性、可细微划分访问控制、允诺约束条件获得保证,并提供class作者以充分的实现弹性
先来看看 public
成员变量,为什么不采用它呢?
- 如果成员变量不是
public
,客户唯一能够访问对象的办法就是通过成员函数。 - 可以通过
getter
和setter
成员函数来精确
的控制变量的权限,例如读写
,只读
,不可访问
等
protected并不比public更具有封装性,只有private提供封装.
- 假设我们有一个
public
成员变量,而我们最终取消了它,所有使用它的客户码都会被破坏,而那是一个不可知的大量。 - 假设我们有一个
protected
成员变量,而我们最终取消了它,所有使用它的derived classes
都会被破坏,那往往也是一个不可知的大量。