🔶 O que é static?

O modificador static em Java indica que um campo, método, bloco ou classe interna pertence à própria classe, e não a instâncias da classe. Isso significa que membros estáticos podem ser acessados diretamente pela classe, sem precisar criar objetos.


🔶 Campos Estáticos

🔹 Declaração e Uso

Campos marcados como static são compartilhados por todas as instâncias da classe. Eles pertencem à classe e não a objetos individuais.

public class Exemplo {
    static int contador = 0;

    public Exemplo() {
        contador++;
    }
}

Exemplo obj1 = new Exemplo();
Exemplo obj2 = new Exemplo();

// Outputs: 2
System.out.println(Exemplo.contador);

🔶 Métodos Estáticos

🔹 Declaração e Uso

Métodos estáticos não podem acessar membros de instância diretamente. Eles são chamados pela classe e podem acessar somente outros membros estáticos.

public class Exemplo {
    static void metodoEstatico() {
        System.out.println("Método estático");
    }
}

Exemplo.metodoEstatico();  // Chamada sem instância

🔶 Blocos Estáticos

🔹 Inicialização Estática

Blocos de inicialização estática são executados quando a classe é carregada pela primeira vez. Usados para inicialização de campos estáticos.

public class Exemplo {
    static int valor;

    static {
        valor = 10;
        System.out.println("Bloco estático executado");
    }
}