6.11 修饰符的适用范围
6.10 修饰符的适用范围
表6.3 Java
修饰符适用范围总表
在表6.3中,包访问控制符是一个特殊的修饰符,不用任何访问控制符的就是包访问控制。
对于初始化块
和局部成员
而言,它们不能使用任何访问控制符,所以看起来像是
使用了包访问控制符。
strictfp
关键字
strictfp
关键字的含义是FP-strict
,也就是精确浮点的意思。在Java
虚拟机进行浮点运算时,如果没有指定strictfp
关键字,Java
的编译器和运行时环境在浮点运算上不一定令人满意。一旦使用了strictfp
来饰类、接口或者方法时,那么在所修饰的范围内Java
的编译器和运行时环境会完全依照浮点规范正IEEE-754
来执行。因此,如果想让浮点运算更加精确,就可以使用strictfp
关键字来修饰类、接口和方法。
native关键字
native
关键字主要用于修饰一个方法,使用native
修饰的方法类似于一个抽象方法。与抽象方法不同的是, native
方法通常采用C语言来实现。如果某个方法需要利用平台相关特性,或者访问系统硬件等,则可以使用native
修饰该方法,再把该方法交给C语言去实现。一旦Java
程序中包含了native
方法,这个程序将失去跨平台的功能。
4个访问控制符只能出现其中之一
在表6.3列出的所有修饰符中,4个访问控制符是互斥的,最多只能出现其中之一。
不能和abstract同时使用的修饰符
不仅如此,还有abstract
和final
永远不能同时使用;abstract
和static
不能同时修饰方法
,可以同时修饰内部类
;abstract
和private
不能同时修饰方法
,可以同时修饰内部类
。private
和final
同时修饰方法
虽然语法是合法的,但没有太大的意义,由于private
修饰的方法不可能被子类重写,因此使用final
修饰没什么意义。