2022-05-20 데일리 회고 17일차

Sung-min Seo·2022년 5월 23일
0

🥕 열거형(Enum)

열거형 클래스는 서로 관련있는 상수들을 모아 정의 하는 것 이다.

enum Code{Python, Java, JavaScript, C};

public class Favorite{
	public static void main(String[] args)
    {
    	Code fav = Code.Java;
        System.out.println(fav);   // 결과값 : Java
    }
}

이렇게 enum 클래스 안에 비슷한 개념의 단어들이 마치 배열처럼 묶이게 된다. 실제로도 저장된 객체 값을 인덱스 번호로 가져온다. 열거형은 클래스 밖에서도 안에서도 사용할수 있지만, 메서드 안에서는 사용이 불가능 하다.

⭐Enum method 종류

    - name() : 해당 열거체 상수의 이름을 리턴한다.
    - ordinal() : 해당 열거체 상수가 열거체 정의에서 정의된 순서를 리턴한다.
    - compareTo() : 전달된 값과 해당 열거체를 비교하여 순번차이를 리턴한다.
    - valuesOf(String name) : 전달된 문자열과 일치하는 해당 열거체의 상수를 리턴한다.
    - values() : 모든 열거 객체들을 배열로 리턴한다.

🥕 어노테이션(Annotation)

어노테이션은 프로그램 내에서 해당 코드가 무엇을 뜻하는지 설명해준다. 자바에서 //로 시작하는 주석과는 달리 @로 시작하며 실질적으로 코드 자체에 영향을 끼치지는 않지만, 쉽게 무슨 코드인지를 알려주며 일반적인 주석보다는 컴파일시 프로그램에 영향을 끼칠수 있어 디버그시 훨씬 용이하다.

    @Override
      + 선언한 메서드가 오버라이드 되었다는 것을 나타낸다. 만약 오버라이드가 안된 상태라면 컴파일 에러를 출력한다.
    @Deprecated
      + 해당 메서드가 현재 혹은 앞으로 쓰이지 않을 것을 나타낸다. 사용한다면, 컴파일 경고를 출력한다.
    @SuppressWarnings
      + 선언한 곳의 컴파일 경고를 무시하도록 한다.
    @FunctionalInterface
      + 함수형 인터페이스를 올바르게 선언했는지 확인해주는 어노테이션이다. 만약 메서드가 존재하지 않거나, 1개 이상의 메서드가 존재할 경우 컴파일 오류를 출력한다.
    @Retention
      자바 컴파일러가 어노테이션을 다루는 방법을 기술하며 특정 시점까지 영향을 미치는지 결정한다.
          + SOURCE : .java 소스 파일까지는 어노테이션이 존재하지만, 컴파일시 사라지게 된다.
          + CLASS : .class파일까지는 어노테이션이 존재하지만, 런타임시 사라지게 된다.
          + RUNTIME : 컴파일 이후에도 JVM에 의해 계속 참조가 가능하다.
    @Documented
      해당 어노테이션을 Javadoc에 포함시킨다.
    @Target
      어노테이션의 적용 범위를 정해준다.
          + ElementType.PACKAGE : 패키지 선언
          + ElementType.TYPE : 타입 선언
          + ElementType.ANNOTATION_TYPE : 어노테이션 타입 선언
          +ElementType.CONSTRUCTOR : 생성자 선언
          + ElementType.FIELD : 멤버 변수 선언
          + ElementType.LOCAL_VARIABLE : 지역 변수 선언
          + ElementType.METHOD : 메서드 선언
          + ElementType.PARAMETER : 전달인자 선언
          + ElementType.TYPE_PARAMETER : 전달인자 타입 선언
          + ElementType.TYPE_USE : 타입 선언
    @Inherited
      어노테이션의 상속을 가능하게 한다.
    @Repeatable
      해당 어노테이션이 붙은 어노테이션을 여러반 반복할수 있게 해준다.

Enum 클래스 - 코딩의 시작, TCP School

enum in Java

[Java] Annotation 어노테이션 - 총정리

Java Annotations

⭐ 오늘의 소감

우선 어노테이션과 열거형을 정리해 봤다. 중요한 내용인거 같지만 아닌거 같기도 하고... 아직 실전에서 써먹어 보지 못해서 얼마나 필요한지 깨닫지 못하는 것 같다.

profile
매일 문제 3개 이상 풀기!!

0개의 댓글