Evoluindo no conteúdo da aula, não estou conseguindo resolver a seguinte questão:
Sempre que tenho instância uma conta bancária não consigo saber quem é o objeto dono da classe, por exemplo em uma classe Teste (Main) com o código abaixo:
Cliente pessoaFisica = new PessoaFisica("Carlos", "XXX.XXX.XXX-ZZ");
ContaBancaria contaBancaria = new ContaBancaria(pessoaFisica);
Imprimindo no console o objeto contaBancaria a resposta é ContaBancaria.
Alguém sabe o que tenho que mudar nos contrutores para que a resposta morte o dono da conta, que no caso exemplificado é pessoaFisica ???
public class ContaBancaria {
private int saldo;
private Cliente cliente;
private int id;
private static int contador;
// contrutor
public ContaBancaria(Cliente cliente) {
id = ContaBancaria.contador++;
this.cliente = cliente;
}
// métodos
public int depositar(int valorDeposito) {
if (valorDeposito > 0) {
this.saldo = this.saldo + valorDeposito;
return this.saldo;
} else {
return this.saldo;
}
}
public int sacar(int valorSaque) {
if (this.saldo >= valorSaque) {
this.saldo = this.saldo - valorSaque;
return this.saldo;
} else {
return this.saldo;
}
}
// getter and setter
public Cliente getCliente() {
return cliente;
}
public int getSaldo() {
return saldo;
}
public int getId() {
return id;
}
// conta a quantidade de contas instânciadas
public static int getContador() {
return ContaBancaria.contador;
}
}
/////////////////////////////////////////////////////////////////////////
public abstract class Cliente {
private String nome;
// construtor
protected Cliente(String nome) {
this.nome = nome;
}
// getter
public String getNome() {
return nome;
}
}
/////////////////////////////////////////////////////////////////////////
public class PessoaFisica extends Cliente{
private String cpf;
// Contrutor
public PessoaFisica(String nome, String cpf) {
super(nome);
this.cpf = cpf;
}
// getter and setter
public String getCpf() {
return cpf;
}
}
/////////////////////////////////////////////////////////////////////////
public abstract class Cliente {
private String nome;
// construtor
protected Cliente(String nome) {
this.nome = nome;
}
// getter and setter
public String getNome() {
return nome;
}
}