> Java > java지도 시간 > Java로 봉인된 클래스 마스터하기

Java로 봉인된 클래스 마스터하기

WBOY
풀어 주다: 2024-07-26 07:43:33
원래의
351명이 탐색했습니다.

Mastering Sealed Classes in Java

Java 15에서 미리보기 기능으로 도입되고 Java 17에서 영구적으로 제공되는 봉인된 클래스를 사용하면 개발자가 확장하거나 구현할 수 있는 클래스를 제어할 수 있습니다. 이 기능은 작지만 강력한 기능으로 Java 언어를 향상시켜 개발자 생산성을 향상시키는 것을 목표로 하는 Project Amber의 일부입니다.

봉인 클래스란 무엇입니까?

봉인 클래스는 자신을 확장하거나 구현할 수 있는 다른 클래스나 인터페이스를 제한하는 새로운 종류의 클래스입니다. 이는 보다 강력하고 유지 관리 가능한 유형 계층 구조를 제공하기 위해 수행됩니다. 봉인 클래스를 정의할 때 허용되는 하위 클래스 세트를 지정합니다.

봉인 수업의 장점

  1. 제어된 상속: 봉인된 클래스를 확장할 수 있는 클래스를 지정하면 클래스 계층 구조를 더 잘 제어할 수 있으며 클래스 계층 구조를 잘 정의되고 유지 관리하기 쉽게 유지할 수 있습니다.
  2. 철저한 패턴 일치: 봉인된 클래스는 패턴 일치 기능과 잘 작동하므로 컴파일러는 가능한 모든 사례가 포함되는지 확인할 수 있습니다.
  3. 향상된 가독성 및 유지 관리: 명확하게 정의된 상속 구조는 코드 가독성과 유지 관리를 향상시킵니다.

봉인 클래스 정의

봉인된 클래스를 정의하려면 봉인된 키워드를 사용하고 allowed 절로 허용되는 하위 클래스를 지정합니다. 예는 다음과 같습니다.

public sealed class Shape permits Circle, Rectangle, Square {
    // class body
}

public final class Circle extends Shape {
    // class body
}

public final class Rectangle extends Shape {
    // class body
}

public final class Square extends Shape {
    // class body
}
로그인 후 복사

이 예에서 Shape는 봉인된 클래스이며 Circle, Rectangle 및 Square만 확장할 수 있습니다. 각 하위 클래스는 최종, 봉인 또는 비봉인이어야 합니다.

봉인된 클래스 사용

봉인된 클래스는 하위 클래스 집합이 알려져 있고 고정되어 있는 계층 구조를 모델링하는 데 사용할 수 있습니다. 이는 도메인 모델링 및 대수 데이터 유형으로 작업할 때 특히 유용합니다.

다음은 패턴 일치와 함께 봉인 클래스를 사용하는 예입니다.

public class SealedClassExample {
    public static void main(String[] args) {
        Shape shape = new Circle(5);

        String result = switch (shape) {
            case Circle c -> "Circle with radius " + c.radius();
            case Rectangle r -> "Rectangle with width " + r.width() + " and height " + r.height();
            case Square s -> "Square with side " + s.side();
        };

        System.out.println(result);
    }
}
로그인 후 복사

이 예에서는 스위치 표현식을 사용하여 다양한 유형의 Shape를 처리합니다. Shape가 봉인되어 있기 때문에 컴파일러는 가능한 모든 경우가 포함되도록 보장할 수 있습니다.

결론

봉인된 클래스는 Java에 추가된 강력한 기능으로, 클래스 계층 구조에 대한 더 나은 제어 기능을 제공하고 코드 가독성과 유지 관리성을 향상시킵니다. 봉인 클래스를 사용하면 Java 애플리케이션에서 더욱 강력하고 잘 정의된 유형 시스템을 만들 수 있습니다.

위 내용은 Java로 봉인된 클래스 마스터하기의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:dev.to
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿