Solucionado (ver solução)
Solucionado
(ver solução)
5
respostas

Não entendi a finalidade do modificador static

Pessoal, assisti 3x a vídeo aula, eu até entendi o pra o que é o atributo static (um atributo pertencente a classe), mas qual a sua finalidade? Quando eu devo usar? Devo usar somente para definir um identificador a um objeto?. Alguém poderia me dar um exemplo comparando o static com algo da vida real, pra eu ver se absorvo melhor?

5 respostas

Oi Uma boa resposta a sua dúvida está nesse tópico. http://pt.stackoverflow.com/questions/17015/qual-o-uso-de-uma-vari%C3%A1vel-est%C3%A1tica-ou-final-em-java Nesse link

Abraços

Num jogo por exemplo, você poderia ter um atributo e métodos de manipulação statics para para guardar a pontuação desse jogo, por exemplo: o jogo tem várias fases e na primeira fase você fez 100 pontos, só que na segunda fase a primeira deixaria de existir e os 100 pontos seriam perdidos, porém guardando esses pontos num atributo static você manteria seus pontos em todas as fases.

Outro uso é na criação de constantes, exemplo:

Quero criar uma class para guardar constantes matemática: Pi = 3,1415, e = 2.7182, ...; o valor deles não dependem de nenhum objeto, por isso seriam atributos de class.

Obrigado Jõao agora ficou bem mais claro pra mim, era exatamente isso que eu precisava, uma comparação do static com alguma coisa do mundo real. Então, para concluir a minha linha de raciocínio, eu devo usar o static, toda vez que eu precisar armazenar esse valor e recuperar ele em outras instâncias de forma a acrescentar esse valor?

Quanto ao Daniel, muito obrigado pela postagem e pela ajuda! Mas, a primeira coisa que eu fiz quando estava com a dúvida foi procurar esclarecimento no google. Por favor não leve a mal, mas se fosse para pesquisar um artigo no google eu mesmo o teria feito. Mas, muito obrigado pelo interesse em querer ajudar!

solução!

Oi Felipe,

Você entendeu o que acontece quando um atributo é declarado como estático? Ele vira algo como "uma variável global da classe". Ou seja, todas as instâncias enxergam o mesmo valor. É uma variável única para todas elas.

Vou dar um exemplo de jogo. Imagine que você tem a classe Monstro, e monstros só atacam se existirem ao meons 3 monstros no mapa. Você poderia ter um contador de monstros, como um atributo estático.

Esse é um exemplo. Ao longo dos seus cursos, você vai ver que usar static é geralmente uma má prática, e normalmente temos uma maneira mais elegante de refatorar o código. Nesse momento, foque em entender a consequência do static.

Um abraço!