¿Qué sucede cuando un miembro dentro de un classse declara como static...? Se puede acceder a los miembros sin crear instancias de class. Por lo tanto, hacer una clase externa (clase de nivel superior) staticno tiene sentido. Por lo tanto, no está permitido.
Pero puede establecer clases internas como estáticas (ya que es un miembro de la clase de nivel superior). Entonces se puede acceder a esa clase sin instanciar la clase de nivel superior. Considere el siguiente ejemplo.
public class A {
public static class B {
}
}
Ahora, dentro de una clase diferente C, Bse puede acceder a la clase sin hacer una instancia de clase A.
public class C {
A.B ab = new A.B();
}
staticLas clases también pueden tener non-staticmiembros. Solo la clase se vuelve estática.
Pero si la staticpalabra clave se elimina de la clase B, no se puede acceder directamente sin hacer una instancia de A.
public class C {
A a = new A();
A.B ab = a. new B();
}
Pero no podemos tener staticmiembros dentro de una non-staticclase interna.