Java中有两个级别的访问控制:
(1)At the top level — public, or package-private (no explicit modifier)
(2)At the member level — public, private, protected, or package-private (no explicit modifier)
At the top level:类(class)声明时,访问修饰符有两种:public,不使用访问修饰符。被public修饰的类可以所有的类访问;没有访问修饰符的类只能被其所在的包(package)中的类访问。
At the member level:成员(member)声明时,访问修饰符有四种选择:public、private、protected、不使用访问修饰符。被public修饰的成员在所有的类中都可以被访问;被private修饰的成员只能在其所在的类中被访问;被protected修饰的成员,可以被同包中的类以及在其它包中的该成员所属类的子类访问;没有修饰符的成员可以被同包中的类访问。
成员级的访问控制: