Porque os atributos de Categoria são declarados como final?
Você está vendo a versão anterior da nova experiência da Alura que estamos preparando para você. Em breve, ela ganha uma identidade visual novinha totalmente pensada em potencializar seus estudos!
Porque os atributos de Categoria são declarados como final?
Oi Helder, tudo bem? O 'final' é usado para que não se permitam modificações no valor do atributo (neste caso). Em metodos é para que não seja possivél reescre-los, em casos de herança, em resumo é isso.
Mas neste caso, não foi intenção do instrutor, foi o Eclipse que declarou o atributo dessa forma. Perceba que, mesmo não tendo sido intencional, faz sentido que seja assim, certo?
Espero ter ajudado. Bons estudos.
Oi Wanderson, obrigado. Ficaram alguma dúvidas:
1)Neste caso o final só faz sentido nos atributos porque o problema não pede que seja permitida a edição do nome da categoria por exemplo? 2) E no caso do final para a List produtos você não pode atribuir outra List para o atributo mas pode adicionar produtos a ArrayList? Não é possível alterar a referência mas é possível alterar o objeto, é isso?
Sim, até onde sei é isso mesmo. Atributos com final uma vez inicializados, não podem ter seus valores modificados. Em ArrayList, sim, você pode adicionar produtos, mas não pode trocar a referencia. Em casos de String, como essas são imutáveis, não podem ser modificadas.
Vale fazer alguns testes caso queira praticar os conceitos.
Bons estudos.