final 키워드 사용처

 

  1. 변수 사용시
    private final x = 100;
    • 한번 초기화되는 경우 값을 변경할 수 없다.
    • 변경되지 않는 상수를 정의가능
    • VO 나 엔티티의 경우 수정되지 않아야하는 경우가 대부분이기에 final 키워드를 변수에 많이 사용한다라고
      • 생각할수있지만, VO 나 엔티티는 거의 final 키워드의 사용을 못한다.
      • 엔티티의 경우 지연로딩이 존재하는데, 프록시 객체를 생성 -> 프록시 객체에서 리플렉션 API 수행
        • 리플렉션 수행시 -> 기본 생성자와 setter 가 필요한 상황
        • 하지만 final 은 기본적으로 setter 를 사용할 수 없음.
      • VO 의 경우에는 로직에 따라 초기화 시점에 , 애초에 모든 객체나 데이터를 들고오지 못하는 경우가 있기에, 사용하기 까다롭다..
  1. 메서드에 사용되는 경우
    public final void myMethod() {}
    • 오버라이드 될 수 없는 메서드를 의미합니다.
    • 혹여나 누군가 내 커스텀 메서드를 상속하는 경우 의도와 다르게 동작할 경우를 배제하기 위함입니다
  1. 클래스에 사용되는 경우
    • 상속될 수 없는 클래스를 final 로 선언이 가능합니다.

  • final
    • 안정성과 불변성 떄문에 사용합니다.

Uploaded by

N2T