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 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 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 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");
}
}