2
respostas

Eu não estou conseguindo chamar uma método, na classe principal, dentro de outro método:

Este é meu método main:

public class TestaEndereco extends Conta{
    public static void main(String[] args) {

        Conta c1 = new Conta();
            c1.agencia = "abc123";
            c1.numero = "123456789";
            c1.deposita(100);    
        c1.titular = new Cliente();
            c1.titular.nome = "Pablo de Abreu";
            c1.titular.cpf = "029.082.853-80";
            c1.titular.profissao = "Programador";
        c1.titular.endereco = new Endereco();
            c1.titular.endereco.cidade = "Teresina";
            c1.titular.endereco.bairro = "São Cristovão";
            c1.titular.endereco.cep = "64.000";
            c1.titular.endereco.complemento = "Apto. 603";
            c1.titular.endereco.logradouro = "Av. Área Leão";
            c1.titular.endereco.numero = "575";

        Conta c2 = new Conta();
            c2.agencia = "abc123";
            c2.numero = "123654987";
            c2.deposita(500);
        c2.titular = new Cliente();
            c2.titular.nome = "Felipe Brasileiro";
            c2.titular.cpf = "015.025.858-89";
            c2.titular.profissao = "Estudante";
        c2.titular.endereco = new Endereco();
            c2.titular.endereco.cidade = "Teresina";
            c2.titular.endereco.bairro = "Joquei";
            c2.titular.endereco.cep = "64.000";
            c2.titular.endereco.complemento = "casa 1";
            c2.titular.endereco.logradouro = "Rua Ribamar Pacheco";
            c2.titular.endereco.numero = "575";

            c1.titular.dadosPessoais();
    }
}

O metodo dadosPessoais() está dentro da classe Cliente, segue a classe Cliente:

public class Cliente extends Conta {
    public String nome;
    public String cpf;
    public String profissao;
    public Endereco endereco;
        for (int i = 0; i < this.nome.length() + 14 + this.cpf.length() + 13 ; i++) {
            System.out.print("=");
        }
        System.out.println();

        System.out.print("|| O cliente: " + this.nome + " com CPF: " + this.cpf + " ||" + "\n" + "|| " +
                "Com profissão de: " + this.profissao);
    for (int i = 0; i < this.nome.length() + 14 + this.cpf.length() + 13 - this.profissao.length() 
                    - 23 ; i++) {
            System.out.print(" ");
        }
        System.out.println("||");
    for (int i = 0; i < this.nome.length() + 14 + this.cpf.length() + 13 ; i++) {
            System.out.print("=");
        }

        System.out.println();
    int tamanhoBarraDeCima = this.nome.length() + this.cpf.length() + 14 + 13;

        this.endereco.imprimeEndereco(tamanhoBarraDeCima);
        this.dadosDaConta(tamanhoBarraDeCima);

    }    
}

O método imprimeEndereco() está na classe Endereco, segue a classe endereco:

```

2 respostas

Fala ai Pablo, tranquilo ?

Cara você viu que sua classe cliente está faltando a abertura de um método? Você escreveu o for ali no meio do nada, talvez esse seja o problema.

Outro detalhe que é legal você ver é que acho que não faz muito sentido um cliente ser uma conta, será que você não errou nisso também ? Sugeriria você voltar e dar uma repassada no seu código.

O que precisar estamos aqui para te ajudar com isso :D

Você poderia passar todos esses métodos de set como itens do construtor.

class Conta {
    private String agencia;
    private String numero;
    private Cliente cliente;
    private Endereco enderecoDoCliente;

    public Conta(String agencia, String numero, String titular, String cpf, String profissao, String cidade, String bairro, String cep, String logradouro, String numeroResidencial, String complemento) {
        this.agencia = agencia;
        this.numero = numero;
        this.cliente = new Cliente(titular, cpf, profissao);
        this.enderecoDoCliente  = new Endereco(cidade, bairro, cep, logradouro, numeroResidencial, complemento);
    }
}
class Cliente {
    private String nome;
    private String CPF;
    private String profissao;

    public Cliente(String nome, String cpf, String profissao) {
        this.nome = nome;
        this.cpf = cpf;
        this.profissao = profissao;
    }
class Endereco {
private String cidade;
private String bairro;
private String CEP;
private String logradouro;
private String numero;
private String complemento;

    public Endereco(String cidade, String bairro, String CEP, String logradouro, String numero, String complemento) {
        this.cidade = cidade;
        this.bairro = bairro;
        this.CEP = CEP;
        this.logradouro = logradouro;
        this.numero = numero;
        this.complemento = complemento;
    }
}