본문 바로가기
Java

[Java] final 예약어

by bkuk 2022. 10. 1.

final, 단어의 의미는 '마지막' 입니다.

Java에서는 마지막으로 정했으니 더 이상 수정할 수 없다는 뜻입니다.

 

이 예약어를 변수 혹은 메서드 혹은 클래스에 사용할 수 있습니다.

변수에 사용하면? 상수를 의미합니다.
메서드에 사용하면? 하위 클래스에서 재정의할 수 없습니다.
클래스에 사용하면? 상속할 수 없습니다.

 

 

final 예약어가 없는 변수에는 다른 값을 대입할 수 있지만,

final 예약어가 있는 변수에는 다른 값을 대입할 수 없기때문에 컴파일 오류가 발생합니다.

 

 

final, 언제 사용할까요?

 

프로젝트를 진행하다보면 여러 파일에서 똑같이 공유해야 하는 상수 값이 있을겁니다.

예를 들면, 프로젝트에서 공통으로 적용하는 최댓 값, 최솟 값 등이 있습니다.

이러한 값들을 파일마다 선언한다면 코드가 중복될 뿐만 아니라

값이 변하거나 추가될 떄 그 값을 사용하는 파일을 모두 수정해야 합니다.

 

따라서, 아래와 같이 하나의 클래스에 public static final로 선하는 것이 좋을 겁니다.

상수를 모두 public 예약어로 선언했으므로 외부에서 사용 가능합니다.

또한, 모든 상수를 static으로 선언했으므로 인스턴스를 생성하지 않아도 클래스 이름을 통해 사용할 수 있습니다.

 

 

댓글