<aside> 💬

특정 변수의 값을 할당한 이후에 변경하지 않아야 한다면 final을 사용하자.

</aside>

final 변수와 상수1

변수에 final 이라는 키워드가 붙으면 더는 값을 변경할 수 없다.

참고로, final은 class, method를 포함한 여러 곳에 붙을 수 있다. 지금은 변수에 붙는 final 키워드를 알아보자.

final - 지역 변수

package final1;

public class FinalLocalMain {
    public static void main(String[] args) {
        // final 지역 변수1
        final int data1;
        data1 = 10; // 최초 한번만 할당 가능
//        data1 = 20; // 컴파일 오류
        
        // final 지역 변수2
        final int data2 = 10;
//        data2 = 20; // 컴파일 오류
        
        method(10);
    }
    
    // final 매개 변수
    static void method(final int parameter) {
//        parameter = 20; // 컴파일 오류
    }
}

스크린샷 2024-12-10 오후 2.07.42.png

final - 필드(멤버 변수)

package final1;

// final 필드 - 생성자 초기화
public class ConstructInit {
    final int value;

    public ConstructInit(int value) {
        this.value = value;
    }
}

스크린샷 2024-12-10 오후 2.19.31.png

package final1;

public class FieldInit {
    static final int CONST_VALUE = 10;
    final int value = 10;
}