[RESOLVIDO]Arrays não exibe conteudo

Pessoal tenho que fazer um trabalho e não to conseguindo fazer com que a lista apareça com os dados que forem digitados :S

o Sair e incrementar estão indo, gostaria só dessa ajuda …

[code]/*

  • Crie uma classe Principal contendo um menu em seu método main( )
  • com opções para inserir clientes, listar clientes e sair da aplicação.
  • A classe deverá instanciar um objeto do tipo ClienteArray contendo 1000
  • clientes e de acordo com a opção selecionada no menu, inserir o novo
  • cliente na lista ou listar todos os clientes já inseridos.

*/
import java.util.Scanner;

public class Principal {
public static void main(String[] args) {
Scanner teclado = new Scanner(System.in);
Cliente clientes[] = new Cliente[100];
MeuMenu menu = new MeuMenu();
ClienteArray arrayCliente = new ClienteArray();

	int op, i;
    i = 0;
    do {
        op = menu.getOpcao();
        if (op == 0) {
            break;
        }
        
        switch(op){
        case 1:
        	if(i<100){
        		clientes[i] = new Cliente();
        		arrayCliente.insere(clientes[i]);
        		i++;
        	}
        	else{
        			System.out.println("Lista de clientes cheia.");
        		}
        	break;
        case 2:
        	//clientes.toString();
        	arrayCliente.listarTodos(clientes, i);
        	break;
        default:
        	System.out.println("Opção invalida!");
    
    
   
    }
    }
    while (true);
}

}

[/code]


import java.util.Scanner;


public class MeuMenu {
    private Scanner teclado = new Scanner(System.in);
    public int getOpcao(){
        System.out.println("---------------------");
        System.out.println("Menu Principal");
        System.out.println("---------------------");
        System.out.println("1 - Incluir");
        System.out.println("2 - Listar Todos");
        System.out.println("0 - Sair");
        System.out.println("---------------------");
        System.out.print("Selecione uma das opcões acima: ");
        return teclado.nextInt();
    }
    
}
/*3. Crie uma classe ClienteArray contendo:
a) um atributo clientes que é um Array com referências para clientes.
b) Dois construtores: um sem parâmetros que inicializa o array 
clientes para conter até 100 objetos do tipo Cliente e outro que recebe 
como parâmetro o tamanho do array. Ambos devem instanciar o array.
b) métodos void insere(Cliente c) e Cliente[] listaClientes(). O primeiro 
recebe um Cliente e o insere no array. O segundo retorna um array de clientes 
com todos os clientes cadastrados.
 */
import java.util.Scanner;

;
public class ClienteArray {

	private Scanner tecladoScanner = new Scanner(System.in);

	private Cliente clientes[];

	public ClienteArray() {
		// /super();
		// this.clientes = clientes;

		for (int i = 0; i <= 100; i++) {
			// Cliente clientes[] = new Cliente[100];
		/*	System.out.println("Digite o nome do cliente: ");
			clientes[i].setNome(tecladoScanner.next());

			System.out.println("Digite o telefone do cliente: ");
			clientes[i].setFone(tecladoScanner.next());

			System.out.println("Digite a renda do cliente: ");
			clientes[i].setRenda(tecladoScanner.nextDouble());*/
			

		}
	}

	public ClienteArray(Cliente[] clientes) {
		// super();
		// this.clientes = clientes;
		for (int i = 0; i <= clientes.length; i++) {
			// Cliente clientes[] = new Cliente[100];
		/*	System.out.println("Digite o nome do cliente: ");
			clientes[i].setNome(tecladoScanner.next());

			System.out.println("Digite o telefone do cliente: ");
			clientes[i].setFone(tecladoScanner.next());

			System.out.println("Digite a renda do cliente: ");
			clientes[i].setRenda(tecladoScanner.nextDouble());*/

		}
	}

	void insere(Cliente c) {
		
		
		System.out.println("Digite o nome do cliente: ");
		c.setNome(tecladoScanner.next());

		System.out.println("Digite o telefone do cliente: ");
		c.setFone(tecladoScanner.next());

		System.out.println("Digite a renda do cliente: ");
		c.setRenda(tecladoScanner.nextDouble());
	}
	
	public void listarTodos (Cliente[] listaClientes, int qtd){
		
		for(int i=0;i<qtd;i++){
	           System.out.println("Nome:      " + clientes[i].getNome());
	           System.out.println("Telefone:     " + clientes[i].getFone());
	           System.out.println("Renda:  " + clientes[i].getRenda());
	        }
		
	}

}

[code]public class Cliente {
private int id;
private String nome, fone;
private double renda;

public Cliente() {
	//super();
	this(-1,null,null,-1);
}

public Cliente(String nome, String fone){
	this(-1,nome,fone,-1);
	
}

public Cliente(int id, String nome, String fone, double renda) {
	super();
	this.id = id;
	this.nome = nome;
	this.fone = fone;
	this.renda = renda;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public String getFone() {
	return fone;
}

public void setFone(String fone) {
	this.fone = fone;
}

public double getRenda() {
	return renda;
}

public void setRenda(double renda) {
	this.renda = renda;
}

public String toString(){  
    return "ID: "+this.id +" Nome: "+ this.nome +" Telefone: "+fone +" Renda: "+renda;  
}  

}
[/code]

amigo pelo que entendi do seu metodo insere ele só está setando os valores digitados no cliente. acho que está faltando vc add o objeto cliente no seu array que nao consegui localizar este comando. no seu metodo incluir no menu vc só faz a inserção de valores chamando o seu objeto arrayCliente. obeserve nele que está faltando um

clientes[i].add(cliente);

Amigo fica dando o seguinte erro [quote]Exception in thread “main” java.lang.NullPointerException
at ClienteArray.listarTodos(ClienteArray.java:71)
at Principal.main(Principal.java:40)[/quote]

Tentei fazer como vc falou e não foi :S

Tenta mudar isso

for(int i=0;i<qtd;i++){[/code]Pra isso [code]for(int i=0;i<=qtd;i++){

Tomei a liberdade e modifiquei um pouco, tente fazer assim:

[size=9]Cliente.java[/size]:

[code]public class Cliente {
private int id;
private String nome, fone;
private double renda;

public Cliente() {
	// super();
	this(-1, null, null, -1);
}

public Cliente(String nome, String fone) {
	this(-1, nome, fone, -1);

}

public Cliente(int id, String nome, String fone, double renda) {
	super();
	this.id = id;
	this.nome = nome;
	this.fone = fone;
	this.renda = renda;
}

public String getNome() {
	return nome;
}

public void setNome(String nome) {
	this.nome = nome;
}

public String getFone() {
	return fone;
}

public void setFone(String fone) {
	this.fone = fone;
}

public double getRenda() {
	return renda;
}

public void setRenda(double renda) {
	this.renda = renda;
}

public String toString() {
	return "ID: " + this.id + " Nome: " + this.nome + " Telefone: " + fone
			+ " Renda: " + renda;
}

}
[/code]
[size=9]MeuMenu.java[/size]:

[code]import java.util.Scanner;

public class MeuMenu {
private Scanner teclado = new Scanner(System.in);

public int getOpcao() {
	System.out.println("---------------------");
	System.out.println("Menu Principal");
	System.out.println("---------------------");
	System.out.println("1 - Incluir");
	System.out.println("2 - Listar Todos");
	System.out.println("0 - Sair");
	System.out.println("---------------------");
	System.out.print("Selecione uma das opcões acima: ");
	return teclado.nextInt();
}

}[/code]
[size=9]ClienteArray.java[/size]:

[code]
import java.util.ArrayList;
import java.util.List;

public class ClienteArray {

private List<Cliente> clientes;

public ClienteArray() {
	if (null == clientes)
		clientes = new ArrayList<Cliente>();
}

public void insere(Cliente c) {
    clientes.add(c);
}
  
public void listarTodos() {
	for(Cliente c : clientes) {
	   
	   System.out.println("Nome:      " + c.getNome());  
       System.out.println("Telefone:  " + c.getFone());  
       System.out.println("Renda:     " + c.getRenda());
       System.out.println("==========================");
	}
}

}[/code]
[size=9]Principal.java[/size]:

[code]import java.util.Scanner;

public class Principal {

public static void main(String[] args) {

	Scanner tecladoScanner = new Scanner(System.in);  
    MeuMenu menu = new MeuMenu();  
    ClienteArray arrayCliente = new ClienteArray();  
    int op = 0;
      
    do {  
        op = menu.getOpcao();  
        if (op == 0) {  
            break;  
        }  
          
        switch(op) {  
			case 1:  
				Cliente c = new Cliente();
				
				System.out.println("Digite o nome do cliente: ");
				c.setNome(tecladoScanner.next()); 	
				
				System.out.println("Digite o telefone do cliente: ");
				c.setFone(tecladoScanner.next()); 
				
				System.out.println("Digite a renda do cliente: ");
				c.setRenda(tecladoScanner.nextDouble()); 
				
				arrayCliente.insere(c);  
				break;
				
			case 2:  
				arrayCliente.listarTodos();  
				break;  
				
			default:  
				System.out.println("Opção invalida!");  
		}  
	}  
    while (true);
	
	
}  

} [/code]

Amigo rafaduka , muito obrigado agora está rodando vou analisar o seu código e ver aonde eu errei !!

PS: Obrigado a todos que ajudaram :smiley:

Você estava errando nesse ponto:

[code]public void listarTodos (Cliente[] listaClientes, int qtd){

    for(int i=0;i<qtd;i++){  
           System.out.println("Nome:      " + clientes[i].getNome());  
           System.out.println("Telefone:     " + clientes[i].getFone());  
           System.out.println("Renda:  " + clientes[i].getRenda());  
        }  
      
}[/code]

Você estava dando um loop sobre a qtd, onde deveria ser assim:

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

Apesar de funcionar, não estava dentro das “boas práticas de programação”. Por isso, utilizei List ao invés de Array

Ah sim, eu não to começando o curso de JAVA na faculdade estou no terceiro periodo e o trabalho é com array ainda não vimos List, vou modifica-lo aqui … Mesmo assim obrigado pela ajuda !!