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

[Dúvida] Get e Set

Olá, eu não consegui entender muito bem a diferença entre o Get e o Set, poderiam me explicar ? E se tiver algum link explicando sobre o assunto eu agradeço. ;)

2 respostas
solução!

Oi, Gabriel!

Entendo que você esteja com dúvidas sobre os métodos Get e Set, eles são fundamentais quando falamos de encapsulamento em Orientação a Objetos, principalmente em Java. Vamos lá:

O método Get é utilizado quando queremos acessar o valor de um atributo de um objeto. No exemplo que você está estudando, temos o método getSaldo(). Esse método retorna o valor do saldo da conta. Ou seja, se tivermos um objeto do tipo Conta e quisermos saber o saldo dessa conta, usaremos esse método.

Por outro lado, o método Set é usado quando queremos modificar o valor de um atributo de um objeto. No mesmo exemplo, temos o método setNumero(int numero). Esse método é usado para definir o número da conta. Se tivermos um objeto do tipo Conta e quisermos definir ou alterar o número dessa conta, usaremos esse método.

Agora, sobre o link que você pediu, eu recomendaria este artigo sobre Get e Set em Java: Artigo sobre Get e Set. Ele explica bem detalhadamente e com exemplos práticos sobre o assunto.

Sobre a questão do exercício, a resposta correta é a opção D "A classe não deveria ter o método setSaldo". Isso porque, em um cenário real, não queremos que o saldo de uma conta possa ser definido arbitrariamente, certo? O saldo deve ser controlado apenas pelas operações de saque e depósito, por isso o método setSaldo não deveria existir.

Espero ter ajudado e bons estudos!

edit: Um exemplo offline:

Vamos imaginar que você tem uma caixa de ferramentas. O "get" seria como olhar dentro da caixa para ver qual ferramenta está lá, sem mudar nada. O "set" seria como colocar uma nova ferramenta (um alicate de bico talvez?) ou trocar uma ferramenta da caixa. Então, "get" pega informações e "set" coloca ou muda informações.

Muito Obrigado! Consegui entender com o exemplo ;)