Cheguei no encapsulamento legal estou com uma duvida por exemplo criei uma classe chamada Funcionario com atribustos nome, cpf tipo string e salario double,quando cria o construtor da classe Funcionario eu preencho com this, set ou get não entendi muito isso normalmente eu faria assim quando não tem o getts e setts eu faria assim:
publicFuncionario(Stringnome,DatadtEntrada,Stringdep,doublesalario){this.setNome(nome);this.setDtEntrada(dtEntrada);this.setDepartamento(dep);this.setSalario(salario);}//Exemplo de método setpublicsetNome(Stringnome){this.nome=nome;}
C
CLAJMCARDOSO
então sempre que trabalharmos com encapsulamento não se deve usar os atributos dentro dos métodos e construtores?
No caso tenho um método chamado calcalculaGanhoAnual como ficaria isso tenho que usar o getters e setters tbm:
ptz agira confundiu tudo criei uma classe TestaFuncinario() como devo fazer a chamada para testa a classe funcinario?
Solucao aceita
pmlm
O encapsulamento é para “esconder” os atributos para fora da classe. Dentro da classe (construtores e métodos) podes e deves (é mais legível) usar o this.atributo como tens no teu exemplo.
C
CLAJMCARDOSO
Agora entendi fica mais limpa o código gostei bora rala mais
esmiralha
Na minha humilde opinião, você sempre deve acessar e atualizar os atributos de um objeto através de métodos getter e setter. Mesmo de dentro do próprio objeto. Um dos motivos para você usar um método getter ou setter e não expor publicamente o atributo é permitir que você tenha algum controle sobre o acesso.
Vamos supor que você queira validar o valor de um atributo antes de atualizar com esse novo valor.
Você nunca vai querer atualizar o campo diretamente mesmo que seja no construtor.
O problema é que muitas vezes setters e getters são tratados como apenas uma formalidade, tipo uma receita de bolo que a gente segue e não sabe bem porque. Nem todo atributo de um objeto deve ser exposto através de getters e setters.
pmlm
Opinião perfeitamente válida
Nesses casos concordo que o uso do set é a melhor maneira.