前言
- Java中的访问修饰符有:public > protected > private
- public > protected > private 这些修饰符可以修饰类中的域和方法(必须加载最前)
- 如果不提供任意的修饰符,则意味着它是“包访问权限”
- 对 class类的访问修饰只有 public 和 不写(默认包访问权限)内部类除外(内部类可以是private或者protected的)
包访问权限
- 对类,对域,对方法 不加任何的权限修饰符,默认就是包访问权限
- 包访问权限,意味着在当前的包下,所有的类均有权限访问这个“包访问权限”的域或者方法;别的包的文件没有权限访问。
public 公开访问权限
- public 声明的域,类,方法,对外是可见的,不仅仅局限在同一个包下,是公开的。
private 私有访问权限
- 只有在本类的范围内可以进行访问,出了这个类,就没有权限进行访问了。
- 不可以用来修饰类,只能修饰域和方法。
- private的用法非常关键,尤其是在多线程下,有时为了控制创建对象的行为,可以将构造器的修饰符设为private,这样就可以阻止通过new来创建对象了。
protected 继承访问权限
- 指的是不光同一个包下拥有访问权限,继承该类的子类即使不在同一个包下,也会有访问的权限!
总结一下访问修饰词控制的粒度
- 可访问的权限范围从大到小依次是:
- public > protected > (不写、默认包访问权限)> private