JAVA 中的修饰符的适用范围

到目前为止,已经学习了Java中的大部分修饰符,如访问控制符、static和 final 等。还有其他的一些修饰符,此处给出Java修饰符适用范围总表(见表6.3)

 

在表 6.3中 ,包访问控制符是一个特殊的修饰符,不用任何访问控制符的就是包访问控制。对于初始化块和局部成员而言,它们不能使用任何访问控制符,所以看起来像使用了包访问控制符。

strictfp 关键字的含义是 FP-strict ,也就是精确浮点的意思。在Java虚拟机进行浮点运算时,如果没有指定  strictfp 关键字,Java的编译器和运行时环境在浮点运算上不一定令人满意。一旦使用了 strictfp 来修饰类、接口或者方法时,那么在所修饰的范围内 Java 的编译器和运行时环境会完全依照浮点规范 IEEE-754 来执行。因此,如果想让浮点运算更加精确,就可以使用 strictfp 关键字来修饰类、接口和方法。

native关键字主要用于修饰一个方法,使用 native修饰的方法类似于一个抽象方法。与抽象方法不同的是,native方法通常采用C语言来实现。如果某个方法需要利用平台相关特性,或者访问系统硬件等,则可以使用 native 修饰该方法,再把该方法交给C去实现。一旦Java程序中包含了 native 方法,这个程序将失去跨平台的功能。

在表 6.3 列出的所有修饰符中,4个访问控制符是互斥的,最多只能出现其中之一。不仅如此,还有 :

  • abstract 和 final永远不能同时使用
  • abstract 和 static 不能同时修饰方法,可以同时修饰内部类
  • abstract和 private不能同时修饰方法,可以同时修饰内部类。
  • private 和 final 同时修饰方法虽然语法是合法的但没有太大的意义——由于 private修饰的方法不可能被子类重写,因此使用 final修饰没什么意义。

猜你喜欢

转载自blog.csdn.net/qq_40794973/article/details/87889851