반응형
열거형(enum)은 여러 상수들을 보다 편리하게 선언할 수 있도록 만들어진 자바의 문법요소이며
서로 연관된 상수들의 집합을 의미합니다.
enum Animals { DOG, CAT, TIGER, MONKEY }
public static final vs enum
enum을 사용하면 final 문제들을 모두 효과적으로 해결할 수 있을 뿐 아니라 코드를 단순하고 가독성이 좋게 만들 수 있다는 장점이 있고 enum으로 정의한 상수는 switch문에서도 사용이 가능합니다.
final 이 switch 문에 사용이 불가능한 이유는 사용자 정의 타입을 활용해야 하는데
switch문의 조건은 char, byte, short, int, Character, Byte, Short, Integer, String, enum 타입만 가능하기 때문입니다.
enum Animals { DOG, CAT, TIGER, MONKEY }
public class Main {
public static void main(String[] args) {
Animals animals = Animals.Cat;
switch (animals) {
case DOG:
System.out.println("개");
break;
case CAT:
System.out.println("고양이");
break;
case TIGER:
System.out.println("호랑이");
break;
case MONKEY:
System.out.println("원숭이");
break;
}
}
}
//출력
고양이
리턴 타입메소드(매개변수)설명
String | name() | 열거 객체가 가지고 있는 문자열을 리턴하며, 리턴되는 문자열은 열거타입을 정의할 때 사용한 상수 이름과 동일하다. |
int | ordinal() | 열거 객체의 순번(0부터 시작)을 리턴한다. |
int | compareTo(비교값) | 매개값과 비교해서 순번 차이를 리턴한다. |
열거 타입 | valueOf(String name) | 문자열의 열거 객체를 리턴한다. |
열거 배열 | values() | 모든 열거 객체들을 배열로 리턴한다. |
enum Animals {
MONKEY,
DOG,
CAT
}
public class CordJg{
public static void main(String[] args) {
Animals animals = Animals.CAT;
Animals[] setAnimals = Animals.values();
for(Animals a : setAnimals)
{
System.out.printf("%s = %d %n", a.name(), a.ordinal());
}
Animals dogNum1 = Animals.DOG;
Animals dogNum = Animals.valueOf("DOG");
System.out.println(dogNum1);
System.out.println(dogNum);
System.out.println(Animals.MONKEY == Animals.valueOf("MONKEY"));
System.out.println(dogNum.compareTo(Animals.CAT));
switch(animals) {
case MONKEY:
System.out.println("원숭이");
break;
case DOG:
System.out.println("개");
break;
case CAT:
System.out.println("고양이");
break;
}
}
}
//출력
MONKEY = 0
DOG = 1
CAT = 2
DOG
DOG
true
-1
고양이
위의 코드는 리턴 타입 메서드들을 사용해본 코드이다.
메서드들마다 어떻게 상요되는지 살펴보고 출력이 각각 어떻게 나오는지 확인하자!
반응형
'Java > Java' 카테고리의 다른 글
Java 컬렉션 프레임워크 Map(HashMap) #로그인 코드 만들기 (0) | 2023.01.14 |
---|---|
Java 컬렉션 프레임워크_ Set(TreeSet) (0) | 2023.01.14 |
Java 컬렉션 프레임워크 _ Set(HashSet) (0) | 2023.01.14 |
Java 컬렉션 프레임워크 Iterator (0) | 2023.01.14 |
Java 컬렉션 프레임워크_List_ArrayList (Collection framework) (0) | 2023.01.14 |