Estudei static em cursos anteriores mas assistindo esse aulas java.lang me retornou a duvida de quando é necessário usar static seja em atributo ou método. Alguém sabe me dizer ?
Estudei static em cursos anteriores mas assistindo esse aulas java.lang me retornou a duvida de quando é necessário usar static seja em atributo ou método. Alguém sabe me dizer ?
Olá Henrique, tudo bem com você?
a palavra-chave static
dentro do contexto de uma classe, significa que o atributo ou método pertence à classe, e não ao objeto criado a partir da classe. Como assim?
class Bolo{
private static quantidadeDeBolos = 0;
private String sabor;
private boolean recheio;
public Bolo(){
quantidadeDeBolos++;
}
public static getQuantidade(){
return quantidadeDeBolos;
}
}
No código acima, a classe bolo tem o atributo static
quantidadeDeBolos que pertence à classe Bolo. Na prática, isso significa que cada Bolo criado a partir desse molde não vai ter esse atributo, apenas o atributo sabor e se ele tem recheio.
Nesse caso, o atributo static funciona como um contador de quantos bolos foram criados a partir da classe Bolo, e para acessar essa quantidade podemos utilizar o método static a partir da própria classe!
Bolo.getQuantidade()
Que vai retornar quantos objetos bolo já foram criados com essa classe.
A palavra static causa um pouco de confusão no ínicio, por isso vou deixar alguns materiais complementares para ficar mais claro o funcionamento:
static keyword in java(GeeksForGeeks) - guia da palavra-chave static do GeeksForGeeks, que está em inglês, mas caso seja necessário você pode utilizar a ferramenta de tradução do seu navegador!
static keyword in java(JavaAtPoint) - guia do JavaAtPoint, que também está em inglês mas caso necessário você pode utilizar a ferramenta de tradução do navegador.
Ambos os guias detalham com mais exemplos a diferença de um membro da instância versus um membro da classe (static), para melhor compreensão do tema!
Me coloco à disposição e bons estudos!