관리 메뉴

CASSIE'S BLOG

[슈퍼코딩] 53강 강력한 데이터 관리 (부제: Enum, DateTime, Optional) 본문

PROGRAMMING/슈퍼코딩 강의 정리

[슈퍼코딩] 53강 강력한 데이터 관리 (부제: Enum, DateTime, Optional)

ITSCASSIE1107 2023. 12. 10. 14:47
반응형

 

 
 
enum이라는 키워드로 시즌을 선언하고 그리고 대문자로 하는데 띄어쓰기를 하고싶을 떄는 언더바로 해야한다고함. 
 

Enum은 Switch랑 궁합이 잘 맞다.
 

 

 
생성자까지 정의해야 빨간 줄 없어짐
 

 
enum도 어떻게 보면 class 이기 때문에 field를 정의할 수 있는데 final로 정의할거라고함. 
 
위에 사진에 빨간줄이 뜨는 이유는 생성자까지 해야 성공이라고함. 
 

 
각각의 필드를 줬다는데?
SUNDAY("일요일"); 
 

compareTo는 뺸 값이다. 
일요일이 0이니까 
1-0 = 1
1-4 = -3
 

 
하나의 필드에 두개씩 넣을 수 있다는데? "Female", "여자" 이렇게
 

 

 
실습안함 실습해야함.

Enum의 장점 어떤 값에 대해서 유동적으로 대처할 수 있게 됨


Optional 뒤에 계속 나옴 공부 해야함

String으로 하면 다 다른 값으로 취급이 되는데

public enum Gender {

   FEMALE(“female”, “여자),
   MALE(“male”, “남자“),
   UNKNOWN (“Unknown”, “미정”);

private String englishTerm;

private String koreanTerm;





콤마로 설정하다가 마지막에 쉼표로 정의하면 됨


}

결국에 enum이라는게 메인메소드에서 만들었던 인스턴스를 클래스 선언과 동시에 같이 만들어버린거임 윗 부분은


PTMember 랑 연결됨

values(); 이거하면 Gender에 정의한 FEMALE, MALE, UNKNOWN이 된다함

(이걸로 빼서 for문을 돌릴 수 있다함)


이번에는 equals로 함

public static Gender valueOfTerm(String str){
    for (Gender : values()){
     if(str.equals(gender.englishTerm) || str.equals(gender.koreanTerm))
       return gender;
  }
}
return UNKNOWN;

}

하고나서 Constructor에서
this.gender = Gender.valueOfTerm(gender)

해주면
gender가 Gender로 호환이 되는거임





반응형