public class Korean {
// 인스턴스 final 필드 선언
final String nation = "korea"; // 고정값으로 초기 대입
final String ssn; // korean 생성시 부여됨
// 인스턴스 필드 선언
String name;
// 생성자 선언
public Korean(String ssn, String name) {
this.ssn = ssn;
this.name = name;
}
}
public class KoreanExample {
public static void main(String[] args) {
// 객체 생성 시 주민등록번호와 이름 전달
Korean ko = new Korean("123456-1234123", "이름");
System.out.println(ko.nation);
System.out.println(ko.name);
System.out.println(ko.ssn);
ko.name = "이름2"; // final 아니라 값 변경 가능
}
}
2. 상수(constant) 선언
불변의 값을 저장하는 필드를 상수라고 부른다. 객체마다 저장할 필요가 없으며, 여러 개의 값을 가지면 안되기 때문에 static인데 final 특성을 가진다.
// 선언 시
static final 타입 상수 [=초기값];
// 정적블록
static final 타입 상수;
static {
상수 = 초기값;
}
복잡한 초기화가 필요할 경우 정적 블록에서 초기화 가능하다.
상수명은 대문자로 작성하며, 서로 다른 단어가 혼합되었다면 언더바(_)로 단어를 연결한다.