Sobes.tech
Junior

O que são variáveis estáticas?

sobes.tech IA

Resposta da IA

As variáveis estáticas pertencem à classe, não a uma instância específica. Elas existem numa única instância durante toda a execução do programa e são partilhadas por todos os objetos dessa classe. Alterar uma variável estática por um objeto será visível para outros objetos.

Características principais:

  • Pertencem a: À classe.
  • Número de instâncias: Uma por classe.
  • Tempo de vida: Desde o carregamento da classe até à finalização do programa.
  • Acesso: Geralmente pelo nome da classe ClassName.staticVariable, embora também seja possível aceder através de uma instância (não recomendado).
  • Inicialização: Uma única vez ao carregar a classe.

Exemplos de uso:

  • Contadores de objetos criados da classe.
  • Constantes comuns a toda a classe.
  • Recursos partilhados geridos pela classe.

Exemplo em Java:

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

    public MyClass() {
        counter++; // Incrementa o contador estático ao criar um objeto
    }

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

        System.out.println(MyClass.counter); // Saída: 2
    }
}

Exemplo em Python:

class MyClass:
    counter = 0  # Variável estática

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

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

        print(MyClass.counter) # Saída: 2

    if __name__ == "__main__":
        main()