访问修饰符理解为权限控制 用来限定作用域的
访问控制
| 修饰符 | 当前类 | 同一包中 | 子孙类(同一包) | 子孙类(不同包) | 其他包 | 
|---|---|---|---|---|---|
| public | Y | Y | Y | Y | Y | 
| protected | Y | Y | Y | Y/N | N | 
| private | Y | N | N | N | N | 
| default | Y | Y | Y | N | N | 
定义为 private的field丶method 无法被其他类访问 只能在本类中使用
private不能修饰外部类!!!
package com.oop.demo04;
public class Demo02 {
    private String name;
}
package com.oop;
import com.oop.demo04.Demo02;
public class Applcation {
    public static void main(String[] args) {
        Demo02 demo02 = new Demo02();
        // ‘name‘ has private access in ‘com.oop.demo04.Demo02‘
        // System.out.println(demo02.name);
        // ‘say()‘ has private access in ‘com.oop.demo04.Demo02‘
        // System.out.println(demo02.say());
    }
}
定义为public的class丶interface丶field丶method可以被任何类访问 权限最大
public权限最大 任何类都可以访问private权限最小 只能在本类中访问 且不能修饰外部类 一般用于字段和方法上default只要在同一个包中即可访问protected作用于继承关系 定义为protected的字段和方法可以被子类访问 以及子类的子类原文:https://www.cnblogs.com/juanbao/p/15009331.html