본문 바로가기
프로그래밍/Java

[실전 자바-기본편] final

by Dean30 2024. 2. 14.
728x90

final 변수와 상수

  • 키워드 그대로 끝 ! 더이상 값을 변경할 수 없다.
    • 매우 유용한 제약
  • final을 지역 변수에 설정할 경우 최초 한 번만 할당 할 수 있다.
    • 이후 변경하려면 컴파일 오류 발생
    • 매개변수에 final이 붙으면 메서드 내부에서 매개변수 값을 변경할 수 없다.
  • 클래스 멤버 변수를 final로 지정하면
    • constructor에서 초기화하거나
    • 선언 시 초기화 해야함

 

  • static이 아닌 final 필드를 초기화 하는 경우 모든 인스턴스가 오른쪽 그림과 같이 같은 값을 가진다.
    • 여기서는 FieldInit 인스턴스의 모든 value 값이 10
    • 이것은 메모리 낭비 !
      • 초기화 값을 지정해 줄 수 없는 필드라면 static을 쓰자
  • static final int CONST_VALUE = 10; 과 같이 static과 final이 같이 있으면 대문자로 상수 표현
    • 매직 넘버도 해결 가능

 

 

final 변수와 참조

  • final 변수에 기본값이 할당되면 변경 불가
  • 참조값이 할당되면 참조값은 할당 불가하지만 참조하는 대상의 값은 변경할 수 있다.

 

728x90

댓글