day12权限修饰符

101 阅读1分钟
四种权限修饰符:范围从大到小分别是:public、protect、default(friendly int c = 111;)、private
-------------- | ------ | --------- | --------- | ------- |
| 作用域                     | public | protected | 默认(什么都不写) | private |
| 在同一个类中               | √      | √            | √                  √    
| 在同一个包中(子类/无关类)   | √      | √            | √         
| 不同包的子类               | √      | √                
| 不同包的无关类              | √
//父类: com.itheima04包中
public class Fu04 {
    //用四种权限定义不同的变量
    public int a = 1;
    protected int b = 11;
    int c = 111;
    private int d = 1111;

    //成员方法
    //在同一个类中,四种权限都可以使用
    public void show() {
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        System.out.println(d);
    }
}
//子类: com.itheima04包中
//同一个包中的子类: 除了private以外,另外三种权限都可以使用
public class Zi04 extends Fu04 {

    public void method() {
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);
        //System.out.println(d);
    }
}
//无关类: com.itheima04包中
public class Demo04QuanXian {
    public static void main(String[] args) {
        //创建Fu04类的对象
        Fu04 fu04 = new Fu04();
        System.out.println(fu04.a);
        System.out.println(fu04.b);
        System.out.println(fu04.c);
        //同一个包中的无关类: 除了private以外,另外三种权限都可以使用
        //System.out.println(fu04.d);
    }
}
//不同包子类:com.itheima04.sub包中
//不同包的子类: 除了private和默认权限以外,另外两种权限都可以使用
public class Zi0402 extends Fu04 {
    public void fun() {
        System.out.println(a);
        System.out.println(b);
        //System.out.println(c);
        //System.out.println(d);
    }
}
//不同包无关类:com.itheima04.sub包中
//在不同的包的无关类: 只有public权限可以使用,其余权限不能用
public class Demo04WuGuan {
    public static void main(String[] args) {
        //创建Fu04类的对象
        Fu04 fu04 = new Fu04();
        System.out.println(fu04.a);
        //System.out.println(fu04.b);
        //System.out.println(fu04.c);
        //System.out.println(fu04.d);
    }
}