프로그래밍/자바(Java)

[ 자바 / JAVA ] final 키워드

후르트링 2021. 7. 20. 20:08
728x90

final의 간단한 의미는 "초기 세팅 후 바꾸지 못하게 막는다" 정도로 해석할 수 있을 것 같습니다.

C++의 const와 비슷한 역할을 합니다.

메소드, 클래스, 변수에도 각각 사용되었을 때의 용법을 정리해보았습니다.

[클래스의 final]

final class MyClass{ ... }
  • MyClass를 상속하는 것을 허용하지 않습니다.
  • String 클래스가 대표적인 final 클래스 입니다.

[final 메소드]

class A{ final void aFunc(int n){ ...} }
  • aFunc 메소드의 오버라이딩을 허용하지 않습니다.
  • "A" 클래스는 상속은 가능하지만 A클래스는 상속받은 하위 클래스에서는 aFunc 메소드를 오버라이딩이 불가능합니다.

[변수의 final]

// 선언과 함께 초기화
final int pi = 3.14;

// 선언 후 한번의 초기화 
final int c;
c = 100;
  • final 필드는 선언 후에 값을 재정의가 불가능합니다.
  • 즉, final 필드의 초기값을 선언과 동시에, 선언 후 한번의 초기화가 가능합니다.
  • "변수의 상수화" 라고 표현할 수 있습니다.