final은 변수, 메서드, 클래스에 사용되고 있다.
1. final 변수:
1) final로 선언된 변수는 값을 변경할 수 없는 상수이다.
2) final 변수는 선언과 동시에 초기화되어야 하며, 이후에는 값을 변경할 수 없다.
3) final 변수는 주로 고정된 값을 사용해야 할 때 사용한다.
2. final 메서드:
1) final로 선언된 메서드는 하위 클래스에서 오버라이딩(재정의)할 수 없다.
2) final 메서드는 부모 클래스에서 정의된 동작을 변경하지 못하도록 제한다.
3) final 메서드는 부모 클래스에서 최종적으로 구현된 동작을 가지는 경우 사용한다.
3. final 클래스:
1) final로 선언된 클래스는 다른 클래스가 상속받을 수 없다.
2) final 클래스는 확장될 수 없으며, 다른 클래스에서 상속받아 하위 클래스를 만들 수 없다.
3) final 클래스는 주로 더 이상 확장되지 않아야 하는 경우나 보안 및 성능상의 이유로 사용한다.
4. final 사용 목적
1) 불변성: final 변수를 사용하여 값을 변경할 수 없는 상수로 선언하여 불변성을 유지할 수 있다.
2) 안전성: final 메서드를 사용하여 부모 클래스에서 이미 검증된 동작을 하위 클래스에서 변경되지 않도록 할 수 있다.
3) 보안: final 클래스를 사용하여 클래스의 상속을 제한함으로써 외부에서의 잘못된 사용을 방지할 수 있다.
5. final 사용 예시
public class Example { public static final int MAX_COUNT = 100; public final String name; public Example(String name) { this.name = name; } public final void printMessage() { System.out.println("This is a final method."); } } public final class FinalClass { // Class implementation } |
MAX_COUNT는 final로 선언된 상수로, 초기화된 값 이후에 변경할 수 없다.
name 변수는 final로 선언되어 생성자에서 초기화되며, 이후에는 값을 변경할 수 없다.
printMessage() 메서드는 final로 선언되어 하위 클래스에서 오버라이딩할 수 없다.
FinalClass는 final로 선언된 클래스로, 다른 클래스가 상속받을 수 없다.
'자바' 카테고리의 다른 글
자바 Call by value, Call by reference, 기본 자료형, 참조 자료형 (0) | 2023.07.18 |
---|---|
자바 중첩 클래스 ( Nested Class ) (0) | 2023.07.18 |
자바 접근 제어자 (0) | 2023.07.15 |
자바 오버로딩과 오버라이딩 (0) | 2023.07.14 |
자바 OOP ( 객체 지향 프로그래밍 ) (0) | 2023.07.14 |