Java中类的私有枚举位置

时间:2013-10-12 19:10:40

标签: java enums inner-classes

在java中声明类中的枚举时,我已经看到了这两种方法:

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

哪一个最常用?这有什么约定吗?

3 个答案:

答案 0 :(得分:17)

通常在Java中,嵌套数据类型(例如类,枚举)位于文件的底部。

然而,简而言之,就像你发布的那个私人词汇(感觉更像是字段),我会选择#1。

对于较长的枚举,我要么使用#2,要么将它们放在一个单独的文件中。

答案 1 :(得分:0)

没有使用任何惯例,但从我所看到的,更常使用示例1。我个人也以这种方式放置它们。

答案 2 :(得分:0)

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

我已经检查过,方法method1method2都可以访问enumTest