枚举在类范围之外声明

Alb*_*gni 12 java enums

我参加了这次面试,获得了一个软件开发人员的职位,他们给了我一些角落案例代码情况的测试,通常有4个选项可供选择.
其中一个问题在课堂范围之外宣布了一个枚举,我及时检查了"不编译"的答案并继续处理其他问题.它是这样的:

enum Colors {BLUE,RED,GREEN}

class Test {
    //other code, not really important with my question
}
Run Code Online (Sandbox Code Playgroud)

这段代码实际编译.
除了这样的采访(可能或)可能没有用,以确定一个人是否是一个好的开发人员,让我担心的是:为什么我会宣布这样的枚举?为什么我只能用enum做这个?我做了一些测试,发现它在课堂内是可见的,但不是其他课程.

旁注:我得分很差:P.我在理论上获得了最大值,但在角落情况代码情况下接近最低可能性.我认为我不会得到这份工作.

new*_*cct 10

这不仅仅是枚举.枚举只是特殊类.通常,您可以在一个文件中声明多个类(只要其中没有两个是公共的).


Bar*_*ers 6

不,没有访问修饰符,枚举是包私有的.这意味着它只能由同一包中的类使用.而且你不仅可以使用枚举来实现这一点,也可以将类设置为私有.

更多信息:http://java.sun.com/docs/books/tutorial/java/javaOO/accesscontrol.html