Em Java, a palavra-chave static é usada para criar membros (métodos e campos) de uma classe que pertencem à classe em vez de instâncias individuais da classe. Aqui estão exemplos de como aplicar a palavra-chave static a métodos e campos:
Método Estático:
public class ExemploMetodoEstatico {
public static void main(String[] args) {
// Chamada de método estático diretamente pela classe
int resultado = MinhaClasse.somar(5, 3);
System.out.println("Resultado da soma: " + resultado);
// Também pode ser chamado através de uma instância da classe
MinhaClasse instancia = new MinhaClasse();
int resultadoInstancia = instancia.subtrair(8, 3);
System.out.println("Resultado da subtração: " + resultadoInstancia);
}
}
class MinhaClasse {
// Método estático para somar dois números
static int somar(int a, int b) {
return a + b;
}
// Método não estático (método de instância) para subtrair dois números
int subtrair(int a, int b) {
return a - b;
}
}
No exemplo acima, somar é um método estático, o que significa que ele pertence à classe MinhaClasse e pode ser chamado diretamente pela classe ou através de uma instância da classe.
Campo Estático:
public class ExemploCampoEstatico {
public static void main(String[] args) {
// Acesso ao campo estático diretamente pela classe
System.out.println("Contagem de instâncias: " + MinhaClasse.contagemInstancias);
// Criação de instâncias da classe
MinhaClasse instancia1 = new MinhaClasse();
MinhaClasse instancia2 = new MinhaClasse();
// Acesso ao campo estático através de uma instância (não é a prática recomendada)
System.out.println("Contagem de instâncias através de instância: " + instancia1.contagemInstancias);
}
}
class MinhaClasse {
// Campo estático para manter a contagem de instâncias
static int contagemInstancias = 0;
// Construtor incrementa a contagem de instâncias
MinhaClasse() {
contagemInstancias++;
}
}
No exemplo acima, contagemInstancias é um campo estático que mantém a contagem total de instâncias da classe MinhaClasse. A palavra-chave static faz com que esse campo pertença à classe, e não a instâncias individuais.
O uso de membros estáticos é útil quando você quer que algo seja compartilhado entre todas as instâncias da classe ou quando você deseja acessar membros da classe sem criar uma instância dela.