簡體   English   中英

類屬性聲明,屬性屬性的順序(final,private,static,type)

[英]class attributes declaration, order of the attributes' properties (final, private, static, type)

我正在嘗試查找有關訂購類屬性屬性的最佳方法的文檔,例如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

語言規范只說修飾符必須在類型之前 ,因此int是最后的。 修飾符包括類型參數,注釋,訪問修飾符(私有,受保護,公共), staticfinalsynchronizedstrictfpvolatiletransient ,它們(來自“允許編譯器的內容”)可以按任何順序出現。

前幾天我做了谷歌搜索, static finalfinal static更頻繁,所以這有助於命令他們:-)

我認為通常這種修飾符的順序是最常見的:

  1. 注釋
  2. 類型參數
  3. 訪問修飾符
  4. static
  5. final
  6. transient (僅適用於字段)
  7. volatile (僅適用於變量)
  8. synchronized (僅適用於方法)

我從來沒有使用strictfpnative ,但我想我會把它們synchronized

您可以將默認順序作為Java語言規范中顯示的順序。 http://java.sun.com/docs/books/jvms/second_edition/html/Concepts.doc.html#29882

當我關心時,我按照checkstyle的ModifierOrder檢查順序[1](引用鏈接頁面):

檢查修飾符的順序是否符合Java語言規范第8.1.1,8.3.1和8.4.3節中的建議。 正確的順序是:

  1. 上市
  2. 保護
  3. 私人的
  4. 抽象
  5. 靜態的
  6. 最后
  7. 短暫的
  8. 揮發物
  9. 同步
  10. 本地人
  11. strictfp

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

回答了你自己的問題:

private / protected / public,static,final,type

字段(類,方法)修飾符的順序無關緊要。 當我們查看方法簽名時,它們只是標志。

因此,如果您想使用固定訂單,則只是為了便於閱讀。 如果您始終在編譯單元中使用相同的順序,那么您的代碼看起來會更好。

但同樣,順序對字節代碼沒有影響。 忘記微優化;)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM