728x90
Java 에서 final 키워드는 여러 가지 의미와 기능을 가지고 있다
final 키워드는 코드의 안정성과 확장성을 개선하는 데에 도움을 주는 중요한 기능 중 하나 입니다
변수에 적용될 경우 :
- 'final' 변수는 상수(Constant)로 선언되며, 한 번 초기화 된 이후에는 변경할 수 없음
- 값을 한번만 할당할 수 있으므로, 다른 코드에서 의도치 않은 변경을 방지하고 변수의 불변성(Immutability)을 보장
- 주로 상수 값을 저장하는 변수에 사용됨
public class Example {
public static void main(String[] args) {
final int MAX_VALUE = 100;
// MAX_VALUE 변수는 상수로 선언되었기 때문에 값을 변경할 수 없음
// MAX_VALUE = 200; // 에러: 값 변경이 불가능한 상수
System.out.println(MAX_VALUE); // 출력: 100
}
}
메서드에 적용될 경우 :
- final 메서드는 하위 클래스에서 오버라이드(Override)할 수 없음
- 메서드를 오버라이드할 수 없기 때문에, 부모 클래스에서 정의된 동작을 보장하고 변경을 방지함
- 성능 최적화나 보안 등의 이유로 메서드를 불변하게 만들고 싶을 때 사용
public class Parent {
public final void display() {
System.out.println("부모 클래스의 display 메서드");
}
}
public class Child extends Parent {
// display 메서드를 오버라이드할 수 없음
// public void display() { } // 에러: final 메서드 오버라이드 불가능
}
클래스에 적용된 경우 :
- final 클래스는 상속될 수 없음
- 클래스를 확장하지 못하게 하여 클래스의 구현을 변경하지 못하도록 막는역할
- 주로 보안, 안정성, 특정 동작 보장 등의 목적으로 사용됨
public final class FinalClass {
// 클래스는 확장될 수 없음
}
public class SubClass extends FinalClass {
// FinalClass를 상속할 수 없음
// 컴파일 에러 발생
}
728x90
'1. basic' 카테고리의 다른 글
Java 에서 String은 기본 데이터 타입 ? (0) | 2023.07.05 |
---|---|
Java 에서 Math.round(-1.5)의 의미 (0) | 2023.07.05 |
두 객체가 동일한 hashCode를 가질 때 Equals() 값 (0) | 2023.07.03 |
== 와 equals 의 차이점 (0) | 2023.06.28 |
JDK 와 JRE 의 차이점 (0) | 2023.06.27 |