public > protected > (default) > private
1.public 修饰的,在任何地方都可以访问
2.protected 修饰的,在类内部、同一个包、子类中能访问
3.default 表示在本类中、同一个包中能访问,但是在代码中不可以直接写 default,default 这里不是指关键字,仅代表不写时的默认权限
4.private 修饰的,仅限本类内部访问
class B {
int x = 0;
}
类 B 默认的访问访问权限是 friendly,属性 x 的默认访问权限也是 friendly,friendly 也就是 package 或者 default,表示同一个包或者本类中可以访问。
5.外部类只能使用 public 或者不写(default),不知道为什么?
public class Outer {}// 或者不写
class Outer {}
6.成员内部类可以使用所有的权限修饰符,成员内部类必须通过外部类的实例对象才能实例化。
7.局部内部类什么访问权限修饰符都不可以使用,同理,局部变量也是不能使用任何权限修饰符的。