Java修飾子の合理的な順序は何ですか?
- 概要
- 最後の
- ネイティブ
- 民間
- 保護された
- 公衆
- 静的
- strictfp
- 同期
- 一時的な
- 揮発性
更新
順序が推奨されているかどうかにかかわらず、ディスカッションを落ち着かせるように、表現を推奨から妥当に変更しました。
Java修飾子の合理的な順序は何ですか?
更新
順序が推奨されているかどうかにかかわらず、ディスカッションを落ち着かせるように、表現を推奨から妥当に変更しました。
回答:
修飾子の通常の使用順序は、Java言語仕様(Java仮想マシン仕様ではなく)に記載されています。たとえば、クラス修飾子の場合、次の定義(抽出)があります。
ClassModifiers: ClassModifier ClassModifiers ClassModifier ClassModifier: one of Annotation public protected private abstract static final strictfp[....]
2つ以上の(異なる)クラス修飾子がクラス宣言に含まれている場合は、必須ではありませんが、ClassModifierの生成で上に示した順序と同じ順序で表示されるのが通例です。(段落の下部にある小さなテキスト!)
この文は、修飾子の使用法が指定されている他のいくつかの場所にあります。たとえば、ここではフィールド修飾子です。
更新:「指定/推奨」を「慣例」に置き換えて、これを受け入れられる回答にしました。コメントを読む場合は、これを考慮してください;-)(これを明確にするために@EJPに感謝します)-それにもかかわらず、私は慣習的な順序を使用することをお勧めします。
また、Java仕様に記載されている通常の順序を使用することをお勧めします。
public / protected / private
abstract
static
final
transient
volatile
synchronized
native
strictfp
更新:OpenJDKコミュニティのプロジェクトには、新しい「 Javaスタイルガイドライン」イニシアチブが導入されています。また、修飾子の順序に関する推奨事項があり、Java 8の新しいデフォルト修飾子も含まれています。
public / private / protected
abstract
static
final
transient
volatile
**default**
synchronized
native
strictfp
Java仮想マシン仕様の表4.4に従って順序を使用するのが妥当です。