Java 语言有四种访问权限修饰符:private default protected public
Public : 在同一个类中,在同一个包中,在不同包中的子类,在不同包中的非子类。中都可以被访问。Public 可以用来修饰类,成员变量,方法。
Private:私有的,被private 修饰的成员变量和方法只能在同一个类中被访问。Private 不能修饰类。
上述代码验证了在同一个包中,不同的类不能访问被private 修饰的成员变量和方法。
Private 的访问权限是只能在同一个类中被访问。
Default : 在用一个类和同一个包可以被访问。Default 不能修饰类。Default 即默认的意思。
class A{
int m;
void print(){}
}
public class TestDefault {
public static void main(String[] args){
A a = new A();
a.m = 1;
a.print();
}
}
Protected : 在同一个类,同一个包和不同包中的子类可以被访问。可以修饰成员变量和方法。
class A {
protected int m;
protected void print(){}
}
public class TestProtected {
public static void main(String[] args){
A a = new A();
a.m = 1;
a.print();
}
}
总结如下:
同一个类 | 同一个包 | 不同包中的子类 | 不同包中的非子类 | |
private | Y | |||
default | Y | Y | ||
protected | Y | Y | Y | |
public | Y | Y | Y | Y |