四、类的访问权限
为什么 Employee.id 要 private 不能 public?
Java 中,可以使用访问控制符来保护对类、变量、方法和构造方法的访问。Java 支持 4 种不同的访问权限。
· default (即默认,什么也不写): 在同一包内可见,不使用任何修饰符。使用对象:类、接口、变量、方法。
default 修饰方法:不可以被重载。
· private : 在同一类内可见。使用对象:变量、方法。 注意:不能修饰类(外部类)
· public : 对所有类可见。使用对象:类、接口、变量、方法
· protected : 对同一包内的类和所有子类可见。使用对象:变量、方法。 注意:不能修饰类(外部类)。
我们可以通过以下表来说明访问权限:
| 修饰符 | 当前类 | 同一包内 | 子孙类 (同一包) | 子孙类 (不同包) | 其他包 |
|---|---|---|---|---|---|
| public | Y | Y | Y | Y | Y |
| protected | Y | Y | Y | Y/N | N |
| default | Y | Y | Y | N | N |
| private | Y | N | N | N | N |
(一)类的访问修饰符
类只能用 default 和 public 修饰。


default 也叫 package-private,意思是只对包内可见
(二)方法的访问修饰符
public:所有地方都能调用
protected:同一个包的类可以调用。不同包的类,只有继承才可以调用
default:包内可以调用
private:类内部可以调用
比如说把一个项目比做一个公司,包比作一个部门。public 就相当于所有人都能看。private 相当于你自己能看。default 表示只有部门内能看。protected 表示同一个部门能看,不同的部门,只有下级才能看。
