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