Sobes.tech
Junior

Para que aplicações é adequado o modificador static?

sobes.tech IA

Resposta da IA

  1. Variáveis de classe (campos estáticos): Para armazenar dados comuns a todas as instâncias da classe. Por exemplo, um contador de objetos criados ou constantes.
  2. Métodos de classe (métodos estáticos): Para realizar ações que não dependem de uma instância concreta da classe. Por exemplo, funções auxiliares ou métodos para trabalhar com campos estáticos.
  3. Blocos de inicialização estáticos: Para realizar uma inicialização complexa de campos estáticos ao carregar a classe.
  4. Classes internas estáticas: Para agrupar logicamente classes relacionadas ou para usá-las como classes auxiliares sem referência a um objeto externo.

Exemplos:

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

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

    // Bloco de inicialização estático
    static {
        System.out.println("MyClass carregada.");
    }

    public MyClass() {
        instanceCount++;
    }

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

    // Classe interna estática
    public static class StaticInnerClass {
        public void doSomething() {
            System.out.println("Na classe interna estática.");
        }
    }
}

Tabela comparativa de membros estáticos e não estáticos:

Característica Membro estático Membro não estático
Relação com o objeto Pertence à classe Pertence à instância
Acesso Através do nome da classe ou objeto Através do objeto
Inicialização Ao carregar a classe Ao criar o objeto
Memória Alocada uma vez Alocada para cada objeto