IT/CS 공부

[CS] Java의 final 키워드

박소민 2025. 8. 1. 16:18
Java의 final 키워드

 

: "한 번만 설정할 수 있다"는 제한을 의미

 

private final int age;

 

  • private: 외부에서 접근 불가 (캡슐화)
  • final: 값 변경 불가 (불변성 보장)

 

→  "외부에서 접근도 못 하고, 내부에서도 값을 한 번만 설정하는" 필드

 

final 키워드의 역할

 

  • final은 한 번 초기화되면 다시 값을 바꿀 수 없음
  • 즉, 이 변수는 생성자 또는 선언 시에만 초기화 가능
  • 이후에는 값을 변경(재할당) 할 수 없음

 

public class Person {
    private final String name;

    public Person(String name) {
        this.name = name; // ✔ 가능: 생성자에서 한 번만 초기화
    }

    public void changeName(String newName) {
        this.name = newName; // ❌ 컴파일 에러! final 변수는 변경 불가
    }
}

 

 

final 의 역할 (종류별)

 

쓰임  의미
변수(지역 변수, 필드) 값 재할당 금지. 한 번만 값 설정 가능
메서드 오버라이딩 금지 (자식 클래스에서 재정의 불가)
클래스 상속 금지 (final class)