作用:用来修饰类、成员变量、成员方法、内部类,控制对其访问的权限。

Java语言有四个权限访问修饰符,权限从大到小依次为:

1)public :公共权限,可以被任意类访问,不同包不同类依然可以访问

可修饰:类、成员变量、方法,内部类

2)protected:受保护的权限,可以被同包类访问,如果不是同包类,必须是该类的子类才可以访问

可修饰:成员变量、方法、内部类

3)default:默认的(无),同包权限,只能被同包的类访问

可修饰:类、成员变量、方法,内部类

4)private:私有权限,只能在本类中访问,同包其他类也不能访问

可修饰:成员变量、方法、内部类

访问权限:

4e74eb1e99d54edf95828d392dd8f84d.png

以上在本类中都可以访问到:

案例:

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);
      //在同包的其他类中只能访问 公共的,受保护,默认的
      //私有权限只能在自己类中访问,同包其他类也不能访问
      //父类中的私有的子类不能访问,受保护的子类可以访问
    }
}

 

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐