Java的四种权限修饰符

public > protected > (default) > private
同一个类(我自己) YES YES YES YES
同一个包(我邻居) YES YES YES NO
不同包子类(我儿子) YES YES NO NO
不同包非子类(陌生人) YES NO NO NO

注意事项:(default)并不是关键字“default”,而是根本不写。

  • /同一个类(我自己)/

package src.cn.itcast.day11.demo02;

public class MyClass {

    public int num = 10;

    public void method() {
        System.out.println(num);
    }

}
  • /同一个包(我邻居)/

package src.cn.itcast.day11.demo02;

public class MyClass {
	//修饰符[public] [protected] [(default)] 都可以访问,修饰符[private]则不能访问MyAnother类
    private int num = 10;

    public void method() {
        System.out.println(num);
    }

}

package src.cn.itcast.day11.demo02;

public class MyAnother {

    public void anotherMethod() {
//        System.out.println(new MyClass().num);
    }

}
  • /不同包子类(我儿子)/

package src.cn.itcast.day11.demo02;

public class MyClass {
	//修饰符[public] [protected] 都可以访问,[(default)] [private] 不能访问子类MySon
    public int num = 10;

    public void method() {
        System.out.println(num);
    }

}


package src.cn.itcast.day11.demo02.sub;

import src.cn.itcast.day11.demo02.MyClass;//需要导包

public class MySon extends MyClass {

    public void methodSon() {
//        System.out.println(super.num);
    }

}
  • /不同包非子类(陌生人)/

package src.cn.itcast.day11.demo02;

public class MyClass {

    public int num = 10;

    public void method() {
        System.out.println(num);
    }

}


package src.cn.itcast.day11.demo02.sub;

import src.cn.itcast.day11.demo02.MyClass;

public class Stranger {

    public void methodStrange() {
        System.out.println(new MyClass().num);
    }

}
posted @ 2021-05-16 20:52  Cucurrucucu  阅读(73)  评论(0)    收藏  举报