final
final - 지역변수
final 키워드가 붙으면 더는 값을 변경할 수 없음.
public class FinalLocalMain {
public static void main(String[] args) {
//final 지역 변수1
final int data1;
data1 = 10; //최초 한번만 할당 가능
//data1 = 20; //컴파일 오류
//final 지역 변수2
final int data2 = 10;
//data2 = 20; //컴파일 오류
method(10);
}
//final 매개변수
static void method(final int parameter) {
//parameter = 20; 컴파일 오류
}
}
final - 필드(멤버 변수)
public class Member {
final int value;
public Member(int value) {
this.value = value;
}
}
final을 필드에 사용할 경우 해당 필드는 생성자를 통해서 한번만 초기화 될 수 있다.
사실 final + 필드 초기화를 하는 경우 static을 붙여서 사용하는게 맞다. 인스턴스가 생성될때마다 value가 힙 영역에 생성되기 때문이다.

상수(Constant)
단 하나만 존재하는 변하지 않는 고정된 값
static final 키워드 사용
참조형 변수 data에 final이 붙은 경우?
참조형 변수에 들어있는 참조값을 변경 못하는 것인지 참조하는 대상의 값은 변경할 수 있다.

final - 클래스
상속 끝!
final로 선언된 클래스는 확장될 수 없다. 다른 클래스가 final로 선언된 클래스를 상속받을 수 없다.
final - 메서드
오버라이딩 끝
final로 선언된 메서드는 오버라이드 될 수 없다.
Last updated