访问修饰符理解为权限控制 用来限定作用域的
访问控制
修饰符 | 当前类 | 同一包中 | 子孙类(同一包) | 子孙类(不同包) | 其他包 |
---|---|---|---|---|---|
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
的字段和方法可以被子类访问 以及子类的子类