Méthodes statiques dans les classes internes
Les classes internes non statiques ne peuvent pas avoir de méthodes statiques. Cette restriction découle de la manière dont les classes internes sont associées aux instances de leur classe englobante.
Raisonnement :
Une instance de classe interne existe dans le contexte d'une instance du classe extérieure. Ainsi, il ne peut pas définir indépendamment des méthodes statiques, qui par définition appartiennent à la classe elle-même, et non à des instances spécifiques.
Considérez l'extrait de code :
<code class="java">public class Foo { class Bar { static void method() {} // Compiler error } }</code>
Le compilateur génère une erreur car méthode( ) est déclaré comme statique dans une classe interne non statique Bar.
Classes internes statiques :
En revanche, les classes internes statiques sont définies dans le cadre de la classe interne externe. classe elle-même, sans association directe avec les instances. Par conséquent, ils peuvent contenir des méthodes statiques :
<code class="java">public class Foo { static class Bar { static void method() {} // Valid } }</code>
Modifications Java 16 :
Dans Java 16 et versions ultérieures, les classes internes statiques et non statiques peuvent définir des méthodes statiques. Ce changement a été introduit pour améliorer l'organisation et la flexibilité du code.
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!