Java

[Java] final 키워드

개발자 이우진 2024. 4. 5. 11:27

개요

    • final 키워드는 변경을 제한하는 데 사용된다
      • JS의 const와 비슷하다
      • 불변성을 보장하여 실수로, 또는 악의적으로 수정되는 것을 막는다
      • final -> 최종본 -> 최종본은 더 이상 수정되지 않는다
    • final 키워드는  변수, 메소드, 클래스에 사용할 수 있다

 

final 키워드의 특징

      • final 변수
        • 재할당할 수 없는 상수가 된다
        • Object는 변수가 참조하는 Object의 내용을 변경하는 것은 막을 수 없다
          • final로 지정한 변수를 재할당하는 것이 아니기 때문이다
        • 선언 할 때, 또는 생성자에서 초기화되어야 한다
      • final Method
        • 하위 클래스가 Override 할 수 없는 메소드가 된다
        • 하위 클래스가 부모 클래스 메소드의 구현을 재사용하도록 장려한다
        • 모든 하위 클래스가 같은 구현을 사용하는 것을 보장한다
      • final Class
        • 상속 할 수 없는 클래스가 된다
        • 불변 클래스(Immutable Class) 를 만들때도 사용한다
          • 한번 생성되면 변경할 수 없는 클래스
          • 멤버 변수도 private final 로 생성되어서 한 번 생성되면 내용을 변경할 수 없다
          • ex) Wrapper Class (Integer, Boolean, Byte, Short), String

 

출처

https://www.geeksforgeeks.org/final-keyword-in-java/

https://sabarada.tistory.com/148

https://www.geeksforgeeks.org/create-immutable-class-java/

https://www.geeksforgeeks.org/using-final-with-inheritance-in-java/