Java
상수
정명훈
2021. 3. 23. 14:50
훈수/저작권 관련 지적 환영합니다 - 댓글 또는 audgnssweet@naver.com
Java의 상수
프로그래밍에서 상수(constant but not literal)란,
프로그래머가 지정한 값을 변경하지 못하도록 하는 변수를 의미합니다.
C언어를 사용해보신 분이라면 const 키워드를 통해 변수를 상수화 해보신 적이 있을 것입니다.
Java에서는 const대신 final이라는 키워드를 사용하여 상수를 만듭니다.
예제
public class FinalExample {
public static final String MY_CITY = "seoul"; (O)
public static final String MY_COUNTRY;
static {
MY_COUNTRY = "korea"; (static 초기화)
}
final int MY_TALL = 180; (O)
final int MY_FOOT;
public FinalExample() {
MY_FOOT = 270; (field 초기화)
}
public static void main(String[] args) {
final double PI = 3.14; (O)
final String MY_NAME = "Jeong"; (O)
final int MY_AGE; (O)
MY_AGE = 25; (O)
MY_AGE = 30; (X)
}
}
- 선언과 동시에 초기화가 가능하다.
- final 지역변수는 선언과 동시에 초기화를 하지 않고, 나중에 값을 할당해줘도 된다 (단, 1번만)
- final 필드는 선언과 동시에 초기화도 가능하고, 생성자에서 초기화도 가능하다
- static final 필드는 선언과 동시에 초기화도 가능하고, static 초기화 블록 안에서도 초기화가 가능하다.
-> static final 필드는 일반 생성자에서는 초기화가 불가능합니다.