
Enum == 열거형
쉽게 말해서 서로 관련이 있는 상수들의 집합을 의미한다. 자바에서는 final한 상태를 의미하며, 클래스가 만약 상수로만 구성되있다면 class 대신 enum이라고 선언하여 해당 객체는 상수의 집합이다!
라고 나타낼 수 있는 것이다.
일단 왜 쓰는지?
뭐든 공부를 할때는 목적이 중요하다고 생각합니다. 내가 이걸 왜 배우는지, 언제 어디에 써먹을껀지 등.......
차근차근 코드들을 보면서 이해하고 사용해봅시다 :)
1. 간단하지만 뭔말인지? 하는 코드
int kindOf = 3;
public static final int cop = 1;
public static final int fireFighter = 2;
public static final int docter = 3;
public static final int teacher = 4;
public void findJob(){
switch(kindOf){
case 1 :
System.out.println("경찰관입니다");
break;
case 2 :
System.out.println("소방관입니다");
break;
case 3 :
System.out.println("의사입니다");
break;
case 4 :
System.out.println("선생님입니다");
break;
}
}
일단 이런식으로 짠다면 정말 현업에서 뚜까 맞을 수도 있습니다. 코드량이 적어서 현재 한눈에 보이지만 만약에 코드량이 많아지거나 복잡해진다면 처음 본 사람은 다음과 같이 생각할 수 있습니다.
"1이 뭐길레 경찰관이라는거지? kindOf는 또 무슨 변수야?...그러면 사육사 이런건 없나? 필드가 어딨지...언제 찾아보냐 ;;"
아무래도 필드는 상단에 몰려있기에 위아래로 드래그를 열심히 해야겠죠? ^^
2. 뭔가 개선이 됬는데 이게 최선인가? 하는 코드
int kindOf = 3;
public static final int cop = 1;
public static final int fireFighter = 2;
public static final int docter = 3;
public static final int teacher = 4;
public void findJob(){
switch(kindOf){
case cop :
System.out.println("경찰관입니다");
break;
case fireFighter :
System.out.println("소방관입니다");
break;
case docter :
System.out.println("의사입니다");
break;
case teacher :
System.out.println("선생님입니다");
break;
}
}
관계는 뭔가 이제 확실해 보입니다. 하지만 여전히 final한 변수들 여러개들을 관리하기는 힘들어 보입니다.
3. 휴 이제야 맘이 편하네;; 하는 코드
enum Job{
cop(), fireFighter(), docter(), teacher();
public void findJob(){
switch(Job.cop){
case cop :
System.out.println("경찰관입니다");
break;
case fireFighter :
System.out.println("소방관입니다");
break;
case docter :
System.out.println("의사입니다");
break;
case teacher :
System.out.println("선생님입니다");
break;
}
}
}
드디어 enum을 사용하여 상수들의 집합체 즉 "열거형"을 완성하여 활용했습니다. 다음과 같이 불필요한 코드수가 많이 줄었을 뿐더러, 처음보는 사람이더라도 코드의 연관관계를 파악하기 매우 쉬워졌습니다. 여기서 enum은 비슷한 종류(개념)들 끼리의 상수들을 모아둠으로써 한번에 처리하고 관리하는 측면에서 매우 편합니다. 또한 가독성이 올라가기에 유지보수 측면에서도 도움이 되는 좋은 아이죠 :)
4. 번외 - enum에서 필드에 값을 초기화 할 수 있습니다.
enum Job{
cop(1), fireFighter(2), docter(3), teacher(4);
private int kindNo;
Job(int kindNo) {
this.kindNo = kindNo;
}
public int getKindNo(){
return kindNo;
}
다음과 같이 enum 필드에 값을 넣을 수 있습니다. 생성자를 생성하여 값을 초기화 할 수 있게 만들어 놓고, getter를 만들어 가져올 수 있게 만들면 됩니다 :) enum에 특정 데이터를 연괄시킬 수 있다는 특징도 존재합니다.
Enum을 잘 활용할 수 있다면 클린 코드가 될 것 같지만 아직 익숙해지는데에는 한참 멀은거 같다... 앞으로 이 글을 계속 업데이트 하면서 Enum에 대해 지속적인 공부를 병행할 예정입니다.
오늘도 슬기로운 코딩 생활 하시길 바라며, 궁금하신점이나 잘못 기재된 점에 대한 피드백은 언제나 감사합니다 :)
'Java' 카테고리의 다른 글
[Java] POJO (Plain Old Java Object) 란? feat. 코드로 알아보자! (1) | 2023.03.18 |
---|---|
[Java] Optional 에 대한 개념 및 사용법 (0) | 2023.03.10 |
InnerClass 왜 사용할까? (0) | 2023.01.13 |
Java Collection ApI 핵심 정리 (0) | 2023.01.13 |
윤년과 평년을 구별하는 프로그래밍 (0) | 2023.01.13 |

Enum == 열거형
쉽게 말해서 서로 관련이 있는 상수들의 집합을 의미한다. 자바에서는 final한 상태를 의미하며, 클래스가 만약 상수로만 구성되있다면 class 대신 enum이라고 선언하여 해당 객체는 상수의 집합이다!
라고 나타낼 수 있는 것이다.
일단 왜 쓰는지?
뭐든 공부를 할때는 목적이 중요하다고 생각합니다. 내가 이걸 왜 배우는지, 언제 어디에 써먹을껀지 등.......
차근차근 코드들을 보면서 이해하고 사용해봅시다 :)
1. 간단하지만 뭔말인지? 하는 코드
int kindOf = 3;
public static final int cop = 1;
public static final int fireFighter = 2;
public static final int docter = 3;
public static final int teacher = 4;
public void findJob(){
switch(kindOf){
case 1 :
System.out.println("경찰관입니다");
break;
case 2 :
System.out.println("소방관입니다");
break;
case 3 :
System.out.println("의사입니다");
break;
case 4 :
System.out.println("선생님입니다");
break;
}
}
일단 이런식으로 짠다면 정말 현업에서 뚜까 맞을 수도 있습니다. 코드량이 적어서 현재 한눈에 보이지만 만약에 코드량이 많아지거나 복잡해진다면 처음 본 사람은 다음과 같이 생각할 수 있습니다.
"1이 뭐길레 경찰관이라는거지? kindOf는 또 무슨 변수야?...그러면 사육사 이런건 없나? 필드가 어딨지...언제 찾아보냐 ;;"
아무래도 필드는 상단에 몰려있기에 위아래로 드래그를 열심히 해야겠죠? ^^
2. 뭔가 개선이 됬는데 이게 최선인가? 하는 코드
int kindOf = 3;
public static final int cop = 1;
public static final int fireFighter = 2;
public static final int docter = 3;
public static final int teacher = 4;
public void findJob(){
switch(kindOf){
case cop :
System.out.println("경찰관입니다");
break;
case fireFighter :
System.out.println("소방관입니다");
break;
case docter :
System.out.println("의사입니다");
break;
case teacher :
System.out.println("선생님입니다");
break;
}
}
관계는 뭔가 이제 확실해 보입니다. 하지만 여전히 final한 변수들 여러개들을 관리하기는 힘들어 보입니다.
3. 휴 이제야 맘이 편하네;; 하는 코드
enum Job{
cop(), fireFighter(), docter(), teacher();
public void findJob(){
switch(Job.cop){
case cop :
System.out.println("경찰관입니다");
break;
case fireFighter :
System.out.println("소방관입니다");
break;
case docter :
System.out.println("의사입니다");
break;
case teacher :
System.out.println("선생님입니다");
break;
}
}
}
드디어 enum을 사용하여 상수들의 집합체 즉 "열거형"을 완성하여 활용했습니다. 다음과 같이 불필요한 코드수가 많이 줄었을 뿐더러, 처음보는 사람이더라도 코드의 연관관계를 파악하기 매우 쉬워졌습니다. 여기서 enum은 비슷한 종류(개념)들 끼리의 상수들을 모아둠으로써 한번에 처리하고 관리하는 측면에서 매우 편합니다. 또한 가독성이 올라가기에 유지보수 측면에서도 도움이 되는 좋은 아이죠 :)
4. 번외 - enum에서 필드에 값을 초기화 할 수 있습니다.
enum Job{
cop(1), fireFighter(2), docter(3), teacher(4);
private int kindNo;
Job(int kindNo) {
this.kindNo = kindNo;
}
public int getKindNo(){
return kindNo;
}
다음과 같이 enum 필드에 값을 넣을 수 있습니다. 생성자를 생성하여 값을 초기화 할 수 있게 만들어 놓고, getter를 만들어 가져올 수 있게 만들면 됩니다 :) enum에 특정 데이터를 연괄시킬 수 있다는 특징도 존재합니다.
Enum을 잘 활용할 수 있다면 클린 코드가 될 것 같지만 아직 익숙해지는데에는 한참 멀은거 같다... 앞으로 이 글을 계속 업데이트 하면서 Enum에 대해 지속적인 공부를 병행할 예정입니다.
오늘도 슬기로운 코딩 생활 하시길 바라며, 궁금하신점이나 잘못 기재된 점에 대한 피드백은 언제나 감사합니다 :)
'Java' 카테고리의 다른 글
[Java] POJO (Plain Old Java Object) 란? feat. 코드로 알아보자! (1) | 2023.03.18 |
---|---|
[Java] Optional 에 대한 개념 및 사용법 (0) | 2023.03.10 |
InnerClass 왜 사용할까? (0) | 2023.01.13 |
Java Collection ApI 핵심 정리 (0) | 2023.01.13 |
윤년과 평년을 구별하는 프로그래밍 (0) | 2023.01.13 |