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 :)