Effective Java:매 거 진 주석

23120 단어 독서 노트
30.int 상수 대신 enum 사용
이전 방안
매 거 진 이 나타 나 기 전에 상수 적 인 방식 을 사용한다.예 를 들 어
public static final int APPLE_FUJI = 0;  
public static final int ORANGE_NAVEL = 0;

이런 방 을 이 라 고 하 는데 그 폐단 은 다음 과 같다.
  • 매 거 상수 와 관련 된 int 에 변화 가 발생 하면
  • 을 다시 컴 파일 해 야 한다.
  • 매 거 진 상수 를 인쇄 가능 한 문자열 로 번역 하면 하나의 숫자 만 볼 수 있 고 큰 도움 이 되 지 않 습 니 다.
  • 매 거 방식
    자바 의 매 거 진 은 본질 적 으로 int 값 입 니 다.
    public enum Apple{FUJI}
    public enum Apple{NAVEL}
  • 매 거 진 기본 생각:공유 하 는 final 도 메 인 을 통 해 매 거 진 상수 로 인 스 턴 스 를 내 보 냅 니 다.
  • 접근 가능 한 구조 기 가 없 기 때문에 매 거 진 유형 은 모두 final
  • 이다.
  • 이 되 지 못 하고 도 되 지 못 하기 때문에 사례 가 통 제 된 것 으로
  • 이다.
  • 컴 파일 시 유형 이 안전 합 니 다.성명 후 은 반드시 매 거 진 중 하나 인
  • 입 니 다.
  • 복사 toString 을 통 해 의 값 을 인쇄 할 수 있 습 니 다.
  • 매 거 진 은 임의의 을 추가 할 수 있 고
  • 을 실현 할 수 있다.
    매 거 진 고급 용법
  • switch,매 거 진 중 switch(this) 을 통 해 서로 다른 에 따라 서로 다른 조작 을 할 수 있 습 니 다.
  • 예제:Operation.java
  • 물론 위의 방식 이 좋 지 않 습 니 다. (onstant-specific method implementation)Operation 1.java
  • 을 사용 하 는 것 을 권장 합 니 다.
  • 은 구조 함수 로 파 라 메 터 를 전달 할 수 있 습 니 다.예 를 들 어 예제:Operation.java,op 인쇄 는 toString 을 호출 하여 +,-,*,/ 을 인쇄 했 습 니 다.
  • 을 이용 하여 더욱 안전 하고 유연 한 장면 에 사용 할 수 있 습 니 다.예 를 들 어 책 속 의 야근 장면, ,예시 코드:PayrollDay.java
  • 총결산
  • switch 매 거 진 것 은 매 거 진 유형 의 행위 에 적합 하 다.
  • 일반적으로 매 거 진 은 comparable 유형 을 우선 사용 합 니 다.int 유형
  • 이 아 닙 니 다.
  • 고정 상수 가 필요 할 때 매 거 진 을 사용 할 수 있 습 니 다.
  • 매 거 .
  • 31.서수 대신 인 스 턴 스 필드 사용
    간단 한 소개
    매 거 진 ordinal() 방법 은 매 거 진 상수 가 유형 에 있 는 숫자 위 치 를 되 돌려 줍 니 다.그러나 가능 한 한 사용 하지 마 십시오. 이 되면 클 라 이언 트 에 . 을 만 들 수 있 기 때 문 입 니 다.정확 한 방법 은 그 를 에 저장 하 는 것 입 니 다.
    예시
     public enum Ensemble {
        SOLO(1), DUET(2), TRIO(3), QUARTET(4);
    
        private final int numberOf;
    
        Ensemble(int _i) {
          this.numberOf = _i;
        }
    
        public int getNumberOf() {
          return numberOf;
        }
      }

    32.비트 필드 대신 enumset 사용
    int 매 거 모드
    public class Text {
        public static final int STYLE_BOLD = 1 << 0;
        public static final int STYLE_ITALIC = 1 << 1;
        public static final int STYLE_UNDERLINE = 1 << 2;
        public static final int STYLE_STRIKETHROUGH = 1 << 3;
    
        public void applyStyles(int styles) {
          //...
        }
      }

    EnumSet 모드
    public class Text {
        public enum Style {
            BOLD, ITALIC, UNDERLINE, STRIKETHROUGH
        }
        // Any Set could be passed in, but EnumSet is clearly best
        public void applyStyles(Set

    좋은 웹페이지 즐겨찾기