Vantagens do Static - JAVA

Boa noite, Mestres Javeiros :coffee:

A dúvida de hoje está relacionado ao uso da palavra-chave static.
Compreendi que seu uso está relacionado a permanência de um valor a nível de classe e não de instância, ou seja, o valor permanecerá o mesmo (ou variará. Depende do que o louco quer fazer kakakka) sempre que instanciar o objeto.
A objeção é: qual a utilidade? O uso é parecido - pensando em front-end - com Utils?

1. Atributos (variáveis) static:
São como “variáveis globais da classe”. Úteis quando você precisa compartilhar algum dado entre todas as instâncias.

Exemplo clássico:

public class Pessoa {
    static int quantidadeDePessoas = 0;

    public Pessoa() {
        quantidadeDePessoas++;
    }
}

Agora, cada vez que você criar uma nova Pessoa, o contador é incrementado. Todas as instâncias compartilham esse valor.


2. Métodos static:
Você pode chamar sem instanciar a classe. Muito usado em classes utilitárias.

public class MathUtils {
    public static int somar(int a, int b) {
        return a + b;
    }
}

Uso:

int resultado = MathUtils.somar(3, 4);

Ou seja: sim! É exatamente a ideia das classes Utils no front-end.


:brain: Dica prática

Se seu método não depende de nenhum atributo de instância (this), provavelmente ele deveria ser static.


:warning: Cuidados

  • static não é “mágico” nem “melhor”. Ele acopla fortemente as coisas, pode atrapalhar testes unitários e não respeita bem o paradigma orientado a objetos quando usado sem critério.
  • Evite misturar muita lógica de negócio com static, prefira injeção de dependência e objetos bem modelados.
1 curtida