Sobes.tech
Junior

¿Para qué aplicaciones es adecuado el modificador static?

sobes.tech AI

Respuesta de la IA

  1. Variables de clase (campos estáticos): Para almacenar datos comunes a todas las instancias de la clase. Por ejemplo, un contador de objetos creados o constantes.
  2. Métodos de clase (métodos estáticos): Para realizar acciones que no dependen de una instancia concreta de la clase. Por ejemplo, funciones auxiliares o métodos para trabajar con campos estáticos.
  3. Bloques de inicialización estáticos: Para realizar una inicialización compleja de campos estáticos al cargar la clase.
  4. Clases internas estáticas: Para agrupar lógicamente clases relacionadas o para usarlas como clases auxiliares sin referencia a un objeto externo.

Ejemplos:

public class MyClass {
    // Campo estático (constante)
    public static final int MAX_COUNT = 100;

    // Campo estático (contador de instancias)
    private static int instanceCount = 0;

    // Bloque de inicialización estático
    static {
        System.out.println("MyClass cargada.");
    }

    public MyClass() {
        instanceCount++;
    }

    // Método estático
    public static int getInstanceCount() {
        return instanceCount;
    }

    // Clase interna estática
    public static class StaticInnerClass {
        public void doSomething() {
            System.out.println("En la clase interna estática.");
        }
    }
}

Tabla comparativa de miembros estáticos y no estáticos:

Característica Miembro estático Miembro no estático
Relación con objeto Pertenece a la clase Pertenece a la instancia
Acceso A través del nombre de la clase o un objeto A través del objeto
Inicialización Al cargar la clase Al crear el objeto
Memoria Se asigna una vez Se asigna para cada objeto