天天看点

Java 权限修饰符详解

java语言中有四种访问权限的等级控制,从权限的大到小顺序依次是:

public:对所有访问者都是可见

protected:同包以及子类可以访问

package-private:同一包内可以访问

private:只对本类内部成员的访问是可见 

其中package-private 是默认访问权限即不带修饰符的情况(默认访问权限有些人上说成可成default 或 friendly 但本人觉得package-private 表达的更直观)。更直观的表如下:

访问修饰符 同一个类 同包 不同包,子类 不同包,非子类
private --  -- --
package-       private -- --
protected --
public 

1、外部类(Class)的访问权限修饰符: 

      外部类的访问权限只有public 与package-private 

package-private(默认):如果一个外部类没有写访问权限修饰符,那么就是package-private的访问权限,同一个包下的类都可以访问到。

public:可以供所有的类访问。 

说明: 

1)、每个类文件都有且仅能有一个public 外部class 。

2)、public class的名称必须和其类文件同名。 

3)、一个类文件(*.java)中可以没有public class。 

2、类成员变量、成员方法的访问权限: 

public、private、package-private、protected;

3、内部类访问权限:

内部类可以看成一个外部类的一个成员、只不过这个类员有点特殊、是一个类。内部类的访问权限同成员变量、成员方法一样。(public、private、package-private、protected;)