天天看点

Java 中,访问级别解说

Java 中,访问级别解说

类的只有两种public,default(不同包不可以访问

public--都可访问(公有)   

private--类内可访问(私有)

protected--包内和子类可访问(保护)

不写(default)--包内可访问 (默认)

public>protected>default>private

Java 方法默认访问级别 : 包访问

Java 类默认访问级别 : 包访问

对于一个Class的成员变量或成员函数,如果不用public, protected, private中的任何一个修饰,那么该成员获得“默认访问控制”级别,即package access (包访问)。

属于package access的成员可以被同一个包中的其他类访问,但不能被其他包的类访问。

包访问的控制力弱于private,但强于protected。因为一方面,只要是子类,不管子类与父类是否位于同一个包中,那么子类都可以访问父类中的protected方法。但是一旦位于原类的包外,不管是否是其子类,都无法访问其属于package access级别的成员。而另一方面,一个类可以访问同一个包中另一个类的package access成员,同时也能访问其protected成员。

(注:package是Java中的关键字,虽然包访问也是一种访问控制级别,但关键字”package”只能用来表示类属于哪个包,而不能像”private”,”public”那样放到成员变量或函数前面,作为访问控制修饰符。)

访问级别保护的强度:public < protected < 默认 < private