A palavra-chave static em Java é usada para criar membros de uma classe que pertencem à classe em vez de a instâncias individuais dessa classe. Isso significa que um membro static pode ser acessado sem a necessidade de criar uma instância da classe.
Características do static:
- Membros estáticos:
- Variáveis estáticas: Compartilhadas entre todas as instâncias da classe. Elas são comuns a todas as instâncias e podem ser acessadas diretamente através da classe.
- Métodos estáticos: Podem ser chamados sem a necessidade de criar uma instância da classe. Eles não podem acessar diretamente variáveis e métodos não estáticos da classe.
- Blocos estáticos: Usados para inicializar variáveis estáticas e são executados apenas uma vez, quando a classe é carregada.
- Acesso:
- Membros estáticos podem ser acessados diretamente usando o nome da classe.
- Instâncias não são necessárias para acessar membros estáticos.
Posts recentes
Sintaxe:
Variáveis estáticas:
public class Exemplo {
public static int variavelEstatica = 10;
}
Métodos estáticos:
public class Exemplo {
public static void metodoEstatico() {
System.out.println("Método estático chamado.");
}
}
Blocos estáticos:
public class Exemplo {
static {
// Código de inicialização estática
System.out.println("Bloco estático executado.");
}
}
Exemplos:
Variáveis estáticas:
public class Contador {
public static int count = 0;
public void incrementar() {
count++;
}
public static void mostrarContagem() {
System.out.println("Contagem: " + count);
}
public static void main(String[] args) {
Contador c1 = new Contador();
Contador c2 = new Contador();
c1.incrementar();
c2.incrementar();
// Acessando variável estática diretamente pela classe
Contador.mostrarContagem(); // Saída: Contagem: 2
}
}
Métodos estáticos:
public class Calculadora {
public static int somar(int a, int b) {
return a + b;
}
public static void main(String[] args) {
int resultado = Calculadora.somar(5, 3);
System.out.println("Resultado da soma: " + resultado); // Saída: Resultado da soma: 8
}
}
Bloco estático:
public class Inicializador {
static {
System.out.println("Bloco estático inicializado.");
}
public static void main(String[] args) {
// O bloco estático é executado quando a classe é carregada
System.out.println("Main executado.");
}
}
Considerações:
- Acesso a membros não estáticos: Métodos estáticos não podem acessar diretamente variáveis ou métodos não estáticos. Eles podem apenas acessar outros membros estáticos da classe.
- Uso: O static é útil para criar membros comuns a todas as instâncias de uma classe, como constantes e métodos utilitários.
Restrições:
- Instância: Você não pode usar this ou super em métodos estáticos, pois this e super referem-se a uma instância da classe.
A palavra-chave static é uma ferramenta poderosa para definir comportamentos e dados que são compartilhados entre todas as instâncias de uma classe e para criar métodos utilitários que podem ser usados independentemente de uma instância específica da classe.