19

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

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

4

4 回答 4

22

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

但是,简而言之,像您发布的私有枚举(感觉更像字段),我会选择#1。

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

于 2013-10-12T19:21:13.647 回答
0

它没有使用任何约定,但据我所知,示例 1 的使用频率更高。我个人也以这种方式放置它们。

于 2013-10-12T19:16:45.060 回答
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);
    }
}

我已经检查了这两种方法method1并且method2可以访问enumTest.

于 2013-10-12T19:18:42.020 回答
0

他们中的任何一个都没有错。这更像是一个意见问题,但我会去#1。

于 2015-04-22T09:46:04.643 回答