Olá, estou com um problema que literalmente está fritando meus “miolos”, segue ele abaixo;
public static void main(String args[]){
Cliente linkCliente = new Cliente();
Cliente c1 = new Cliente();
c1.numero = "115.251";
c1.nome = "Robison";
c1.sobreNome = "Aleixo";
c1.cpf = "254.845.874-1";
linkCliente.adicionar(c1);
c1.mostraCliente ();
Cliente c2 = new Cliente();
c2.numero = "115.252";
c2.nome = "João";
c2.sobreNome = "da Silva e Silva";
c2.cpf = "854.777.654-9";
linkCliente.adicionar(c1);
c2.mostraCliente ();
//c1.linkConta.deposita (1500);
//c1.transferePara (c2, 100);
}
}
class Cliente {
Conta linkConta = new Conta();
String numero;
String nome;
String sobreNome;
String cpf;
Cliente[] clienteadd = new Cliente[10];
int cont;
void adicionar (Cliente c){
if (cont < clienteadd.length) {
clienteadd[cont] = c;
cont++;
}
else {
System.out.println ("Está cheio!!!");
}
}
public void mostraCliente () {
System.out.println ("Número da conta: " + numero);
System.out.println ("Nome do titular: " + nome + " " + sobreNome +
" - CPF:" + cpf + "\n");
}
}
class Conta {
private double saldo;
private double limite = 500;
Cliente clienteLink = new Cliente();
Funcionario funcionario = new Funcionario();
public boolean saca (double valor) {
if (valor > this.saldo + this.limite) { // saca o saldo atual + o limite
return false; //não vai sacar, está sacando mais do que o valor atual
}
else {
this.saldo = this.saldo - valor;
return true;
}
}
public void deposita (double quantidade) {
this.saldo += quantidade;
}
public boolean transferePara (Conta destino, double valor) { //Conta cria uma variável temporaria chamada destino
boolean retirou = this.saca (valor);
if (retirou == false) {
System.out.println ("Sr(a) " + clienteLink.nome + ", sua operação não foi realizada, seu saldo atual é de: " + saldo);
System.out.println ("Valor da operaçõa: " + valor + "\n") ;
return false;
}
else {
destino.deposita (valor);
System.out.println ("Sucesso");
return true;
}
}
public void mostra () {
System.out.println (saldo);
}
}
Quando acrescento a seguinte linha:
Cliente linkCliente = new Cliente();
No objeto Cliente acontece o seguinte erro:
“Exception in thread “main” java.lang.StackOverflowError”
Pelo que andei lendo se trata de um “estouro” da pilha, mais não consegui localizar onde está ocorrendo isso.
Preciso que o obejeto Cliente tenha acesso ao objeto Conta. Para poder executar o método deposita entre outro que se encontrão no objeto Conta.
Alguém sabe se fiz alguma coisa errada?
Desde já agradeço!
Abraço
