final 키워드

final 메소드 매개변수에 값을 재할당하면?

컴파일 오류

  • 매개변수도 final이면 메소드 안에서 다시 대입할 수 없음

final 지역 변수는 반드시 선언과 동시에 초기화해야 하는가?

NO

  • 사용하기 전에만 초기화하면 됨
  • 단, 초기화하지 않고 사용하면 컴파일 오류

다음 코드의 결과는?

public int fun() {
    final int MAX_CLASS;
    System.out.println(MAX_CLASS);
 
    return 0;
}

컴파일 오류

  • final 지역 변수 MAX_CLASS를 초기화하지 않고 사용함

final 클래스 멤버 변수는 어디에서 초기화할 수 있는가?

  • 선언과 동시에
  • 생성자에서
public class StudentManager {
    final int MAX_STUDENT;  // 선언만
 
    public StudentManager() {
        MAX_STUDENT = 10;   // 생성자에서 초기화 OK
    }
}
  • 선언 시 초기화(final int MAX_STUDENT = 10;)와 런타임 동작은 동일

0건의 항목