홈 › 초급 › 07 / 8

enum, 패키지와 import, static 과 final

섹션 7진행 0 / 8

7. 정리

  • enum 은 인스턴스 개수가 고정된 클래스다. 구분값은 문자열·숫자 대신 enum 으로 선언해 오타를 컴파일 오류로 만든다. == 비교, switch 완전성 검사, 필드·메서드·상수별 구현이 따라온다.
  • DB 에는 ordinal() 대신 별도 code 나 name() 을 저장한다. enum 키 Map 은 EnumMap, 집합은 EnumSet.
  • 패키지 = 폴더 = 이름 공간. package 선언과 경로가 일치해야 하고, 다른 패키지는 import 하거나 완전한 이름으로 쓴다. 접근 제어자 없는 멤버는 같은 패키지에서만 보인다.
  • static 은 클래스에 하나, 모든 객체가 공유. static 메서드는 인스턴스 필드를 못 본다. 요청별 상태를 static 에 두지 않는다.
  • final 은 재대입 금지이지 불변이 아니다. 내용까지 얼리려면 불변 컬렉션·불변 클래스를 쓴다. public static final + 대문자 이름이 상수의 관례다.

다음은 중급 07 Object 메서드와 비교 에서 equals, hashCode, toString, Comparable 을 다룹니다. 이 레슨의 enum 이 == 로 비교되는 것과 달리 일반 클래스는 왜 equals 를 직접 정의해야 하는지, 그것을 빠뜨리면 HashMap 과 Set 에서 무슨 일이 생기는지 확인합니다.