자바의 정석 chapter 12-2

inho ha·2022년 3월 14일
0

자바의 정석

목록 보기
14/18

열거형 (enums)

JDK 1.5 부터 추가되었음
C언어는 타입이 달라도 값이 같으면 조건식 결과가 true
자바의 타입에 안전한 열거형에서는 값이 같아도 타입이 다르면 false

상수의 값이 바뀌면 해당 상수를 참조하는 모든 소스를 다시 컴파일해야함
하지만 열거형 상수를 사용하면 다시 컴파일하지 않아도됨

enum Direction { EAST, SOUTH, WEST, NORTH }

class Unit {
	int x, y;
    Direction dir;
    
    void init() {
    	dir = Direction.EAST;
    }
}

== 으로 비교 연산 가능
<, > 사용 불가, 대신 compareTo() 는 사용가능

애너테이션 (annotation)

미리 정의된 태그들을 이용해서 주석 안에 정보를 저장하고, javadoc.exe 라는 프로그램이 이 정보를 읽어서 문서를 작성하는데 사용

애너테이션은 주석처럼 프로그램 언어에 영향을 미치지 않으면서도 다른 프로그램에게 유용한 정보를 제공할 수 있다

표준 애너테이션

JDK에서 제공하는 애너테이션
주로 컴파일러에게 유용한 정보를 제공한다.

@Override : 오버라이딩 하는 메서드에 달면 메서드의 이름을 잘못 적는 것을 막을 수 있다.

메타 애너테이션

애너테이션에 붙이는 애너테이션
애너테이션을 정의할 때 애너테이션의 적용대상이나 유지기간등을 지정하는데 사용

@Target : 애너테이션이 적용가능한 대상을 지정하는데 사용
지정할 수 있는 적용대상의 종류

@Retention : 애너테이션이 유지되는 기간을 지정
유지 정책의 종류

애너테이션 만들기

@를 붙이는 것을 제외하면 인터페이스를 정의하는 것과 동일

@interface 애너테이션이름 {
	타입 요소이름 (); // 애너테이션의 요소를 선언
}

애너테이션 요소의 규칙

  1. 요소의 타입은 기본형, String, enum, 애너테이션 ,Class 만 허용
  2. ()안에 매개변수를 선언할 수 없다.
  3. 예외를 선언할 수 없다.
  4. 요소를 타입 매개변수로 정의할 수 없다.
profile
iha / ian / inho ha

0개의 댓글