19

Java のクラス内で列挙型を宣言するとき、次の 2 つのアプローチを見てきました。

1)

public class MyClass {

    private enum MyEnum {
        A, B, C;
    }

    /* Static fields */

    /* Instance variables */

    /* Methods */
}

2)

public class MyClass {

    /* Static fields */

    /* Instance variables */

    /* Methods */

    private enum MyEnum {
        A, B, C;
    }
}

どれが最も使用されていますか?これに関する規則はありますか?

4

4 に答える 4

22

通常、Java では、ネストされたデータ型 (クラス、列挙型など) はファイルの最後に配置されます。

ただし、投稿したような短いプライベート列挙型 (フィールドのように感じる) については、#1 を使用します。

より長い列挙型については、#2 を使用するか、別のファイルに入れます。

于 2013-10-12T19:21:13.647 に答える
0

どちらにも問題はありません。それは意見の問題ですが、私は#1に行きます。

于 2015-04-22T09:46:04.643 に答える
0

これに使用される規則はありませんが、私が見た限りでは、例 1 がより頻繁に使用されます。私も個人的にはそのように位置づけています。

于 2013-10-12T19:16:45.060 に答える
0

typedefJava には(C および C++ のように) ステートメントがありません。Java で新しい型を宣言するには、新しいクラスを宣言します。次に、変数をそのクラスの型として宣言できます。また、Java は前方参照を使用します。Javaコンパイラは、メソッドが定義される前にメソッドを呼び出すことができるという点で、C コンパイラよりもスマートです。これにより、C で行われているように、プログラム ファイルで定義する前にヘッダー ファイルで関数を宣言する必要がなくなります。

どこにでも配置でき、enumどこからでもアクセスできます。例を参照してください。

class CheckEnum{

    private void method1() {
        System.out.println(enumTest.test1);    
    }       
    private enum enumTest{
        test1
    }       
    private void method2() {
        System.out.println(enumTest.test1);
    }
}

私は両方の方法をチェックし、method1method2アクセスできますenumTest

于 2013-10-12T19:18:42.020 に答える