Dúvida para cadastrar em Array de Objetos

3 respostas
B

Olá, estou fazendo um trabalho para faculdade, e preciso cadastrar os clientes em um Array! Vou colocar abaixo os trechos do código.

CLASSE CLIENTE

private Cliente c[];

public Cliente(int tamanho){

c = new Cliente[tamanho];

}
public boolean cadastraCliente(Cliente clienteA){

c[iQtdeClientes] = clienteA;

iQtdeClientes++;

return true;

}
public Cliente(int iNroTelefone, String sNomeCliente){

this.iNroTelefone = iNroTelefone;

this.sNomeCliente = sNomeCliente;

}
public void exibeDados2(){

for(int i=0;i<c.length;i++){

System.out.println("------------------CLIENTE------------------");

System.out.println("Telefone: "+ iNroTelefone);

System.out.println("Cliente: "+ sNomeCliente);

System.out.println("Endereço: "+ sEndereco + ", "+ iNroEndereco + " Bairro: "+ sBairro);

System.out.println("Complemento: "+ sComplemento);

System.out.println("Cidade: "+ sCidade + " Estado: " + sEstado);

System.out.println("Qtde Pizzas: "+ iQtdePizzas);

}

}
CLASSE DE TESTE

dentro de um while de opções tenho isso

Cliente clienteA = new Cliente(Teclado.leInt("Informe o telefone: "),

Teclado.leString("Informe o nome: "));

c1.cadastraCliente(clienteA);

e para imprimir todo array
1.exibeDados2();

Eu consigo cadastrar quantos clientes eu quiser, mas quando imprime o array, todos os valores saem zerados ou null, o que estou fazendo de errado???

Read more: http://javafree.uol.com.br/topic-888108-Duvida-para-cadastrar-em-Array-de-Objetos.html#ixzz2CrZdYXDY

3 Respostas

Fellipex

Primeira coisa posta dentro da tag code pra facilitar a visualização. Mas pelo que eu pude entender, quando voce roda o for do vetor de clientes, você não está acessando os atributos de cada cliente
Só exemplo, n sei se voce utilizou getters e setters

for(int i =0; i<arrayClientes.length, i++){

    System.out.println("Nome do cliente"+ arrayClientes[i].getNome());

}

No seu caso deve ser algo do tipo

System.out.println ("Numero: " +c[i].iNroTelefone);
System.out.println ("Nome: "+c[i].sNomeCliente);
B

Muito obrigado, realmente precisei fazer isso. Mas agora depois de exibir os dados, ele da o seguinte erro.
[b]java.lang.NullPointerException at Cliente.exibeDados2(Cliente.java:70) at TestePizzaLine.main(TestePizzaLine.java:33)[/b]

Também vi que eu estava passando o número do telefone para o índice do array. O que eu preciso fazer é criar um novo objeto cliente com todos os dados e depois passar esse objeto para o array, mas não sei como fazer isso.
No código que eu postei, o construtor não pede todos os dados porque fiz só para teste!

allan.tavares

Opa,

Não sei se já resolveu mas você toma NullPointer porque você está tentando usar uma referência que é NULL.

Observando seu código:

1-Você criou uma variavel de referencia do tipo array de Cliente.Ok?

Cliente c[];

Até aqui ele é null;

2-Você tem 2 construtores:

No construtor 1 você de fato cria um array e atribui a variavel c;
No construtor 2 você simplesmente popula algumas propriedades de cliente e nem mexe com a Array (que continua NULL)…

Se chamar o construtor 2 do jeito que está, vai tomar NullPointer mesmo…porque seu metodo cadastraCliente tenta usar o Array que é NULL.

Criado 21 de novembro de 2012
Ultima resposta 21 de nov. de 2012
Respostas 3
Participantes 3