Maison  >  Article  >  Java  >  Quelles sont les principales différences entre les classes imbriquées statiques et non statiques en Java ?

Quelles sont les principales différences entre les classes imbriquées statiques et non statiques en Java ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-09 22:41:02652parcourir

What are the Key Differences between Static and Non-Static Nested Classes in Java?

Classes imbriquées statiques et non statiques en Java

Les classes imbriquées, également connues sous le nom de classes internes, permettent de regrouper les classes liées. dans un seul fichier source. Cependant, il existe des différences clés entre les classes imbriquées statiques et non statiques.

Classes imbriquées statiques

Contrairement aux classes imbriquées non statiques, les classes imbriquées statiques n'ont pas accès aux champs ou méthodes non statiques de la classe englobante. Elles sont déclarées à l'aide du mot-clé static dans la classe englobante.

public class OuterClass {

    private int x;

    public static class StaticNestedClass {

        public void doSomething() {
            // Cannot access 'x' as it is non-static
        }
    }
}

Classes imbriquées non statiques

Les classes imbriquées non statiques, également appelées classes internes, ont accès aux membres statiques et non statiques de la classe englobante. Ils peuvent accéder directement aux champs et méthodes non statiques, ainsi qu'aux membres statiques à l'aide de la syntaxe OuterClass.staticMember.

public class OuterClass {

    private int x;

    public class NonStaticNestedClass {

        public void doSomething() {
            System.out.println(x);
        }
    }
}

Différences clés

  • Dépendance d'instance : Les classes imbriquées statiques ne dépendent pas d'une instance de la classe englobante, contrairement aux classes imbriquées non statiques.
  • Accès à la classe englobante : Les classes imbriquées statiques ne peuvent pas accéder membres non statiques de la classe englobante, tandis que les classes imbriquées non statiques le peuvent.
  • Création : Les classes imbriquées statiques peuvent être créées sans créer d'instance de la classe englobante, tandis que les classes imbriquées non statiques peuvent Les classes imbriquées doivent être créées dans une instance de la classe englobante.

Exemple d'utilisation

  • Les classes imbriquées statiques sont utiles pour définir des classes utilitaires ou d'assistance qui sont logiquement liés à la classe englobante mais ne nécessitent pas d'accès à ses données spécifiques à l'instance.
  • Les classes imbriquées non statiques conviennent pour définir des classes qui doivent interagir étroitement avec la classe englobante et avoir accès à ses état interne.

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!

Déclaration:
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