[Java] final

전우석·2024년 3월 19일

Java

목록 보기
15/24

final

일정한 값을 지녀야 하는 상수에 할당하여 값이 변하지 못하도록 하는 키워드

  • final 키워드는 변수, 메소드, 클래스에 다양한 방식으로 사용할 수 있다.

final 변수

final 변수는 선언되는 동시에 초기화되어야 하며, 초기화 후 값을 변경할 수 없다.

  • final변수는 지역 변수와, 필드 변수로 나눌 수 있다.

지역 변수

  • final로 선언된 지역 변수는 값을 단 한 번만 할당받을 수 있다.
  • 이는 초기화 후 그 값이 변경되지 않음을 보장한다.
    • 이를 통해 상수 값을 정의하거나, 익명 클래스 또는 람다 표현식 내에서 변경되지 않는 변수를 사용할 때 사용된다.

필드 변수

  • final로 선언된 필드는 객체 생성 시 초기화되어야 하며, 그 후에는 변경할 수 없다.
  • 객체의 불변 속성을 정의하는 데 사용된다.(의존성 주입 시 불변 객체 사용)
  • 클래스가 인스턴스화될 때 생성자에서 초기화되거나 필드에서 선언 시 초기화된다.

final 메소드

final로 선언된 메소드는 하위 클래스에서 오버라이드(재정의)할 수 없다.

  • 이를 통해 부모 클래스의 특정 동작을 모든 하위 클래스에서 일관되게 유지하고자 할 때 사용된다.
  • 즉, 메소드의 구현을 고정시켜 상속을 통한 변경을 방지한다.

final 클래스

final로 선언된 클래스는 상속될 수 없다.

  • 클래스의 동작을 변경할 수 없도록 고정시키고자 할 때 유용하며, 보안과 불변성을 보장할 수 있다.
  • 예를 들어, java.lang.String 클래스는 final로 선언되어 있어 다른 클래스가 이를 상속할 수 없다.

0개의 댓글