- 변수 사용시
private final x = 100;
- 한번 초기화되는 경우 값을 변경할 수 없다.
- 변경되지 않는 상수를 정의가능
- VO 나 엔티티의 경우 수정되지 않아야하는 경우가 대부분이기에 final 키워드를 변수에 많이 사용한다라고
- 생각할수있지만, VO 나 엔티티는 거의 final 키워드의 사용을 못한다.
- 엔티티의 경우 지연로딩이 존재하는데, 프록시 객체를 생성 -> 프록시 객체에서 리플렉션 API 수행
- 리플렉션 수행시 -> 기본 생성자와 setter 가 필요한 상황
- 하지만 final 은 기본적으로 setter 를 사용할 수 없음.
- VO 의 경우에는 로직에 따라 초기화 시점에 , 애초에 모든 객체나 데이터를 들고오지 못하는 경우가 있기에, 사용하기 까다롭다..
- 메서드에 사용되는 경우
public final void myMethod() {}
- 오버라이드 될 수 없는 메서드를 의미합니다.
- 혹여나 누군가 내 커스텀 메서드를 상속하는 경우 의도와 다르게 동작할 경우를 배제하기 위함입니다
- 클래스에 사용되는 경우
- 상속될 수 없는 클래스를 final 로 선언이 가능합니다.
final
은- 안정성과 불변성 떄문에 사용합니다.
Uploaded by
N2T
'자바 > 일반' 카테고리의 다른 글
[객체지향 생활체조] __규칙 8: 일급 콜렉션을 쓴다.__ (0) | 2024.02.24 |
---|---|
BIGDECIMAL 사용시 주의점 (0) | 2024.02.24 |
[팁] compareTo 기준점 (0) | 2024.02.19 |
[HTTP] illegalStateException 사용시 응답은 어떤식으로 던져질까? (0) | 2023.11.01 |
[일반] Interger.valueOf 와 Interger.parseInt 의 차이점 (0) | 2023.09.12 |