본문 바로가기

Java 공부/신용권의 이것이 자바다

'상수'(static final)란 무엇인가?

반응형

상수는 static final 필드이다.

final 필드는 한번 값이 정해지면 수정을 할 수 없다.

그런 까닭에 상수도 한번 값이 정해지면 수정이 되지 않는다.

한편, 'final 필드'는  객체마다 가지고 있는 불변의 인스턴스 필드를 지칭한다.

그러나 상수는 정적(static)이기 때문에 객체마다 존재하지 않고, 메소드 영역의 상수 에어리어에 저장된다.

상수는 공용데이터로 사용된다.

상수이름은 전부 대문자로 작성하는 것이 관례이다.

다른 단어가 결합되면, _로 연결한다.

* 초기화 방법

1) 상수는 선언과 동시에 초기값을 정해 줄 수 있다.

이것이 가장 일반적이다.

static final 타입 상수 [= 초기값];

즉, static final double EARTH_RADIUS = 6400;

이렇게 선언할 수 있다.

2) 만약 초기값이 계산을 해서 산출된 값이라면,   static 블럭에서 작성된다.

이럴 때는,

static final 타입 상수;

static {

상수 = 초기값;

}

이렇게 작성한다.

즉,  

static final double EARTH_SURFACE_AREA;

 static {

EARTH_SURFACE_AREA = 4* Matj.pi * EARTH_RADIUS * EARTH_RADIUS;

}

라고 작성할 수 있다.

상수는 값이 대입이 되면, 절대로 바꿀 수 없다는 걸 잘 기억해야 한다.

아래는 바로 이것들을 이클립스에서 코드로 작성한 것이다.

 

반응형