Solucionado (ver solução)
Solucionado
(ver solução)
4
respostas

imprimindo datas

fiz um programinha que deveria imprimir dados e data de cadastro, mas nao sei onde ta o erro:

package cadastroCliente;
public class Cliente {

        String nome;
        String cpf;
        int idade;
        Endereco endereco;
        Data dataDeCadastro;

        public void imprime() {
            System.out.println("Nome: " +nome);
            System.out.println("CPF: " +cpf);
            System.out.println("Idade: " +idade);
            System.out.println("Endereco: " +endereco.rua+ endereco.numero);
            System.out.println("Bairro: " +endereco.bairro);
            System.out.println("Cidade: " +endereco.cidade+ " - " +endereco.estado);
            System.out.println("Data de cadastro: " +dataDeCadastro.imprimeData());
            System.out.println("");
        }


    }

package cadastroCliente;

public class Data {

    int dia;
    int mes;
    int ano;

    public void formataData(int dia, int mes, int ano) {
        this.dia =     dia;
        this.mes = mes;
        this.ano = ano;
    }

    public String imprimeData() {
        return dia + "/" + mes + "/" + ano;
    }

}


package cadastroCliente;
public class Endereco {

    String rua;
    int numero;
    String bairro;
    String cidade;
    String estado;

}

package cadastroCliente;
public class TesteCliente {

    public static void main(String[] args) {

        Cliente cliente1 = new Cliente();
        cliente1.nome = "Jose da Silva";
        cliente1.cpf = "142.452.129.36";
        cliente1.idade = 36;
        cliente1.dataDeCadastro.formataData(03, 05, 1996);


        Cliente cliente2 = new Cliente();
        cliente2.nome = "Ricardo Silva";
        cliente2.cpf = "421.524.852-36";
        cliente2.idade = 42;
        cliente2.dataDeCadastro.formataData(15, 02, 2001);



        Endereco endereco1 = new Endereco();
        endereco1.rua = "Caramuru";
        endereco1.numero = 2550;
        endereco1.bairro = "Alto da Boa Vista";
        endereco1.cidade = "Ribeirao Preto";
        endereco1.estado = "SP";

        Endereco endereco2 = new Endereco();
        endereco2.rua = "barao do Amazonas";
        endereco2.numero = 1720;
        endereco2.bairro = "Sumare";
        endereco2.cidade = "Ribeirao Preto";
        endereco2.estado = "SP";

        cliente1.endereco = endereco1;
        cliente2.endereco = endereco2;

        cliente1.imprime();
        cliente2.imprime();


    }    

}
4 respostas

Olá, Leonardo! Você está recebendo alguma mensagemde erro ou algo assim?

Exception in thread "main" java.lang.NullPointerException at TestaCliente.main(TestaCliente.java:10)

fiz algumas alteracoes, mas continua dando erro

solução!

Leonardo, entendi o problema. Você esqueceu de instanciar um novo objeto Data nos atributos dataDeCadastro dos clientes! Então o método formataData ainda não existe para a dataDeCadastro, porque dataDeCadastro não é nada. Dessa forma o problema deve resolver:

cliente1.dataDeCadastro = new Data
cliente1.dataDeCadastro.formataData(3, 5, 1996)

e a mesma coisa para o cliente2:

cliente2.dataDeCadastro = new Data
cliente2.dataDeCadastro.formataData(15, 2, 2001)

Veja se agora funciona e dá um feedback aqui! Abraços!

deu certo...

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software