您的位置 首页 java

Java访问权限控制,你知道多少?

面向对象的核心之一就是封装,只有把有限的方法和成员公开给别人,这也是迪米特法则的内在要求,是使外部调用方法对方法体内的实现细节知道的尽可能少。如何实现封装呢?需要使用某些关键字来限制类外部对类内属性和方法的随意访问,这些关键字就是访问权限控制符。

Java 中访问权限包括四个地那估计,权限控制严格程度由低到高,如下表

访问权限控制符

任何地方

包外子类

包内

类内

public

OK

OK

OK

OK

protected

NO

OK

OK

OK

默认

NO

NO

OK

OK

private

NO

NO

NO

OK

  • public : 可以修饰外部类、属性、方法,表示公开的、无限制的,是访问限制最松的,被其修饰的类、属性和方法不仅可以被包内访问,还可以跨类、跨包访问,甚至允许跨工程访问。
  • protected : 只能修改属性和方法,表示受保护的、有限制的,被其修饰的属性 和方法能被包内及包外子类访问。即使并非继承关系, protected 属性和方法在同一包内也是可见的。
  • 无:即无任何访问权限修饰符,无访问权限控制符仅对包内可见。
  • private : 只能修饰属性、方法、内部类。表示私有的,是访问权限最严格的,被其修饰的属性和方法只能在该类内部访问,子类和包内君不能访问,更不允许跨包访问。

使用规则

  1. 如果不允许外部直接通过new创建对象,构造方法必须是private
  2. 工具类不允许有public 或 default构造方法
  3. 类非static成员变量并且 与子类共享,必须是protected
  4. 类非static 成员变量并且仅在本类使用,必须private
  5. 类static成员变量如果仅在本类 使用,必须是private
  6. 若是static成员变量,必须考虑是否为 final类 成员方法只供类内部使用,必须为private
  7. 类成员方方法只对继承类公开,那么限制为protected

文章来源:智云一二三科技

文章标题:Java访问权限控制,你知道多少?

文章地址:https://www.zhihuclub.com/185934.shtml

关于作者: 智云科技

热门文章

网站地图