Java修饰符/关键字的先后顺序

当某个对象的修饰符满足了上述的所有条件,那这些修饰符就可以合法存在并对这个对象起作用。不过之于多个修饰在申明顺序,Java编译器并没用做强制的规定。

比如想要定义一个公开的不加入到序列化的静态常量,下边在制定类中的定义方式都是有效的(即使说static和transient放在一起一般没什么意义):

public static final transient int zero = 0;
static transient public final int one = 1;
final public transient static int two = 2;
transient final static public  int three = 3;

但为了保持编写风格的一致性,以及代码的可读性,对于修饰符的申明顺序还是有要求的。其实前面Modifier提供的修饰符汇总方法就可以反映出修饰符的申明顺序。另外,在Java Language Specification的Classes一章里也对类修饰符、方法修饰符、字段修饰符的罗列顺序也就是通常申明时要遵循的顺序。

归总如下(这里将注解也包括进来)就是:

  • Annotation
  • public
  • protected
  • private
  • static
  • abstract
  • final
  • native
  • synchronized
  • transient
  • volatile
  • strictfp

这个顺序也不用记忆,虽然编译器不会对它们进行约束,但有很多Checkstyle工具都会帮助开发者设定代码风格限定条件,并对不符合条件的写法抛出错误指示。

转载于:https://my.oschina.net/chaleaoch/blog/1568138

你可能感兴趣的:(Java修饰符/关键字的先后顺序)