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

Dúvida sobre setar titular da conta

Antes de por os atributos como privados eu estava atribuindo o titular da conta dessa maneira:

primeiraConta.titular = new Cliente();

Porém, depois de passá-los para privado, isso não funciona mais e não entendi o motivo. Para que funcionasse preciso usar:

Cliente cliente1 = new Cliente();
primeiraConta.setTitular(cliente1);

Tentei usar

primeiraConta.setTitular = new Cliente();

mas não funcionou :c Gostaria de entender o motivo. E se seria possível fazer algo sem precisar usar um

Cliente cliente1 = new Cliente();
primeiraConta.setTitular(cliente1);

Desde já agradeço a atenção.

2 respostas
solução!

Olá Ingrid, tudo bem com você?

Vou responder com partes :)

Porém, depois de passá-los para privado, isso não funciona mais e não entendi o motivo.

Então, quando temos os atributos públicos podemos acessar com a notação ponto, como você fez em primeiraConta.titular

Acontece que quando mudamos para privado não temos mais acesso utilizando a notação ponto, é "como não existisse" para as outras classes (ainda existe mas só temos acesso dentro da própria classe Conta)

E dessa maneira precisamos utilizar as nossa funções para conseguir atribuir valores para os nossos objetos :)

primeiraConta.setTitular = new Cliente();

Dessa maneira não conseguimos pois setTitular é um método da classe e não um atributo, então precisamos utilizar o () para invocá-lo

Por essa mesma razão não podemos utilizar o = new Cliente pois não podemos atribuir valores a invocação de métodos, apenas para atributos

Então o processo é um pouco diferente quando utilizamos os setters:

  • Invocamos um método setter
  • Passamos o dado que queremos colocar dentro do atributo em questão
  • Dentro da classe será atribuído o valor ( como no caso adicionar o titular)

Que foi a maneira como você conseguiu fazer!

E se seria possível fazer algo sem precisar usar um

Então, a única maneira é como você fez no primeiro exemplo, mas para isso o nosso atributo precisa ser público, o que você vai ver ao longo dos cursos que é algo beeeem raro, o mais comum é deixar privado e criar um setAtributo() para deixar o nosso código mais protegido :)

Pode parecer um pouco estranho nos primeiros momentos, mas com o tempo vai se tornando algo mais comum!

Abraços e Bons Estudos :)

Olá Geovani!

Entendi! Muito obrigada pela explicação clara e pelo seu tempo!

Abraços (: