final 키워드의 필요성

EunchongKim·2023년 4월 4일
0
post-custom-banner

final은 상수를 선언할 때 쓰인다.

예를 들어,
개발자가 아래와 같이 PI를 사용하고 싶다고 치자.

final double PI = 3.1415926543;			// final 사용
double circleArea;
double radius = 3;

circleArea = radius * radius * PI;

System.out.print(circleArea);

그런데 개발자가 몇 천자쯤 되는 긴 코드에서 쓰다가 이런 실수를 저질렀다.

double PI = 3.1415926543;

.
.
.

int PI = 3;			// PI 값 중복선언

이렇게 되면 개발자가 원하는 결과가 나오지 않고, 오류도 뜨지 않아서 매우 곤란하게 된다.
이러한 곤란한 상황을 막기 위해 final이 있는 것이다.

프로그램 자체에서 fianl은 있든 없든 상관없다.
다만 개발자가 목적한 결과를 위해 존재한다.

코드를 작성하다가 임의로 상수값을 변환하는 불상사가 일어나지 않도록 막는 일종의 장치를 넣어둔 셈이다. 위와 같은 중복선언 실수로 인해 오류 메시지가 뜨면 즉각적으로 반응할 수 있도록.

참고로 c 등과 같은 언어의 const도 같은 역할을 한다.



질문

  • 타입 선언만 해도 변수를 설정할 수 있는데 왜 굳이 final을 쓰나요?

    - fianl의 필요성을 제대로 몰랐기에 든 의문이었고, 해결됐다.

  • final로 선언할 수 있는 상수는 값이 변하지 않는다는데, 왜 '강제타입변환' 하면 변하나요?

    - 이것 또한 당연한 것이다. fianl로 선언헀다고 타입이 절대적으로 변하지 않는 건 아니다. final의 필요성과 관련해서 보면 사용자의 중복선언을 막기 위한 장치일 뿐이기 때문에 계산 시 타입변환은 막을 이유가 없다.
post-custom-banner

0개의 댓글