Java

Java(5) final

hyomee2 2024. 8. 7. 16:55

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