要点:将成员变量声明为private。
有以下理由:
1) 接口语法的一致性。所有接口都是函数,均需()
2) 对成员变量访问的精确控制。例如不可直接访问、只读、读写
3) 封装性。首先能确保类的不变量( invariants),而且保留修改实现的权利,例如可以采用计算来替代成员变量。
protected成员变量的封装性不比public好。理由如下:
- 条款23谈到,封装性与修改时受影响的代码量成反比
- 删除一个public变量,受影响的代码量是未知的
- 删除一个proctected变量,受影响的代码量也是未知的。