Java의 final 클래스

Rupam Yadav 2023년10월12일
Java의 final 클래스

이 튜토리얼은 예제를 통해 final 클래스의 주제를 살펴봅니다. final은 변수, 메서드 및 클래스와 함께 다양한 컨텍스트에서 사용할 수 있는 Java의 키워드입니다.

모든 컨텍스트에서 액세스를 어느 정도 제한합니다. 최종 수업에 대해 논의할 것입니다.

final 클래스를 사용하여 Java에서 클래스 제한

final 키워드가 있는 클래스를 최종 클래스라고 합니다. 클래스와 함께 final 키워드를 사용하여 클래스가 다른 클래스에 상속되도록 제한합니다.

확장을 확보하고 싶을 때 클래스를 final로 만듭니다. 최종 클래스는 변경할 수 없고 변경할 수 없기 때문에 장점 중 하나는 보안입니다.

아래 예제에는 두 개의 클래스가 있습니다. 첫 번째 클래스 ExampleClass1에는 main() 메서드가 있고 두 번째 클래스 ExampleClass2에서는 final 키워드를 사용하여 최종 클래스로 만듭니다.

ExampleClass1에서 extends 키워드를 사용하여 ExampleClass2를 확장하면 최종 클래스를 상속할 수 없다는 출력 오류가 발생합니다.

class ExampleClass1 extends ExampleClass2 {
  public static void main(String[] args) {}
}

final class ExampleClass2 {
  int abc = 30;
}

출력:

java: cannot inherit from final com.tutorial.ExampleClass2

최종 클래스를 확장할 수는 없지만 클래스의 속성이나 메서드에 액세스하려면 어떻게 해야 할까요?

final 키워드를 사용하는 경우 클래스를 확장할 수 없지만 해당 객체를 생성하여 해당 함수와 변수에 액세스할 수 있습니다.

예제에는 두 개의 클래스가 있습니다. 하나는 최종 클래스 ExampleClass2이고 다른 클래스 ExampleClass1main() 메서드를 실행하는 데 필요합니다.

ExampleClass2 클래스의 객체를 생성하고 정수 변수 abc 값을 출력합니다.

여기서 상속을 사용하지 않기 때문에 final일 때도 클래스와 해당 변수에 액세스할 수 있습니다.

class ExampleClass1 {
  public static void main(String[] args) {
    ExampleClass2 exampleClass2 = new ExampleClass2();
    System.out.println(exampleClass2.abc);
  }
}

final class ExampleClass2 {
  int abc = 30;
}

출력:

30
작가: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.

LinkedIn