Java/Orientação a Objetos/Static e Final
Java⏱ ~2 min de leitura

Static e Final

Membros de classe e valores imutáveis

A palavra-chave static indica que um membro pertence à classe em si, e não a nenhuma instância específica. Isso significa que você pode chamar um método ou acessar um campo estático sem criar nenhum objeto — basta usar o nome da classe.

final indica imutabilidade ou bloqueio de extensão: uma variável final não pode ser reatribuída após a inicialização, um método final não pode ser sobrescrito em subclasses, e uma classe final não pode ser estendida. String em Java é final — por isso é imutável.

Combinar static e final é a forma idiomática de criar constantes em Java: public static final double PI = 3.14159. Por convenção, constantes são escritas em SNAKE_CASE com letras maiúsculas.

Exemplo.java
public class Matematica {
    // Constante: static + final + MAIÚSCULAS por convenção
    public static final double PI = 3.14159265358979;
    public static final double E  = 2.71828182845904;

    // Método estático: chamado sem criar objeto
    public static double areaCirculo(double raio) {
        return PI * raio * raio;
    }

    public static double potencia(double base, int exp) {
        double resultado = 1;
        for (int i = 0; i < exp; i++) resultado *= base;
        return resultado;
    }

    // Campo estático: compartilhado por TODAS as instâncias
    private static int totalInstancias = 0;

    public Matematica() {
        totalInstancias++; // incrementa a cada new Matematica()
    }

    public static int getTotalInstancias() {
        return totalInstancias;
    }
}

// Uso — sem criar objeto
double area = Matematica.areaCirculo(5.0);  // 78.539...
double cubo = Matematica.potencia(3, 3);    // 27.0

new Matematica();
new Matematica();
System.out.println(Matematica.getTotalInstancias()); // 2
💡 Dica pro

Métodos de utilitário puro (Math.sqrt, Collections.sort, Arrays.fill) são estáticos porque não dependem de estado de instância. Se o método não usa this, considere torná-lo static.

Recompensa+25 XP+exercícios