Java/java

java :) final 키워드, final class/final method/final variable [+ final 변수 초기화 방법의 2가지 (반드시 기억)]

euncheol kim 2022. 5. 13. 14:21

 

 

goal

java의 final 키워드의 이해

 

 

 

final은 기본적으로 상수 취급


final은 기본적으로 변경을 하지 못하게 한다.

final이 쓰인 곳에 따라 조금씩 의미는 달라지는데, 구체적인 내용은 아래와 같다.

위치 의미 공통점
클래스 더 이상 상속할 수 없는 마지막 세대 클래스 변경불가
메소드 오버라이딩 불가 변경불가
변수 값 변경이 불가능한 상수 변경불가
final class FinalClassEx {
    final int x = 1; // 상수
    final int getNum() {
        final int localVar = x;
        return x;
    } 
}

※ final 클래스 부분에서 약간의 헷갈림이 있었는데, 다른 자식에서 final 클래스를 사용할 수 없다고 이해하자. 단, final 클래스는 다른 클래스를 상속 받을 수 있다!

 

 

 

※ 잠깐만~ final 변수의 초기화 방법에 대해서 알고가자

final 변수의 초기화 방법은 2가지가 존재한다.

  • 선언과 동시에 진행하는 초기화
  • 생성자로 진행하는 초기화

이 두 가지가 존재함을 반드시 기억해야한다. 이걸 인지하지 못해서 열거타입(enum)을 이해하는데 엄청 오래 걸렸다....