Junior
Para que aplicações é adequado o modificador static?
sobes.tech IA
Resposta da IA
- Variáveis de classe (campos estáticos): Para armazenar dados comuns a todas as instâncias da classe. Por exemplo, um contador de objetos criados ou constantes.
- Métodos de classe (métodos estáticos): Para realizar ações que não dependem de uma instância concreta da classe. Por exemplo, funções auxiliares ou métodos para trabalhar com campos estáticos.
- Blocos de inicialização estáticos: Para realizar uma inicialização complexa de campos estáticos ao carregar a classe.
- Classes internas estáticas: Para agrupar logicamente classes relacionadas ou para usá-las como classes auxiliares sem referência a um objeto externo.
Exemplos:
public class MyClass {
// Campo estático (constante)
public static final int MAX_COUNT = 100;
// Campo estático (contador de instâncias)
private static int instanceCount = 0;
// Bloco de inicialização estático
static {
System.out.println("MyClass carregada.");
}
public MyClass() {
instanceCount++;
}
// Método estático
public static int getInstanceCount() {
return instanceCount;
}
// Classe interna estática
public static class StaticInnerClass {
public void doSomething() {
System.out.println("Na classe interna estática.");
}
}
}
Tabela comparativa de membros estáticos e não estáticos:
| Característica | Membro estático | Membro não estático |
|---|---|---|
| Relação com o objeto | Pertence à classe | Pertence à instância |
| Acesso | Através do nome da classe ou objeto | Através do objeto |
| Inicialização | Ao carregar a classe | Ao criar o objeto |
| Memória | Alocada uma vez | Alocada para cada objeto |