final 필드
- 최종적인 값을 갖고 있는 필드 = 값을 변경할 수 없는 필드
- final 필드는 딱 한 번 초기값을 지정하면 해당 값을 변경할 수 없다.
- 필드 생성시
final String nation = "한국";
- 생성자
Person(String nation){
this.nation = nation;
}
cf) final만 붙은 필드는 객체마다 다른 상수를 가질 수 있다.
Person p01 = new Person("한국");
Person p02 = new Person("미국");
Person p03 = new Person("중국");
static final
- 상수 = 정적 final 필드
- final 필드 : 객체마다 가지는 불변의 인스턴스 필드
- static final : 객체마다 가지고 있지 않음(객체 생성없이 사용가능)
메서드 영역에 클래스별로 관리되는 불변의 정적 필드
공용 데이터로 사용
- 상수 이름은 전부 대문자로 작성
- 다른 단어와 결합한 이름일 시 _로 연결
class Asian{
final String nation="한국"; // 객체마다 한번만 설정가능 변수
final String ssn; //생성자에 의해 초기값이 설정
String name; // 일반변수 (객체마다 변경가능 변수)
static final String COLOR="갈색"; //클래스 공유 메모리로 객체단위로도 변경이 불가능하다.
}