¿Existe algo parecido a la "clase estática" en java?
¿Cuál es el significado de esta clase? ¿Todos los métodos de la clase estática tienen que ser también estáticos
?
¿Es necesario al revés, que si una clase contiene todos los métodos estáticos, la clase sea también estática?
¿Para qué sirven las clases estáticas?
Bueno, Java tiene "clases anidadas estáticas", pero no son en absoluto lo mismo que las clases estáticas de C#', si es de ahí de donde venías. Una clase estática anidada es simplemente una que no tiene implícita una referencia a una instancia de la clase externa.
Las clases estáticas anidadas pueden tener métodos de instancia y métodos estáticos.
No existe una clase estática de nivel superior en Java.
Existe una [clase anidada] estática1, esta clase [anidada estática] no necesita una instancia de la clase que la encierra para poder instanciarse.
Estas clases [estáticas anidadas] sólo pueden acceder a los miembros estáticos de la clase adjunta [ya que no tiene ninguna referencia a instancias de la clase adjunta...]
ejemplo de código:
public class Test {
class A { }
static class B { }
public static void main(String[] args) {
/*will fail - compilation error, you need an instance of Test to instantiate A*/
A a = new A();
/*will compile successfully, not instance of Test is needed to instantiate B */
B b = new B();
}
}