web-dev-qa-db-ja.com

Javaのクラス内のプライベート列挙型の場所

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;
    }
}

最も使用されているのはどれですか?これには慣例がありますか?

18
miviclin

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

ただし、簡単に言えば、投稿したもののようなプライベート列挙型(フィールドのように感じる)の場合は、#1を使用します。

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

17

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

0
Noris

慣例はありませんが、私が見たところ、例1がより頻繁に使用されています。私も個人的にそのように配置しています。

0
Troubleshoot

Javaにはtypedefステートメントがありません(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);
    }
}

私はチェックし、両方の方法method1およびmethod2enumTestにアクセスできます。

0
Rupesh