作用域与可见性 | 当前类 | 同一package | 子类 | 其他package |
---|---|---|---|---|
public | 能 | 能 | 能 | 能 |
private | 能 | 否 | 否 | 否 |
protected | 能 | 能 | 能 | 否 |
default | 能 | 能 | 否 | 否 |
- public 表明该成员变量或方法对所有类或对象都是可见的,所有类或对象都可以直接访问。
- private 表明该成员变量或方法是私有的,只有当前类对其具有访问权限,除此之外的其他类或者对象都没有访问权限。
- protected 表明成员变量或方法对该类自身,与它在同一个包中的其他类,,在其他包中的该类的子类都可见。
- default 表明该成员变量或方法只有自己和与其位于同一包内的类可见。若父类与子类位于同一包内,则子类对父类default成员变量或方法都有访问权限;若父类与子类位于不同的package内,则没有访问权限。
需要注意的是,这些修饰符只能修饰成员变量,不能用来修饰局部变量。private与protected不能用来修饰类(只有public、abstract或final能用来修饰类)。