반응형
1. Final 필드
Java에서는 Final이라는 통해 한번 정의된 변수의 값이 수정되지 못하도록 만들 수 있습니다.
class Math{
final pi = 3.14;
//final [타입] [필드명];
}
위와같은 형태로 만들어 줄 수 있습니다. 만약 클래스 내에서 필드(변수)를 초기화하지 않았다면, 단 한번 변수를 초기화 할 수 있습니다.
일반적으로 이와같은 녀석을 '상수'라고 부르는 경우가 종종있습니다.
왜냐하면, 수정이 불가능하기 때문이죠.
하지만, C언어에서 '상수'를 사용해본 경험이 있으신 분이라면, 조금 이상하다는 느낌을 받을 수 있습니다.
왜냐하면, 일반적으로 '상수'라는 녀석은 '전역변수'처럼 사용되기 때문입니다.
즉, 위와같이 클래스 내에서 final이라는 녀석을 통해 선언된 필드의 값은 클래스의 객체별로 서로 다른 값을 갖을 수 있다는 문제가 있습니다.
2. Static Final
위의 문제점을 해결하기 위하여 앞에 Static이라는 녀석을 붙여줍니다.
이전장에서, 그리고 처음 [JVM 메모리 관리]부분에서 언급했던것처럼 static이라는 녀석은 [메소드 영역]에서 관리되기 때문에 전역변수처럼 사용됩니다.
즉, static final로 선언된 값은 코드 전역에서 불편의 값을 갖는 필드, 즉 '상수'라고 불릴만한 자격을 갖게됩니다.
상수를 선언할 때에는 항상
static final 필드 (=초기값);
위와같은 형태로 만들어줄 것! 꼭 기억합시다.
반응형
'프로그래밍 > Java 정리' 카테고리의 다른 글
[Java 정리] 9. 접근 제한자 (접근 제어자) (0) | 2019.12.28 |
---|---|
[Java 정리] 8. 다른 패키지 클래스 호출 (import) (1) | 2019.12.28 |
[Java 정리] 6. 인스턴스 vs 정적 (0) | 2019.12.28 |
[Java 정리] 5. 생성자 오버로딩(Overloading) (2) | 2019.12.28 |
[Java 정리] 4. 향상된 for 문 (0) | 2019.12.27 |