[Java 문법] final 키워드

mong k·2026년 4월 1일

1. final 이란?

값이나 참조를 '한 번만 설정' 하도록 제한하는 키워드

2. final 변수

final int num = 10;

num = 20; // ❌ 오류 발생

  • 값을 한 번 넣으면 변경 불가하다.
  • 따라서 변하면 안되는 값일 때 사용한다.

final int MAX_SIZE = 100;

final double PI = 3.14;

3. final 참조형

final List<String> list = new ArrayList<>();

list.add("A"); // ⭕ 가능
list.add("B"); // ⭕ 가능

list = new ArrayList<>(); // ❌ 불가능
  • List라는 박스는 바꾸지 못하지만 박스 안 내용은 변경 가능

4. 객체에서 final

private final List<CartItem> items = new ArrayList<>();
  • 장바구니 리스트 자체는 바뀌면 안되지만
	items = new ArrayList<>(); // ❌
  • 내부는 계속 변경되기 때문에 사용
	items.add(new CartItem(...)); // ⭕

5. final 메서드

public final void print() {
    System.out.println("출력");
}
  • 오버라이드 불가
class Parent {
    public final void test() {}
}

class Child extends Parent {
    public void test() {} // ❌ 오류
}

6. final 클래스

final class Animal {}

  • 상속 불가
    class Dog extends Animal {} // ❌ 오류

7. 정리

final 변수 → 값 변경 불가

final 객체 → 참조 변경 불가 (내용은 변경 가능)

final 메서드 → 오버라이드 불가

final 클래스 → 상속 불가

0개의 댓글