Atributos e métodos estáticos em Java pertencem à classe e não a uma instância específica de um objeto. Isso significa que você pode acessar atributos e métodos estáticos sem precisar criar uma instância da classe. Eles são comuns para funcionalidades que não dependem do estado de objetos individuais, mas sim de características da própria classe.
Um atributo estático (também chamado de variável de classe) é compartilhado por todas as instâncias da classe. Ou seja, todas as instâncias da classe possuem o mesmo valor para esse atributo, e ele é acessado diretamente pela classe ou por uma instância.
Características:
Exemplo:
class Contador {
static int count = 0; // Atributo estático
public Contador() {
count++; // Incrementa o valor de count sempre que um novo objeto é criado
}
public static void mostrarContagem() {
System.out.println("Contagem: " + count);
}
}
public class Main {
public static void main(String[] args) {
new Contador();
new Contador();
Contador.mostrarContagem(); // Exibe "Contagem: 2"
}
}
Um método estático pertence à classe e pode ser chamado sem a necessidade de instanciar um objeto. Ele não pode acessar diretamente atributos ou métodos de instância (não está ligado a um objeto específico), mas pode acessar outros membros estáticos.
Características:
Exemplo:
class Matematica {
static int somar(int a, int b) {
return a + b; // Método estático
}
}
public class Main {
public static void main(String[] args) {
int resultado = Matematica.somar(5, 10); // Chamando método estático sem instanciar a classe
System.out.println("Resultado: " + resultado); // Exibe "Resultado: 15"
}
}
Acompanhe abaixo o vídeo, onde exemplifico o uso de atributos e métodos estáticos: