@Override 애너테이션은 메서드가 부모 클래스나 인터페이스의 메서드를 재정의하고 있는지를 컴파일러에게 알려주는 역할을 한다. 이를 통해 재정의한 메서드의 오타나 잘못된 시그니처 등을 빠르게 찾을 수 있습니다.

 

상위 클래스의 메서드를 재정의하려는 모든 메서드에 @Override 애너테이션을 달아주자.

@Override 애너테이션을 코드를 깔끔하게 보기위해 생략하지 말고 모두 달아주자.

 

 

핵심 정리 : 재정의한 모든 메서드에 @Override 애너테이션을 의식적으로 달면 여러분이 실수했을 때 컴파일러가 바로 알려줄 것이다. 예외는 한 가지 뿐이다. 구체 클래스에서 상위 클래스의 추상 메서드를 재정의한 경우엔 이 애너테이션을 달지 않아도 된다(단다고 해서 해로울 것도 없다).

명명 패턴 : 변수, 메서드, 클래스 등의 이름을 일정한 패턴에 따라 지정하는 방법. 이는 주로 코드의 가독성을 높이고 일관성을 유지하기 위해 사용된다.

예를 들어, 다음과 같은 명명 패턴이 있을 수 있습니다:

  1. 변수 이름에는 camelCase를 사용: myVariable, totalAmount, userName 등
  2. 메서드 이름에는 동사로 시작하여 동작을 나타냄: calculateTotal(), getUserInfo(), sendMessage()
  3. 클래스 이름은 대문자로 시작하는 CamelCase를 사용: MyClass, UserInfo, HttpRequest 등

 

import java.lang.annotation.*;

// 애너테이션 정의
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.METHOD)
@interface Test {
    // 기본값을 설정하여 필수적으로 값을 지정할 필요가 없도록 함
    String value() default "";
}

public class MyClass {
    // 애너테이션을 사용하여 테스트 메서드로 지정
    @Test("This is a test method")
    public void testMethod() {
        // 테스트 로직
    }

    // 테스트 메서드가 아닌 경우
    public void normalMethod() {
        // 일반 메서드 로직
    }

    // 애너테이션이 없는 경우
    public void anotherMethod() {
        // 다른 메서드 로직
    }
}

 

핵심 정리 : 애너테이션으로 할 수 있는 일을 명명 패턴으로 처리할 이유는 없다.

+ Recent posts