final

최주영·2024년 4월 12일
0

자바

목록 보기
25/27

✅ final

  • 지역 변수에 설정시 최초 한번만 할당 가능
  • 할당 이후 변수 값 변경시 컴파일 오류 발생
  • 매개변수에 final 붙으면, 메서드 내부에서 매개변수의 값을 변경할 수 없음
    -> 메서드 호출 시점에 넘겨진 값이 끝까지 고정됨
final int data = 10;
//data = 20; // 컴파일오류

static void method(final int parameter){
	// parameter = 30; // 컴파일오류
}

static final , final

공통점 : 둘다 값 설정시 변경이 불가능함

문제점 : final 키워드만 붙은 경우 인스턴스를 생성할 때마다 모든 인스턴스 값이 같은 상태로 생성됨

  • 계속 같은 값이 생성되기 때문에, 명확한 중복이 발생
  • static 키워드를 붙어서, 하나만 존재하도록 만듬 -> 중복과 메모리 비효율 해결
 public class FieldInit{
 	static final int CONST_VALUE = 10;
    final int value = 10;
 }

✅ 상수

  • 단 하나만 존재하고 변하지 않는 고정된 값
  • 대표적인 ex) static final
  • 대문자를 사용하고 구분은 _ 로 한다 -> 변수와 상수를 구분하기 위해서
  • ex) CONST_VALUE

✅ 참조형 변수에 final 이 붙으면?

-> 참조 대상 자체를 다른 대상으로 변경하지 못함
-> 참조하는 대상의 값은 변경할 수 있음

final Data data = new Data();
// data = new Data(); //  참조 대상 자체는 변경하지 못함 (컴파일 오류)

// 참조 대상의 값은 변경할 수 있음
data.value = 10; 
data.value = 20;
profile
우측 상단 햇님모양 클릭하셔서 무조건 야간모드로 봐주세요!!

0개의 댓글