열거형 (enum)
상수를 가지고 생성되는 객체들을 한 곳에 모아둔 하나의 묶음이다.
변수를 사용자가 지정한 이름으로 0부터 순차적으로 증가시켜준다.
여기서 사용되는 주요 함수로
String name() 열거 객체의 문자열을 리턴
int ordinal() 열거 객체의 순번(0부터 시작)을 리턴
int compareTo() 열거 객체를 비교해서 순번 차이를 리턴
열거 타입 valueOf(String name) 주어진 문자열의 열거 객체를 리턴
열거 배열 values() 모든 열거 객체들을 배열로 리턴
1. 열거형으로 선언된 순서에 따라 0부터 index 값을 가진다. (순차적으로 증가)
2. enum 열거형으로 지정된 상수들은 모두 대문자로 선언한다.
3. 열거형 변수들을 선언한 후 마지막에 세미콜론(;)을 찍지 않아도 된다.
4. 상수와 특정 값을 연결시킬경우 마지막에 세미콜론(;)을 붙여줘야한다.
import java.util.Scanner;
public class ex2 {
public enum Item { // 열거형 클래스 선언
Start, Pause,Exit // ; 안찍어도 오류가 아니다.
}
public static void main(String[] args) {
while(true) {
System.out.println("0 : Game Start");
System.out.println("1 : Game Pause");
System.out.println("2 : Game Exit");
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
Item Start = Item.Start; // enum 객체 생성
Item pause = Item.Pause;
Item Exit = Item.Exit;
if (n==Start.ordinal()) { // ordinal() 사용
System.out.println("Game starting...");
} else if (n==pause.ordinal()) {
System.out.println("Game interrupted...");
} else {
System.out.println("Game over");
}
}
}
}
class df{
public enum Company {
SK("에스케이"),
LG("엘쥐"),
KT("케이티"),
SAMSUNG("삼성"),
APPLE("애플");
private final String value;
Company(String value){
this.value = value;
}
public String getValue(){
return value;
}
}
public static void main(String[] args) {
Company a = Company.SK;
System.out.println(a.SK.getValue());
}
}
enum Mobile { // enum class declaration
Samsung(400), Nokia(250), Motorola(325); // member constant
int price;
Mobile (int p) { // member method definition1
price = p;
}
int showPrice() { // member method definition2
return price;
}
}
public class ex2 {
public static void main(String[] args) {
System.out.println("Cellular Phone List : ");
for(Mobile m : Mobile.values()) { // for 문에서 상수 변수들을 돌릴 때, 사용
System.out.println(m + "costs " + m.showPrice() + " dollars, sir/mam");
}
Mobile rate;
rate = Mobile.valueOf("Samsung");
System.out.println("Selected : " + rate);
}
}
JAVA 접근제어자 개념 정리, Static (0) | 2022.07.29 |
---|---|
JAVA 내부 클래스 (0) | 2022.07.29 |
JAVA Interface 인터페이스 (0) | 2022.07.29 |
JAVA 추상 메서드와 클래스 Abstract method, class (0) | 2022.07.28 |
JAVA Generics Class Method 제네릭 클래스 메서드, 배열 Array (0) | 2022.07.28 |