enum 타입은 클래스와 같이 독립된 단위로 정의 할 수 있다.
1)내부 클래스와 같이 클래스 내에서 하나의 타입으로 정의한다.
public class Man {
public enum GenType{ Man,,Woman};
}
2)독립된 타입으로 정의 할 수 있다.
public enum GenType{
Man,Woman
}
GenType gt=GenType.Man;
GenTpe gt2=GenType.Woman;
package com.java.datastruct04.enum_;
//enum 선언 1.클래스 밖에 선언 2.클래스 안에 선언 가능
//상수(정보)들을 범위제한 해서 사용하고 싶을때
// 1.클래스 밖에 선언
//enum Season{
// SPRING,SUMMER,FALL,WINTER
//}
public class Enum01 {
//2.클래스 안에 선언
enum Season{
SPRING,SUMMER,FALL,WINTER
}
public static void main(String[] args) {
// Enum(열거형)객체: 여러개의 상수를 모아 관리 하기 위한 객체 이다.
//변수는 값은 지정할 수 있는데 특정 범위를 지정할 수는 없다.
//1.객체 생성:new 연산자를 사용하지 않고, 타입명,속성명으로 객체를 호출하여 사용한다.
//Season s = Season.SPRING;
//System.out.println(s);
//2.타입.속성명으로 호출하여 static과 같은 특징으로 사용가능하다.
System.out.println("내가 제일 좋아하는 계절은 :"+Season.SPRING);
System.out.println("내가 제일 좋아하는 계절은 :"+Season.FALL);
System.out.println("내가 제일 좋아하는 계절은 :"+Season.SUMMER);
System.out.println("내가 제일 좋아하는 계절은 :"+Season.WINTER);
for(Season se :Season.values())
System.out.println(se);
//3.관련메서드 valueof
Season se1 = Season.valueOf("FALL"); //매개변수의 문자열과 동일한 열거행 객체를 리턴한다.
System.out.println(se1);
}
}
사용 예1)
package com.java.datastruct04.enum_;
//일반적으로 클래스에서 상수를 표현해서 데이터를 표현 하려면,아래와 같이 상수를 선언해야 한다.
//public class Day {
// public static final String SUN="SUN";
// public static final String SUN="MON";
// public static final String TUE="TUE";
// public static final String WEN="WEN";
// public static final String THU="THU";
// public static final String FRI="FRI";
// public static final String SAT="SAT";
//
//}
//훨씬 간편하게 코드를 작성할 수 있다.
public enum Day {
// 0 1 2 3 4 5 6
SUN,MON,TUE,WEN,THU,FRI,SAT
}
package com.java.datastruct04.enum_;
public class Enum02 {
public static void main(String[] args) {
// Enum >상수에 접근
System.out.println(Day.MON);
System.out.println(Day.MON.ordinal()); // 순서를 가져올 수 있다. 0번 부터 시작
for (Day d : Day.values())
System.out.println(" " + d);
// switch 구문
Day d = Day.SAT;
switch (d) {
case SAT:
System.out.println("즐거운 토요일 입니다.");
break;
case MON:
System.out.println("피곤한 날입니다.");
break;
default:
System.out.println("오늘 하루도 화이팅 !!!");
}
}
}
사용 예2)