Maison > Java > javaDidacticiel > Maîtriser les classes scellées en Java

Maîtriser les classes scellées en Java

WBOY
Libérer: 2024-07-26 07:43:33
original
351 Les gens l'ont consulté

Mastering Sealed Classes in Java

Les classes scellées, introduites dans Java 15 en tant que fonctionnalité d'aperçu et rendues permanentes dans Java 17, permettent aux développeurs de contrôler quelles classes peuvent les étendre ou les implémenter. Cette fonctionnalité fait partie du projet Amber, qui vise à améliorer la productivité des développeurs en améliorant le langage Java avec des fonctionnalités petites mais puissantes.

Que sont les classes scellées ?

Les classes scellées sont un nouveau type de classe qui restreint les autres classes ou interfaces qui peuvent les étendre ou les implémenter. Ceci est fait pour fournir une hiérarchie de types plus robuste et maintenable. Lorsque vous définissez une classe scellée, vous spécifiez un ensemble de sous-classes autorisées.

Avantages des classes scellées

  1. Héritage contrôlé : en spécifiant quelles classes peuvent étendre une classe scellée, vous obtenez un meilleur contrôle sur votre hiérarchie de classes et vous assurez qu'elle reste bien définie et facile à maintenir.
  2. Correspondance de modèles exhaustive : les classes scellées fonctionnent bien avec les fonctionnalités de correspondance de modèles, permettant au compilateur de vérifier que tous les cas possibles sont couverts.
  3. Lisibilité et maintenabilité améliorées : des structures d'héritage clairement définies améliorent la lisibilité et la maintenabilité du code.

Définir une classe scellée

Pour définir une classe scellée, vous utilisez le mot-clé scellé et spécifiez les sous-classes autorisées avec la clause permits. Voici un exemple :

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
}
Copier après la connexion

Dans cet exemple, Shape est une classe scellée, et seuls Circle, Rectangle et Square sont autorisés à l'étendre. Chaque sous-classe doit être définitive, scellée ou non scellée.

Utiliser des classes scellées

Les classes scellées peuvent être utilisées pour modéliser des structures hiérarchiques où l'ensemble des sous-classes est connu et fixe. Ceci est particulièrement utile dans la modélisation de domaine et lorsque vous travaillez avec des types de données algébriques.

Voici un exemple d'utilisation de classes scellées avec correspondance de modèles :

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);
    }
}
Copier après la connexion

Dans cet exemple, nous utilisons une expression switch pour gérer différents types de Shape. Le compilateur peut garantir que tous les cas possibles sont couverts car Shape est scellé.

Conclusion

Les classes scellées sont un ajout puissant à Java, offrant un meilleur contrôle sur les hiérarchies de classes et améliorant la lisibilité et la maintenabilité du code. En utilisant des classes scellées, vous pouvez créer des systèmes de types plus robustes et bien définis dans vos applications Java.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal