1
resposta

Duvidas

Nao entendi.... qual a diferenca de nome para titular?? pq ele nao faz um extends da classe conta para class cliente, mas colocou Cliente no atributo tutular da class Cliente nao entendi nada.........., p min era so dar um extends na class cliente, ou estou confuncindo e ele esta fazendo outra coisa??

1 resposta

Olá Renata, tudo bem?

Entendo que a Orientação a Objetos pode ser um pouco confusa no começo, mas vamos esclarecer suas dúvidas.

Primeiramente, a diferença entre nome e titular é que nome é um atributo da classe Cliente, referindo-se ao nome do cliente, enquanto titular é um atributo da classe Conta, que é uma referência a um objeto do tipo Cliente. Ou seja, titular não é uma String, mas sim um objeto Cliente.

Quanto à sua dúvida sobre o uso de extends, é importante ressaltar que extends é utilizado para representar uma relação de herança entre classes, ou seja, quando uma classe é uma subclasse de outra. No caso apresentado, Cliente e Conta são classes distintas e não possuem uma relação de herança entre si.

O que acontece aqui é uma relação de composição: uma Conta possui um Cliente como titular. Por isso, em vez de usar extends, nós definimos Cliente como o tipo do atributo titular na classe Conta. Isso significa que cada Conta terá uma referência a um objeto Cliente, que será o titular da conta.

Por exemplo, quando fazemos:

Cliente paulo = new Cliente(); 
paulo.nome = "Paulo Silveira";
paulo.cpf = "222.222.222-22";
paulo.profissao = "programador";

Conta contaDoPaulo = new Conta(); 
contaDoPaulo.deposita(100);

contaDoPaulo.titular = paulo; 

Estamos criando um novo Cliente chamado paulo e uma nova Conta chamada contaDoPaulo. Em seguida, estamos dizendo que o titular da contaDoPaulo é o Cliente paulo. Ou seja, estamos associando o Cliente paulo à Conta contaDoPaulo.

Espero ter ajudado e bons estudos!