En "Análisis en profundidad basado en el papel de las clases internas de Java", puede comprender algunas cosas sobre las clases internas de Java, pero todavía hay algunos lugares en las clases internas que merecen nuestro estudio cuidadoso...
A continuación se muestran algunas cosas sobre las clases internas de Java que he resumido y compartido con ustedes....
uno: las clases internas estáticas pueden tener miembros estáticos, pero las clases internas no estáticas no pueden tener miembros estáticos.
¿Cómo entender esto?
Eche un vistazo al código a continuación:
Prueba de clase pública {
número entero privado = 1;
// Las clases internas no estáticas pueden tener miembros no estáticos
prueba interna de clase privada {
// error Las clases internas no estáticas no pueden tener miembros estáticos
// privado estático int inNumber = 2;
privado int enNúmero = 2;
prueba interna pública() {
establecerNúmero(2);
enNúmero = enNúmero + número;
System.out.println("innerTest---" + inNumber);
}
}
//Método privado de prueba
número de conjunto vacío privado (número int) {
este.número = número;
}
//Constructor
prueba pública() {
Prueba Interna en = nueva Prueba Interna();
System.out.println("prueba");
}
público estático vacío principal (String [] argumentos) {
Prueba prueba = nueva prueba();
// prueba interna---4
// prueba
}
}
Prueba de clase pública {
número int estático privado = 1;
nombre de cadena privada = "prueba";
// clase interna estática
clase estática privada InnerTest {
// Las clases internas estáticas pueden tener miembros no estáticos
privado int enNúmero = 2;
prueba interna pública() {
//Las clases internas estáticas pueden acceder a miembros estáticos de clases externas
establecerNúmero(2);
enNúmero = enNúmero + número;
System.out.println("innerTest---" + inNumber);
//error la clase interna estática no puede acceder a miembros no estáticos de la clase externa
//System.out.println(nombre);
}
}
//Método privado estático de prueba
conjunto de vacío estático privadoNumber(int n) {
número = norte;
}
//Constructor
prueba pública() {
Prueba Interna en = nueva Prueba Interna();
System.out.println("prueba");
}
público estático vacío principal (String [] argumentos) {
Prueba prueba = nueva prueba();
// prueba interna---4
// prueba
}
}
¿Es fácil de entender...?
Para resumir: