Tenho uma questão. Simulando uma aplicação de um banco em uns exercícios de encapsulamento, tenho as classes Cliente, Conta e a Teste Conta. Preciso imprimir um atributo protegido da classe cliente, chamando um método da classe Conta dentro da classe Teste conta. Quando tento, imprime sempre “null”, mesmo tendo inicializado a variável na classe Teste conta e atribuído o conteúdo dela à uma variável da classe conta.
Observação: caso tenha uma solução mais enxuta, até prefiro, obrigada.
Segue o código pra tentar explicar melhor:
public class Cliente {
private String nome, sobrenome, cpf;
Cliente(String nomeConta, String sobrenomeConta, String cpfConta)
{
nome = nomeConta;
sobrenome = sobrenomeConta;
cpf = cpfConta;
}
public String getDadosCliente(){
String dadosCliente = "\nTitular: " + nome;
dadosCliente += "\nSobrenome: " + sobrenome;
dadosCliente += "\nCPF: " + cpf;
return dadosCliente;
}
}
public class Conta
{
int numero;
String nomeConta, sobrenomeConta, cpfConta;
Conta(String nomeCliente, String sobrenomeCliente, String cpfCliente)
{
nomeConta = nomeCliente;
sobrenomeConta = sobrenomeCliente;
cpfConta = cpfCliente;
}
Cliente titular = new Cliente(nomeConta, sobrenomeConta, cpfConta);
String agencia;
double saldo;
Data dataAbertura = new Data();
void saca(double vrSaque)
{
saldo -= vrSaque;
}
void deposita(double vrDeposito){
saldo += vrDeposito;
}
double calculaRendimento(){
double rendimento = saldo * 0.1;
return rendimento;
}
void transfere (Conta destino, double valor){
this.saldo -= valor;
destino.saldo += valor;
}
String recuperarDadosParaImpressao(){
String dados = titular.getDadosCliente();
dados += "\nConta: " + numero;
dados += "\nAgência: " + agencia;
dados += "\nO saldo da conta é: R$" + saldo;
dados += "\nCliente desde: " + dataAbertura.formataData(dataAbertura.dia, dataAbertura.mes, dataAbertura.ano);
return dados;
}
}
public class TesteConta
{
public static void main(String[] args){
String nomeCliente = "Bianca";
String sobrenomeCliente = "Nunes";
String cpfCliente = "07881458976";
Conta c1 = new Conta(nomeCliente, sobrenomeCliente, cpfCliente);
c1.numero = 4545;
c1.agencia = "2303";
c1.saldo = 800;
c1.dataAbertura.dia = 5;
c1.dataAbertura.mes = 7;
c1.dataAbertura.ano = 2010;
System.out.println(c1.recuperarDadosParaImpressao());
}
}