1. final
(1) final 키워드를 사용할 수 있는 위치
- 지역변수: 초기화 이후 값 변경 불가
- 매개변수: 호출 시 전달한 값 변경 불가
- 인스턴스 변수: 인스턴스 생성 후 초기화 이후에 값 변경 불가
- 클래스 변수(static): 프로그램 시작 이후 값 변경 불가
- non-static 메소드: 메소드 재작성(오버라이딩) 불가
- static 메소드: 메소드 재작성(오버라이딩) 불가
- class: 상속 불가
(2) non-static field에 final 사용
- 초기 인스턴스 생성 시 기본 값 0이 필드에 들어가게 되는데
초기화 이후 값 변경이 불가하므로 선언과 동시에 초기화 필요
(3) static field에 final 사용
- 생성자를 이용한 초기화 불가
- 초기화 블럭을 통해 초기화 가능 (선언과 동시에 초기화는 아니지만, 클래스 로드 시점에 한 번만 실행된다.)
private static final String STATIC_NAME;
// 초기화 블럭을 통해 초기화 가능
static {
STATIC_NAME = "홍길동";
}
// final과 static의 순서는 무관. static final로 주로 작성
private final static int NUM = 1;
'Java' 카테고리의 다른 글
Java(7) 다형성 (0) | 2024.08.08 |
---|---|
Java(6) 상속 (0) | 2024.08.07 |
Java(4) 클래스와 객체 (0) | 2024.08.07 |
Java(3) API(Application Programming Interface) (0) | 2024.08.06 |
Java(2) 문자열 비교하기 (0) | 2024.08.05 |