
⚠️ 이 글은 저작권 이슈로 인해 일부 내용이 수정 또는 제거되었습니다.
final 키워드의 의미| 종류 | 의미 |
| 지역 변수 | 초기화 이후 값 변경 불가 |
| 인스턴스 변수 | 생성자에서 단 한 번만 초기화 가능 |
| static final | 상수(Constant)처럼 사용됨 (대문자_스네이크_케이스 추천) |
final int AGE = 20;
AGE = 30; // ❌ 컴파일 오류final int AGE = 20;
AGE = 30; // ❌ 컴파일 오류public final void printName() { ... }public final void printName() { ... }String, Math, Integer 등public final class SafeBox { ... }public final class SafeBox { ... }불변 객체란?
생성 후 상태가 절대 바뀌지 않는 객체
final 필드 사용public final class User {
private final String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
}public final class User {
private final String name;
public User(String name) {
this.name = name;
}
public String getName() {
return name;
}
}String, LocalDate, BigDecimal 등final은 단순히 "못 바꾸게 막는 것"을 넘어서, 명확한 설계 의도 표현 수단