为什么要将成员变量声明为private:
1.为了语法的一致性;
访问class成员变量时不需要使用小括号,
访问class成员函数时需要使用小括号。
2.使用函数可以让你对成员变量的处理有更精准的控制;可以实现“只读”、“只写”…
3.最重要的,是为了封装。
封装的好处:
可以为所有可能的实现提供弹性;
如添加通知、验证class约束条件、在多线程环境中执行同步控制…
确保class的约束条件总会获得维护,犹有进者,你保留了日后变更实现的权利;
不封装意味着不可改变;
protected成员变量类似,不封装它会破坏派生类代码。
从封装的角度看,只有两种访问权限:private(提供封装)和其他(不提供封装)。