作用:用来修饰类、成员变量、成员方法、内部类,控制对其访问的权限。
Java语言有四个权限访问修饰符,权限从大到小依次为:
1)public :公共权限,可以被任意类访问,不同包不同类依然可以访问
可修饰:类、成员变量、方法,内部类
2)protected:受保护的权限,可以被同包类访问,如果不是同包类,必须是该类的子类才可以访问
可修饰:成员变量、方法、内部类
3)default:默认的(无),同包权限,只能被同包的类访问
可修饰:类、成员变量、方法,内部类
4)private:私有权限,只能在本类中访问,同包其他类也不能访问
可修饰:成员变量、方法、内部类
访问权限:
以上在本类中都可以访问到:
案例:
public class Demo1 {
public String pubname;
protected String proname;
String name;
private String priname;
public static void main(String[] args) {
//没有加static,所以这里要创建一个对象
Demo1 demo1 = new Demo1();
System.out.println(demo1.pubname);
System.out.println(demo1.proname);
System.out.println(demo1.name);
System.out.println(demo1.priname);
}
}
注意:protected修饰的成员变量,在不同包中的子类可以访问父类受保护的成员
public class TestDemo1 extends Demo1{
public static void main(String[] args) {
Demo1 demo1 = new Demo1();
//不同包不同类公共权限依然可以访问
System.out.println(demo1.pubname);
//受保护,默认的不能访问
//System.out.println(demo1.proname);
//System.out.println(demo1.name);
TestDemo1 testDemo1 = new TestDemo1();
//在不同包的子类中可以访问父类中受保护成员
System.out.println(testDemo1.proname);
//在同包的其他类中只能访问 公共的,受保护,默认的
//私有权限只能在自己类中访问,同包其他类也不能访问
//父类中的私有的子类不能访问,受保护的子类可以访问
}
}