package enumtype;
enum Shoes {
WALKING("워킹화"), RUNNING("런닝화"), TRACKING("트래킹화"), HIKING("등산화");
}
public class Quiz01 {
public static void main(String[] args) {
// field 에 저장된 값
System.out.println("<< 상수 출력 >>");
// 서수(정수)
System.out.println("\n<< 서수 출력 >>");
}
}
enum 은 상수를 관리하기 위한 타입 !
WALKING 을 만들지만 ! 위킹화로 출력하기 위해
매개변수 1개를 받는 생성자를 받아야한다
상수값이니까 변경하지 않기 위해 final 로 해준다
private final String name;
private Shoes(String name) {
this.name = name;
}
하지만 외부에서 사용하고 싶으니까 getter 사용 !
public String getName() {
return name;
}
그럼 생성자는 몇개 만들어졌을까 ? 4개 작성했으니 4개 ? 확인해보자
package enumtype;
enum Shoes {
WALKING("워킹화"), RUNNING("런닝화"), TRACKING("트래킹화"), HIKING("등산화");
private final String name;
private Shoes(String name) {
System.out.println("생성자 실행");
this.name = name;
}
public String getName() {
return name;
}
}
public class Quiz01 {
public static void main(String[] args) {
Shoes.values();
}
}
# 실행 결과
생성자 실행
생성자 실행
생성자 실행
생성자 실행
그럼 이제 main() 에서 출력해보자
public class Quiz01 {
public static void main(String[] args) {
// field 에 저장된 값
System.out.println("<< 상수 출력 >>");
System.out.println(Shoes.WALKING);
}
}
# 실행 결과
<< 상수 출력 >>
WALKING
근데 우리는 WALKING 출력되는 걸 원하지 않고 워킹화 가 출력되게 하고 싶다
오버라이딩 해서 toString 해준다
package enumtype;
enum Shoes {
WALKING("워킹화"), RUNNING("런닝화"), TRACKING("트래킹화"), HIKING("등산화");
private final String name;
private Shoes(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public String toString() { // toString 을 안하면 s.getName 에서 s 만 해도 됨
return this.name;
}
}
public class Quiz01 {
public static void main(String[] args) {
// field 에 저장된 값
System.out.println("<< 상수 출력 >>");
System.out.println(Shoes.WALKING);
}
}
# 실행 결과
<< 상수 출력 >>
WALKING
이제 for문 으로 돌려서 출력해보자
public class Quiz01 {
public static void main(String[] args) {
// field 에 저장된 값
System.out.println("<< 상수 출력 >>");
for (Shoes s: Shoes.values()) {
System.out.println(s);
}
}
}
서수도 비슷하게 하면 된다
enum 은 순서가 자동으로 부여가 된다
ordinal !!! 사용 !!!
public class Quiz01 {
public static void main(String[] args) {
// 서수(정수)
System.out.println("\n<< 서수 출력 >>");
for (Shoes s: Shoes.values()) {
System.out.println(s.ordinal());
}
}
}
# 전체 코드
package enumtype;
enum Shoes {
WALKING("워킹화"), RUNNING("런닝화"), TRACKING("트래킹화"), HIKING("등산화");
private String name;
private Shoes(String name) {
this.name = name;
}
public String getName() {
return name;
}
@Override
public String toString() { // toString 을 안하면 s.getName 에서 s 만 해도 됨
return this.name;
}
}
public class Quiz01 {
public static void main(String[] args) {
// field 에 저장된 값
System.out.println("<< 상수 출력 >>");
for (Shoes s: Shoes.values()) {
System.out.println(s.getName());
}
// 서수(정수)
System.out.println("\n<< 서수 출력 >>");
for (Shoes s: Shoes.values()) {
System.out.println(s.ordinal());
}
}
}
# 실행 결과
<< 상수 출력 >>
워킹화
런닝화
트래킹화
등산화
<< 서수 출력 >>
0
1
2
3
'Language > JAVA' 카테고리의 다른 글
JAVA 간단한 프로그램 - 동물병원 프로그램 ver2.1 (1) | 2024.04.25 |
---|---|
JAVA 간단한 프로그램 - 동물병원 프로그램 ver1.1 (0) | 2024.04.25 |
JAVA 간단한 프로그램 - 동물병원 프로그램 ver2 (0) | 2024.04.24 |
JAVA 간단한 프로그램 - 동물병원 프로그램 ver1 (0) | 2024.04.24 |
JAVA Generic 제네릭 개념 & 문법 정리 (0) | 2024.04.23 |