java | February 12, 2022
Java의 enums는 C/C++의 enums보다 강력하다.
Java에서는 variables, methods, constructors를 추가할 수 있다.
Enum 내부의 첫 줄은 constants 목록이어야 하고, 그 다음에 methods, variables, constructors 등이 온다.
// Enum declaration outside a class
enum Color {
RED,
GREEN,
BLUE;
}
public class Test {
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
}
}
>> RED
// Enum declaration inside a class
public class Test {
enum Color {
RED,
GREEN,
BLUE;
}
public static void main(String[] args)
{
Color c1 = Color.RED;
System.out.println(c1);
}
}
>> RED
모든 Enum은 내부적으로 Class를 사용하여 구현된다.
모든 enum constant는 type enum의 object를 나타낸다.
// internally above enum Color is converted to
class Color
{
public static final Color RED = new Color();
public static final Color BLUE = new Color();
public static final Color GREEN = new Color();
}
모든 enum constant는 항상 암시적으로 public static final이다.
static이므로 enum name을 사용해서 access 할 수 있고, final이므로 child enums를 생성할 수 없다.
Enum 내부에 main()
method를 선언할 수 있다.
즉, Command Prompt에서 직접 enum을 호출할 수 있다.
모든 enums은 암시적으로 java.lang.Enum
class를 extend 한다.
Java에서는 하나의 class가 오직 하나의 parent만 extend 할 수 있으므로, enum은 그 외에 다른 것을 extend 할 수 없다.
toString()
method는 enum constant name을 반환하도록 java.lang.Enum
class에서 재정의된다.