Sobes.tech
Junior

¿Qué son las variables estáticas?

sobes.tech AI

Respuesta de la IA

Las variables estáticas pertenecen a la clase, no a una instancia concreta. Existen en una única instancia durante toda la ejecución del programa y son compartidas por todos los objetos de esa clase. Cambiar una variable estática desde un objeto será visible para otros objetos.

Características principales:

  • Pertenece a: La clase.
  • Número de instancias: Una por clase.
  • Tiempo de vida: Desde que se carga la clase hasta que finaliza el programa.
  • Acceso: Generalmente por el nombre de la clase ClassName.staticVariable, aunque también es posible acceder a través de una instancia (no recomendado).
  • Inicialización: Una sola vez al cargar la clase.

Ejemplos de uso:

  • Contadores de objetos creados de la clase.
  • Constantes comunes a toda la clase.
  • Recursos compartidos gestionados por la clase.

Ejemplo en Java:

class MyClass {
    static int counter = 0; // Variable estática

    public MyClass() {
        counter++; // Incrementa el contador estático al crear un objeto
    }

    public static void main(String[] args) {
        MyClass obj1 = new MyClass();
        MyClass obj2 = new MyClass();

        System.out.println(MyClass.counter); // Salida: 2
    }
}

Ejemplo en Python:

class MyClass:
    counter = 0  # Variable estática

    def __init__(self):
        MyClass.counter += 1  # Incrementa el contador estático

    def main():
        obj1 = MyClass()
        obj2 = MyClass()

        print(MyClass.counter) # Salida: 2

    if __name__ == "__main__":
        main()