封装、继承、多态-------面向对象三大特征
-
封装包含两方面意思:
隐藏:隐藏内部实现细节
暴露:将一些操作界面暴露出来。如果通过暴露的界面来操作对象,该对象的内部状态不会被破坏。
简而言之,封装要求合理隐藏合理暴露。 -
访问控制器:
private(类访问权限):该修饰符修饰的成员,只能在该类中被访问。------彻底的隐藏
不写(包访问权限):该修饰符修饰的成员,只能在该类及该类所在包中被访问。-----部分隐藏
protected(子类访问权限):该修饰符修饰的成员,只能在该类、及其该类所在的包、该类的子类中被访问。-----部分暴露
public(公共):该修饰符修饰的成员,可以在任意地方被访问。------彻底暴露
private | 不写 | protected | public | |
---|---|---|---|---|
当前类 | √ | √ | √ | √ |
同一包 | × | √ | √ | √ |
子类 | × | × | √ | √ |
任意 | × | × | × | √ |
- 指定原则:
(1)成员变量(实例变量),通常用private修饰,为了隐藏细节。
(2)为每个成员变量提供public的getter、setter方法,用于控制该成员变量的访问。
(3)需要暴露的方法通常用public修饰。
(4)如果希望一个方法主要用于被子类重写,用protected修饰