열거형
: 여러 상수를 선언해야 할 때, 편리하게 선언할 수 있는 방법.
java.lang.Enum
정의
enum Direction { EAST, SOUTH, WEST, NORTH }
열거형 상수간의 비교에는 '==' 사용가능 equals()도 가능.
비교 연산자는 사용이 불가능해서 compareTo메서드 사용.
B.compareTo(A) : (A)와 B가 같으면 0, A보다 왼쪽이면 양수 오른쪽이면 음수로 표시.
java.lang.Enum
컴파일러가 자동적으로 추가해주는 메서드 2개
static E[] values()
static E valueOf(String name)
열거형에 멤버 추가
: Enum클래스에 정의된 ordinal()이 열거형 상수가 정의된 순서를 반환하지만, 이 값을 열거형 상수의 값으로 사용하지 않는 것이 좋다. 내부적인 용도로만 사용되기 위한 것이기 때문에
열거형의 생성자는 묵시적으로 private로 되어있다.
어노테이션
: 어노테이션은 주석처럼 프로그래밍 언어에 영향을 미치지 않으면서도 다른 프로그램에게 유용한 정보를 제공할 수 있다는 장점이 있다.
어노테이션은 JDK에서 기본적으로 제공하는 것과 다른 프로그램에서 제공하는 것들이 있는데, 어느 것이든 그저 약속된 형식으로 정보를 제공하기만 하면 될 뿐이다.
표준 어노테이션
어노테이션 생성
어노테이션에도 인터페이스처럼 상수를 정의할 수 있지만, 디폴트 메서드는 정의할 수 없다.
어노테이션의 요소는 반환값이 있고 매개변수는 없는 추상 메서드의 형태를 가지며, 상속을 통해 구현하지 않아도 된다.
어노테이션의 각 요소는 기본값을 가질 수 있으며, 기본값이 있는 어노테이션을 적용 할 때 값을 지정하지 않으면 기본값이 적용된다.
요소의 규칙
- 요소의 타입은 기본형, String, enum, 어노테이션, Class만 허용된다.
- () 안에 매개변수를 선언할 수 없다.
- 예외를 선언할 수 없다.
- 요소를 타입 매개변수로 정의할 수 없다.
'Languages > JAVA' 카테고리의 다른 글
람다와 스트림 (0) | 2020.04.13 |
---|---|
Java 쓰레드 (진행중) (0) | 2020.04.09 |
Java 제네릭스(Generics) (0) | 2020.04.08 |
컬렉션 프레임웍 (0) | 2020.04.06 |
java.lang 클래스 (0) | 2020.04.02 |