Olá boa tarde!
Poderia ajudar-me a perceber melhor esta questão da associação entre a classe Cliente e a classe Conta através dos códigos abaixo:
A minha dúvida é:
Percebi que o tipo da variável de classe 'titular' foi alterada de String para o tipo Cliente. Até aí ok!
Mas pq ou como essa variável (contaDoGuilherme.titular
), após termos os objetos Cliente
e Conta
instânciados, recebe diretamente o valor Guilherme Amorim
que está atribuido a guilherme.nome
e não recebe outros valores já populados nas variáveis cpf
e profissão
visto serem todas do mesmo tipo String dentro da classe Cliente
?
class Main
public class TestaBanco {
public static void main(String[] args) {
Cliente guilherme = new Cliente();
guilherme.nome = "Guilherme Amorim";
guilherme.cpf = "222.222.222-22";
guilherme.profissao = "Programador";
//System.out.println(guilherme);
Conta contaDoGuilherme = new Conta();
//contaDoGuilherme.deposita(100);
contaDoGuilherme.titular = guilherme;
System.out.println("Titular da conta: " + contaDoGuilherme.titular.nome+ ", id: "+ contaDoGuilherme.titular);
}
}
class Conta
public class Conta {
double saldo;
int agencia=42;
int numero;
Cliente titular;
public void deposita(double valor) {
this.saldo += valor;
}
public boolean saca(double valor) {
if(this.saldo >= valor) {
this.saldo -= valor;
return true;
}else {
return false;
}
}
public boolean transfere(double valor, Conta destino){
if(this.saldo >= valor) {
this.saca(valor); //using a method from the class Conta
destino.deposita(valor); //using a method from the class Conta
return true;
}
return false;
}
}
class Cliente
public class Cliente {
String cpf;
String nome;
String profissao;
}