类属性声明,属性属性的顺序(final,private,static,type)

时间:2011-02-18 12:14:49

标签: java class properties

我正在尝试查找有关订购类属性属性的最佳方法的文档,例如private / protected / public,final,static,type。

我会发一个例子来看看我的意思。

class A {

  public final static int FOO = 3;

  final public static int FOO = 3;

}

好的,我假设attrbiute类型(int,String,char)在属性名称之前。

我真正怀疑的是当我尝试定位静态,最终和v

5 个答案:

答案 0 :(得分:7)

语言规范只说修饰符必须在类型之前,因此int最后。 修饰符包括类型参数,注释,访问修饰符(私有,受保护,公共),staticfinalsynchronizedstrictfpvolatile,{{1它们(来自“允许编译器的东西”)可以按任何顺序出现。

前几天我进行了谷歌搜索,transientstatic final更频繁,所以这有助于订购: - )

我认为通常这种修饰符的顺序是最常见的:

  1. 注解
  2. 类型参数
  3. 访问修饰符
  4. final static
  5. static
  6. final(仅适用于字段)
  7. transient(仅适用于变量)
  8. volatile(仅适用于方法)
  9. 我从未使用synchronizedstrictfp,但我认为我会把它们放在native附近。

答案 1 :(得分:2)

您可以将默认顺序作为Java语言规范中出现的顺序。 http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#29882

答案 2 :(得分:1)

当我关心时,我按照checkstyle的ModifierOrder检查顺序[1](引用链接页面):

  

检查修饰符的顺序是否符合中的建议   Java语言规范,第8.1.1,8.3.1和8.4.3节。该   正确的顺序是:

     
      
  1. 公共
  2.   
  3. 保护
  4.   
  5. 私有
  6.   
  7. 抽象
  8.   
  9. 静态
  10.   
  11. 最终
  12.   
  13. 瞬态
  14.   
  15. 易失性
  16.   
  17. 同步
  18.   
  19. 天然
  20.   
  21. strictfp
  22.   

[1] http://checkstyle.sourceforge.net/config_modifier.html

答案 3 :(得分:0)

回答了你自己的问题:

private / protected / public,static,final,type

答案 4 :(得分:0)

字段(类,方法)修饰符的顺序无关紧要。当我们查看方法签名时,它们只是标志。

因此,如果您想使用固定订单,则只是为了便于阅读。如果你总是在编译单元中使用相同的顺序,那么你的代码看起来会更好。

但同样,顺序对字节代码没有影响。忘记微优化;)