AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

Java에서 final 키워드의 활용

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

개발 툴

대상자

  • Java 개발자 (중급 이상)
  • OOP 개념 학습자
  • 객체 지향 설계 패턴 이해자

핵심 요약

  • final 변수는 초기화 후 값 변경 불가 (상수)
  • final 메서드는 자식 클래스에서 오버라이딩 불가
  • final 클래스는 확장 불가 (예: Integer, String 등)
  • 참조 타입의 final 변수는 내부 값 변경 가능 (비전달성)

섹션별 세부 요약

1. **Final Variable (상수)**

  • 초기화 방법: 선언 시, 생성자 내, 정적 블록 (정적 final 변수에 한함)
  • 참조 타입 특성: 객체 재할당 불가, 내부 값은 변경 가능

```java

private final int[] array = new int[] {1, 2, 3};

finalKeywordExample.array[2] = 4; // 허용됨

finalKeywordExample.array = new int[] {1, 2, 3}; // 불가

```

2. **Final Method (오버라이딩 금지)**

  • 자식 클래스에서 재정의 불가

```java

class Parent { final void finalMethod() { ... } }

class Child extends Parent { void finalMethod() {} } // 컴파일 오류

```

3. **Final Class (확장 금지)**

  • 상속 불가 (예: String, Integer 등)
  • 불변성 보장 (자식 클래스가 상태 변경 방지)

```java

final class Parent { } // Child extends Parent 불가

```

결론

  • 상수 정의 시 final 사용 (예: private final int MAX_VALUE = 100)
  • 불변 객체 설계 시 final 클래스 활용 (예: String, Integer)
  • 참조 타입의 final 변수는 내부 값 변경 가능하나 재할당 불가 (비전달성 특성 활용)