Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

referencia

ola pessoal, abri outro topico pq havia finalizado o anterior. estou fazendo alguns exercicios para testes, mas está dando erro na parte de referencia e nao sei pq. o codigo compila, mas dá erro:

public class Cliente {

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

    }

public class Endereco {

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

}


public class TestaCliente {

    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.endereco.rua = "Barao do amazonas";
        cliente1.endereco.bairro = "Sumare";
        cliente1.endereco.cidade = "Ribeirao Preto";
        cliente1.endereco.estado = "SP";

        System.out.println("Cliente: " +cliente1.nome);
        System.out.println("CPF: " +cliente1.cpf);
        System.out.println("Idade " +cliente1.idade);

    }    

}
1 resposta
solução!

Quando você declarou um Cliente, o endereco foi criado como null por padrão(pois é um objeto). Como no seu método main você tentou acessar cliente1.endereco.rua, ele está tentando acessar algo que é null, e não vai achar nenhuma propriedade lá.

O que faltou fazer é declarar um Endereco e associar(fazer uma referência do endereço) ao Cliente:

public static void main(String[] args) {

        Cliente cliente1 = new Cliente();
        cliente1.nome = "Jose da Silva";
        cliente1.cpf = "142.452.129.36";
        cliente1.idade = 36;
        //aqui voce cria o endereco
        Endereco endereco1 = new Endereco();
        //aqui voce associa o endereco ao cliente
        cliente1.endereco = endereco1;
        //a partir daqui, toda vez que voce acessar cliente1.endereco
        //ele vai referenciar o endereco1 e trabalhar com ele
        cliente1.endereco.rua = "Barao do amazonas";
        cliente1.endereco.bairro = "Sumare";
        cliente1.endereco.cidade = "Ribeirao Preto";
        cliente1.endereco.estado = "SP";

        System.out.println("Cliente: " +cliente1.nome);
        System.out.println("CPF: " +cliente1.cpf);
        System.out.println("Idade " +cliente1.idade);

    }