본문 바로가기

Languages/JAVA

열거형(enum), 어노테이션

열거형

 : 여러 상수를 선언해야 할 때, 편리하게 선언할 수 있는 방법.

 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