JAVA/포스팅

자바 final 제어자

짜집퍼박사(짜박) 2023. 11. 12. 00:00

final 제어자는 자바에서 변수, 메서드, 클래스 등에 적용할 수 있는 제어자로, 한 번 초기화된 후에는 값을 변경할 수 없음을 나타냅니다. final 제어자는 상수, 메서드 오버라이딩 방지, 클래스 상속 방지 등 다양한 상황에서 사용됩니다.

 

1. final 제어자의 사용 예제

 

1.1. 변수에 final 제어자 사용 (상수로 사용)

// Example.java
public class Example {
    // 상수는 대문자로 작성하는 것이 관례
    private static final int MAX_VALUE = 100;

    public void printMaxValue() {
        System.out.println("Max Value: " + MAX_VALUE);
    }
}

위의 예제에서 MAX_VALUE는 한 번 초기화되면 변경할 수 없는 상수가 됩니다.

 

1.2. 메서드에 final 제어자 사용 (메서드 오버라이딩 방지)

// ParentClass.java
public class ParentClass {
    public final void finalMethod() {
        System.out.println("This is a final method.");
    }
}

// ChildClass.java
public class ChildClass extends ParentClass {
    // 아래의 메서드 오버라이딩 시 에러 발생
    // @Override
    // public void finalMethod() {
    //     System.out.println("Child class overriding the final method.");
    // }
}

final 메서드는 하위 클래스에서 오버라이딩할 수 없습니다.

 

1.3. 클래스에 final 제어자 사용 (상속 방지)

// FinalClass.java
public final class FinalClass {
    // 클래스 내용
}

// ChildClass.java
// 에러 발생: FinalClass는 상속할 수 없는 final 클래스입니다.
// public class ChildClass extends FinalClass {
//     // 클래스 내용
// }

final 클래스는 다른 클래스에서 상속할 수 없습니다.

 

2. final 제어자의 특징

 

- 변수에 적용할 경우, 해당 변수는 한 번 초기화되면 값을 변경할 수 없습니다.
- 메서드에 적용할 경우, 해당 메서드는 하위 클래스에서 오버라이딩할 수 없습니다.
- 클래스에 적용할 경우, 해당 클래스는 상속될 수 없습니다.

 

주의사항

 

- final 제어자를 사용하면 불변성(Immutability)을 갖는 변수, 메서드, 클래스를 생성할 수 있습니다.
- final 변수는 상수로 사용되며, 관례상 대문자로 작성됩니다.
- final 메서드와 클래스는 상속과 관련된 문제를 방지할 수 있습니다.
- final 제어자는 코드의 안정성과 유지보수성을 향상시키는데 기여할 수 있습니다.

 

With ChatGPT

'JAVA > 포스팅' 카테고리의 다른 글

자바 abstract 제어자  (0) 2023.11.12
자바 static 제어자  (0) 2023.11.12
자바 private 제어자  (0) 2023.11.11
자바 default 제어자  (0) 2023.11.11
자바 protected 제어자  (0) 2023.11.11