四种修饰符在不同情况的访问权限
public | protected | default | private | |
---|---|---|---|---|
同一类 | Y | Y | Y | Y |
同一包 | Y | Y | Y | N |
不同包子类 | Y | Y | N | N |
不同包非子类 | Y | N | N | N |
补充:
定义一个类时,权限修饰符的规则
- 外部类:public/(default)
- 成员内部类:public/protected/(default)/private
- 局部内部类:什么都不能写,直接
class 类名称 {...}
局部内部类访问本方法中的变量注意:
- 此变量必须是 final 修饰 或 在方法体中没有发生过变化(有效final)
- 局部内部类中不可定义静态变量