Java修饰符之访问控制修饰符

面向对象的基本思想之一是分装实现细节并且公开接口。Java语言采用访问控制修饰符来控制类,以及类的方法和变量的访问权限,从而向使用者暴露接口,隐藏内部细节。

Java访问控制修饰符分四种级别:

  • 公开级别:用public修饰对外公开
  • 受保护级别: 用protected修饰,向子类或同一包中的类公开
  • 默认级别:没有访问控制修饰符,向同一个包中的类公开
  • 私有级别: 用private修饰,只有类本身可以访问,不对外公开

四种访问级别的可访问范围:

访问级别 访问控制修饰符 同类 同包 子类 不同的包
公开 public
受保护 protected -
默认 无访问控制修饰符 - -
私有 private - - -

顶层类只可以处于公开或默认访问级别,因此顶层类不能用private和protected来修饰。

访问级别仅仅使用于类和类的成员,包括类的成员变量、成员方法和构造方法,而不适用于局部变量,局部变量只能在方法内部被访问。

未命名文件 (1).png

如上图所示ClassA和ClassB位于同一包中,ClassC和ClassD位于另一个包中,并且ClassC是ClassA的子类。ClassA中有四个不同访问级别的变量。

则在ClassA中可以访问a、b、c和d四个变量。
在ClassB中可以访问a、b和c三个变量。
在ClassC中可以访问a和b两个变量。
在ClassD中可以访问a一个变量。

你可能感兴趣的:(Java修饰符之访问控制修饰符)