访问控制修饰符说明类或雷的成员的可访问范围,用public修饰的类或成员拥有公共作用域,表明此类或类的成员可以被任何Java中的类所访问,有最广泛的作用范围。用protected修饰的变量或方法拥有受保护作用域,可以被同一个包中所有的类及其他包中该类的子类所访问。用private修饰的变量或方法拥有私有作用域,只能在此类中访问,在其他类中,包括该类的子类中也是不允许访问的,private是做保守的作用范围。没有使用任何修饰符的,拥有默认访问权限(也称友好访问权限),表明此类或类的成员可以被同一个包中的其他类访问。
修饰符 | 同一个类中 | 同一个包中 | 不同包中的子类 | 不同包中的非子类 |
public | Yes | Yes | Yes | Yes |
protected | Yes | Yes | Yes | No |
default | Yes | Yes | No | No |
private | Yes | No | No | No |
当然,成员的作用范围受到类的作用范围的限制,如果一个类仅在包内可见,那么它的创元即便是用 public修饰的,也只有在同一个包内可见。