访问控制符、修饰符总表

访问控制符、修饰符总表

外部类/接口 成员属性 方法 构造器 初始化块 成员内部类 局部成员
访问控制符 -------- -------- -------- -------- -------- -------- --------
public
protected
包访问控制符(默认)
private
修饰符 -------- -------- -------- -------- -------- -------- --------
abstract
final
static
strictfp
synchronized
native
transient
volatile
default

说明:

  • strictfp关键字的含义是FP-strict,也就是精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定strictfp关键字,Java编译器和运行时环境在浮点运算上不一定令人满意。一旦使用strictfp修饰类、接口和方法,那么在所修饰的范围内,Java编译器和运行时环境会完全按照浮点规范IEEE-754来执行,浮点运算更精确。
  • native关键字主要用来修饰方法,使用native修饰的方法类似于一个抽象方法。与抽象方法不同的是,native方法通常采用C语言来实现。如果某个方法需要利用平台相关特性,或者访问系统硬件等,则可以使用native修饰该方法,再把该方法交给C去实现。一旦Java程序中包含了native方法,这个程序就会失去跨平台的特性。

注意:

  • 初始化块和局部成员不能使用任何的访问控制符。
  • 4个访问控制符是互斥的,最多只能出现其中之一。
  • abstract 和 final 永远不能同时使用。
  • abstract 和 static 不能同时修饰方法(子类无法实现它),可以同时修饰内部类(可以通过匿名内部类或者Lambda表达式实现它)。
  • abstract 和 private 不能同时修饰方法(子类无法实现它),可以同时修饰内部类(可以通过匿名内部类或者Lambda表达式实现它)。
  • private 和 final 虽然可以同时修饰方法,但没有意义,private修饰的方法本来就不能被子类重写。

猜你喜欢

转载自www.cnblogs.com/woshi123/p/12483494.html