logo

¿Por qué utilizamos clases estáticas en Java?

En Java, estático es una palabra clave que se puede utilizar con variables, clases, bloques y métodos. Cuando usamos la palabra clave estática antes de cualquiera de ellos, significa que el miembro especificado pertenece a un tipo en sí. En otras palabras, se crea una instancia de un miembro estático y se comparte entre todas las instancias de la clase.

En esta sección usaremos estático palabra clave con el clase java y también entender ¿Por qué usamos una clase estática?

Clase estática de Java

Podemos declarar una clase estática usando la palabra clave estática. Una clase puede ser declarada estática sólo si es una clase anidada . No requiere ninguna referencia de la clase externa. La propiedad de la clase estática es que no nos permite acceder a los miembros no estáticos de la clase externa.

Para entender el concepto de clase estática primero necesitamos entender el concepto de interior exterior, y anidado clase.

clase interna

Las clases que son no estáticas y anidadas se llaman clases internas . Tenga en cuenta que no podemos crear una instancia de la clase interna sin crear una instancia de la clase externa. Sin utilizar la referencia a la instancia de la clase externa, una instancia de la clase interna puede acceder a los miembros de su clase externa. Hace que el programa sea simple y conciso.

Clase exterior

La clase en la que se define la clase anidada se llama clase exterior .

Clase anidada

Java nos permite definir una clase dentro de una clase que se conoce como clase anidada . Puede ser estático o no estático. La principal diferencia entre clases estáticas y no estáticas es que:

  • Se puede crear una instancia de la clase anidada estática sin crear una instancia de su clase externa.
  • Una clase interna puede acceder a los miembros estáticos y no estáticos de una clase externa.
  • Solo la clase estática puede acceder a los miembros estáticos de la clase externa.

Recordar

  • Todas las clases estáticas son clases anidadas, pero viceversa no es cierto.
  • Sólo puede acceder a miembros estáticos de la clase externa.
  • No se puede acceder a los métodos de instancia y variables no estáticas dentro de la clase estática. Si intenta acceder a una referencia no estática desde un campo estático, arroja un error: No se puede hacer una referencia estática al campo no estático.
  • Podemos crear bloques, variables y métodos estáticos dentro de una clase estática.
  • Una clase puede tener varias clases estáticas.
  • No podemos acceder a la clase estática si está dentro del bloque estático.
  • Puede haber cualquier número de clases estáticas dentro de una clase estática.

Ejemplo de clase estática de Java

JavaStaticClassExample.java

 public class JavaStaticClassExample { private static String s= 'Javatpoint'; //Static and nested class static class StaticNestedClass { //non-static method of the nested class public void show() { //prints the string defined in base class System.out.println(s); } } public static void main(String args[]) { JavaStaticClassExample.StaticNestedClass obj = new JavaStaticClassExample.StaticNestedClass(); //invoking the method of the nested class obj.show(); } } 

Producción:

 Javatpoint 

¿Por qué usamos clases estáticas en Java?

En Java, la palabra clave estática se utiliza principalmente para la gestión de la memoria. Podemos usar la palabra clave estática con variables, métodos, bloques y clases. Usar la clase estática es una forma de agrupar clases. También se utiliza para acceder al miembro primitivo de la clase adjunta a través de la referencia del objeto. El cargador de clases carga las clases estáticas en el momento del primer uso, solo que no cuando se carga la clase adjunta.