174

私はそれが次のようなコードを宣言したコードを見つけました

private final static String API_RTN_SUCCESS = "0";
private final static String API_RTN_ERROR = "1";

public static final String SHARED_PREFERENCE_CONFIG = "shared_preference_config";
public static final String STARTUP_SETTING_KEY = "startup_setting";

それらの違いは何ですか、それとも同じですか?またはそれはまたはのために異なりますprivatepublic

4

8 に答える 8

252

まったく違いはありません。Java 言語仕様の 8.3.1 - Classes - Field Modifiers によると 、

2 つ以上の (異なる) フィールド修飾子がフィールド宣言に現れる場合、必須ではありませんが、FieldModifier の生成で上記に示した順序と一致する順序で現れるのが慣例です。

フィールドの場合、前述のプロダクションは次の順序で修飾子をリストします。

@Annotation public protected private static final transient volatile

メソッドの場合:

@Annotation public protected private abstract static final synchronized native strictfp

于 2012-06-27T04:49:42.017 に答える
50

それらは同じです。修飾子の順序は重要ではありません。また、Java で修飾子が使用されるすべてのコンテキストで同じ規則が適用されることに注意してください。

ただし、ほとんどの Java スタイル ガイドでは、修飾子に対して同じ特定の順序を推奨/義務付けています。この場合は ですpublic static final

于 2012-06-27T04:50:34.733 に答える
20
private static final String API_RTN_ERROR= "1";
private final static String API_RTN_ERROR= "1";
static private final String API_RTN_ERROR= "1";
static final private String API_RTN_ERROR= "1";
final static private String API_RTN_ERROR= "1";
final private static String API_RTN_ERROR= "1";

上記のすべてが同じであっても、最初の 3 つの位置は交換可能です。

于 2012-06-27T05:31:17.147 に答える
9

彼らは同じです、

private final static String API_RTN_ERROR = "1";

private static final String API_RTN_ERROR= "1";
于 2012-06-27T04:46:46.247 に答える
4

それらの違いは何ですか、それとも同じですか?

static と final の順序を変更することについて話している場合、はい、それらは同じです。

私立と公立で違うの?

いいえ、プライベートでもパブリックでも任意の順序で使用できます。唯一の違いは、プライベート変数がクラス外で直接アクセスできないことです。

于 2012-06-27T04:54:34.450 に答える
1

これは、コーディング スタイルの一貫性を維持するために人々が従う慣習または慣習にすぎません。可読性が向上します。これを書く好ましい方法は

private static final <Type> <variable_name> = <value>;
于 2020-05-14T07:08:38.480 に答える