반응형
- 열거 타입
- 열거타입(enumeration type) : 한정된 값만 갖는 데이터 타입
- 열거상수(enumeration constant) : 열거 타입에 저장되는 상수
- 열거 타입 선언
- 열거 타입의 이름
- 첫 문자 대문자 나머지 소문자
- 여러 단어로 구성된 이름 카멜케이스
- 열거 타입 이름과 소스 파일명 이름은 동일해야함
- 열거 상수의 선언
- 열거 상수는 모두 대문자로 작성
public enum Week { MONDAY, TUESDAY, WEDNESDAY, THURSDAY ... }
- 여러단어로 구성될 경우 밑줄(_)로 구분
public enum LoginResult { LOGIN_SUCCESS, LOGIN_FAILED}
- Calendar 클래스 사용
public class CalendarExam {
public static void main(String[] args) {
// new 연산자로 객체생성 불가 - 만들어진거 가져다 써야함
Calendar now = Calendar.getInstance();
int year = now.get(Calendar.YEAR);
int month = now.get(Calendar.MONTH) + 1;
System.out.println(year + "년");
System.out.println(month + "월");
}
}
값
2022년
10월
- 열거 객체의 메소드
- String name() - 열거객체의 문자열 리턴
- int ordinal() - 열거객체의 순번 리턴
- int compareTo(E o) - 열거객체의 순번의 차 리턴
- T valueOf(String name) - 전달된 문자열의 열거 객체 리턴
- T[] values() - 모든 열거객체를 배열로 리턴
1. String name()
public static void main(String[] args) {
Week week = Week.SUNDAY;
// name() 이름
String weekName = week.name();
System.out.println(weekName); // name메소드 사용
System.out.println(week); // 그냥 출력
}
}
2. int ordinal()
public static void main(String[] args) {
Week week = Week.SUNDAY;
// ordinal() 순번
int weekOrdi = week.ordinal();
System.out.println(weekOrdi);// SUNDAY의 순번
System.out.println(Week.FRIDAY.ordinal()); // FRIDAY의 순번 5
}
}
3. int compareTo()
매개값이 기준
public static void main(String[] args) {
// compareTo() 열거 객체 비교
Week day1 = Week.MONDAY; // 1
Week day2 = Week.WEDNESDAY; // 3
// 상대적 위치 (인수 기준: day1은 day2 기준 어디에 위치하는가)
int pos1 = day1.compareTo(day2); // day1 순번(1) - day2 순번(3) = -2
int pos2 = day2.compareTo(day1); // day1 순번(3) - day2 순번(1) = 2
System.out.println(pos1); // -2
System.out.println(pos2); // 2
}
}
4. values()
public class EnumMethodExample {
public static void main(String[] args) {
Week[] weeks = Week.values();
System.out.println(weeks.length);
System.out.println(Arrays.toString(weeks));
}
}
값
7
[SUNDAY, MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY]
5. valueOf()
public class EnumMethodExample2 {
public static void main(String[] args) {
Week day1 = Week.valueOf("SUNDAY");
System.out.println(day1);
// 대소문자 구분, 없으면 예외발생
// Week day2 = Week.valueOf("Sunday");
// System.out.println(day2);
}
}
값
SUNDAY
예외 ( java.lang.IllegalArgumentException )
반응형
'학습 > JAVA' 카테고리의 다른 글
6. 클래스(메소드, 인스턴스 멤버와 this) (0) | 2022.10.06 |
---|---|
6. 클래스(생성자) (0) | 2022.10.05 |
5. 참조 타입 (0) | 2022.10.04 |
4. 반복문(for문, while문, do-while문 (0) | 2022.09.30 |
4. 조건문(if문, switch문) (0) | 2022.09.29 |
댓글