Porque os atributos de Categoria são declarados como final?
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.