public class Conta {
double saldo = 100;
int agencia;
int numero;
Cliente titular = new Cliente();
É dito o seguinte: "No nosso projeto não é uma opção muito interessante, pois toda a conta tem de ser associada à um cliente novo, banindo a possibilidade de um cliente ter duas contas, por exemplo. Porém, em muitos casos, essa é uma alternativa interessante."
diz que não há a possibilidade de um cliente ter duas contas, mas se por exemplo eu dizer quer:
Conta minhaConta1 = new Conta();
Conta minhaConta2 = new Conta();
Cliente lucas = minhaConta1.titular; //crio uma referencia que tem como valor
//o mesmo que a referencia titular
minhaConta2.titular = lucas; // entao digo que a referencia titular da conta 2
//tem o mesmo valor da referencia lucas que tem
//como valor a referencia titular da conta 1
//ou seja, o mesmo cliente
posso declara dessa forma ou simplesmente fazendo algo mais direto:
minhaConta1.titular = minhaConta2.titular;
Fiz os testes aqui e constatei que as contas são diferentes mas que são acessadas pela mesma referencia, que seria no caso o mesmo cliente, isso se eu quisesse dizer que posso ter 2 contas ou mais por cliente.
Então eu fiquei em duvida se a afirmação de vocês esta realmente correta, pq pelo meu ponto de vista da pra atribuir ao mesmo cliente contas diferentes simplesmente atribuindo o valor da variável de referencia que acessa o objeto cliente a uma variável de referencia em comum para ser utilizado nas duas contas, ou atribuindo o valor da referencia titular de uma conta a outra.