修饰符
成员变量有四种修饰符
private 私有的
package/friendly/default 即不写
protected 受保护的
public 公共的
类之间的关系
自身:指的是自己
同包子类:Warrior(战士)这个类是Hero(英雄)的子类,并且和Hero处于同一个包下
不同包子类:Master(法师)这个类是Hero的子类,但是在另一个包下
同包类:Nagas(龙族)这个类和Hero是同一个包,但是彼此没有继承关系
其他类:Itemm(物品)这个类,在不同包,也没有继承关系的类
比较
| 自身 | 同包子类 | 不同包子类 | 同包类 | 其他类 | |
|---|---|---|---|---|---|
| private | 可访问 | 不可继承 | 不可继承 | 不可访问 | 不可访问 |
| package | 可访问 | 可继承 | 不可继承 | 可访问 | 不可访问 |
| protected | 可访问 | 可继承 | 可继承 | 可访问 | 不可访问 |
| public | 可访问 | 可继承 | 可继承 | 可访问 | 可访问 |
使用
那么什么情况该用什么修饰符呢?
- 属性通常使用private封装起来
- 方法一般使用public用于被调用
- 会被子类继承的方法,通常使用protected
再就是作用范围最小原则
简单说,能用private就用private,不行就放大一级,用package,再不行就用protected,最后用public。 这样就能把数据尽量的封装起来。