Notice
Recent Posts
Recent Comments
Link
관리 메뉴

데브마우스

[Java:오류정리]상수 final에 또 다른 값을 대입할 경우 생기는 오류 분석 본문

Java/Java: 에러 정리

[Java:오류정리]상수 final에 또 다른 값을 대입할 경우 생기는 오류 분석

데브마우스 2023. 10. 11. 17:05
package chapter2;
public class exam2_5_final 
{
    public static void main(String[] args) 
    {
        // TODO Auto-generated method stub
        int a = 3;
        a = 4;

        final double PI = 3.14;
        PI = 3.15;
    }
}

위 코드를 실행할 경우 아래와 같은 에러메시지가 출력됩니다.

 

오류 메시지는 무엇인가요?

Exception in thread "main" java.lang.Error: Unresolved compilation problem:
The final local variable PI cannot be assigned. It must be blank and not using a compound assignment
at chapter2.exam2_5_final.main(exam2_5_final.java:11)

 

위 에러 메시지를 해석하면 다음과 같습니다.
"main" 쓰레드에서 예외(가 발생하였다.) java.lang.Error: 해결되지 않은 컴필레이션 문제:
그 final 로컬 변수 PI는 지정될 수 없습니다. 이것은 반드시 공백이거나 복합 연산을 사용해서는 안됩니다.

 

chapter2.exam2_5_final.main(exam2_5_final.java:11)에서 한 번 선언된 final 변수의 값은 수정할 수 없다고 에러메시지를 뛰웁니다.

 

오류가 발생한 이유는 무엇인가요?

final은 상수입니다. 그렇기에 값을 변경할 수 없습니다. 만약 프로그램 실행 도중 다른 프로그램(예시:헥스에디터)으로 값을 강제로 수정하려고 할 경우 자바로 작성된 프로그램은 예외를 출력하며 프로그램이 강제로 종료됩니다.