Dans "Analyse approfondie basée sur le rôle des classes internes Java", vous pouvez comprendre certaines choses sur les classes internes Java, mais il y a encore des endroits dans les classes internes qui méritent notre étude attentive...
Vous trouverez ci-dessous quelques éléments sur les classes internes Java que j'ai résumés et partagés avec vous....
un : les classes internes statiques peuvent avoir des membres statiques, mais les classes internes non statiques ne peuvent pas avoir de membres statiques.
Comment comprendre cela ?
Jetez un œil au code ci-dessous :
Test de classe publique {
numéro int privé = 1 ;
// Les classes internes non statiques peuvent avoir des membres non statiques
classe privée InnerTest {
// erreur Les classes internes non statiques ne peuvent pas avoir de membres statiques
// int statique privé inNumber = 2 ;
private int inNumber = 2 ;
public InnerTest() {
setNuméro(2);
inNumber = inNumber + nombre ;
System.out.println("innerTest---" + inNumber);
}
}
//Méthode de test privée
private void setNumber (numéro int) {
this.number = nombre ;
}
//Constructeur
Test public() {
InnerTest dans = new InnerTest();
System.out.println("test");
}
public static void main (String[] arguments) {
Test test = nouveau Test();
// Test intérieur --- 4
// test
}
}
Test de classe publique {
numéro entier statique privé = 1 ;
nom de chaîne privé = "test" ;
// classe interne statique
classe statique privée InnerTest {
// Les classes internes statiques peuvent avoir des membres non statiques
private int inNumber = 2 ;
public InnerTest() {
//Les classes internes statiques peuvent accéder aux membres statiques des classes externes
setNuméro(2);
inNumber = inNumber + nombre ;
System.out.println("innerTest---" + inNumber);
// erreur, la classe interne statique ne peut pas accéder aux membres non statiques de la classe externe
//System.out.println(nom);
}
}
//Méthode privée statique de test
private static void setNumber(int n) {
nombre = n ;
}
//Constructeur
Test public() {
InnerTest dans = new InnerTest();
System.out.println("test");
}
public static void main (String[] arguments) {
Test test = nouveau Test();
// Test intérieur --- 4
// test
}
}
Est-ce facile à comprendre...
Pour résumer :