Imprimir varios item

Ola a todos, estou fazendo um teste de cadastro de produtos.Só que gostaria de adicionar varios produtos e imprimir os mesmos.Vou postar o codigo aqui caso alguem consiga me ajudar fico muito grato.

package CadastroProdutos;

public class CadProduto extends Produtos {
private String nomeProduto;
private int id=0;
private CadProduto cadProdutos[];
private int qtd;
private int qtdMax=100;
private double preco;

public CadProduto(String nome,double preco,int qtd){
	this.nomeProduto=nome;
	this.preco=preco;
	this.qtd=qtd;
	this.cadProdutos= new CadProduto[qtdMax];
}

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

public void setPreco(double umPreco){
	this.preco=umPreco;
}

public void setId(int umId){
	this.id=umId;
}

public void setQtd(int umaQtd){
	this.qtd=umaQtd;
}

public String getNome(){
	return nomeProduto;
}

public double getPreco(){
	return preco;
}

public int getId(){
	return id;
}

public int getQtd(){
	return qtd;
}

private void gerarId(){
	id=id+1;
}

public void addProdutos(String txt,double preco,int qtd){
	CadProduto c= new CadProduto(txt,preco,qtd);
}


public void imprimiDados(){
	System.out.println("Nome do Produto:"+getNome());
	System.out.println("Preco:"+getPreco());
	System.out.println("Quantidade:"+getQtd());
	gerarId();
	System.out.println("Id:"+getId());
}

public void imprimiProdutos(){
	for(int i=0;i<qtdMax;i++){
		cadProdutos[i].imprimiDados();
	}
}

}

Fiz um main só que quando mando copilar ele acaba dando um :
Exception in thread “main” java.lang.NullPointerException
at CadastroProdutos.CadProduto.imprimiProdutos(CadProduto.java:69)
at MainTeste.MainTeste.main(MainTeste.java:11)

Cara, primeiro procura postar seu código usando a tag code. E se puder colar o main ai também seria mais fácil ajudar…

cara… que sets sao esses?

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

public void setPreco(double umPreco){ 
this.preco=umPreco; 
} 

public void setId(int umId){ 
this.id=umId; 
} 

Qual o problema com os sets???

package MainTeste;
import CadastroProdutos.CadProduto;

public class MainTeste {
	public static void main(String[] args) {
		CadProduto cp= new CadProduto("Celular",173.11,1);
		cp.addProdutos("Lampada",10.00,2);
		cp.imprimiProdutos();
	}

}

Aqui esta o main, a minha ideia é ir adicionar produtos na classe(mais pra frente fazer um db com os dados), ao final de adicionar produtos gostaria de imprimir todos os item, só que não gostaria de instanciar varias vezes a classe.
Deu para entender +/- ?

nao sei pq vc usou o umPreco, umNome, umId, porque o “um”?

Na verdade acho que fica mais facil… não vai muda muita coisa …

tem como exemplificar em codigo ai por favor?

kkk quebra a cabeça é comigo mesmo é por que num usei o list por issi pedi um exemplo e acho que esse que vc me deu vai ser o suficente,agradeço vo procurar um pouco mais sobre list qualquer coisa posto o cod de novo.Muito obrigado pessoal

[quote=cido18]Aqui esta o main, a minha ideia é ir adicionar produtos na classe(mais pra frente fazer um db com os dados), ao final de adicionar produtos gostaria de imprimir todos os item, só que não gostaria de instanciar varias vezes a classe.
Deu para entender +/- ?[/quote]
E qual o problema de fazer várias instâncias da mesma classe?

Só acho que CadProduto não deveria ser feito da forma que foi.
Eu teria CadProduto com um List de produtos (List ) e o método imprimeProdutos e a classe Produto teria os atributos de cadastramento.

Na verdade, prefiro que vc quebre um pouco a cabeça :wink:
É só um exemplo. Vc precisará complementar um pouco o código.

[code]class Produto {
//atributos relacionados
private String nomeProduto;
private int id=0;
//os demais, por sua conta, exceto o array. Esse não entra!

//respectivos getters e setters
}

class CadProdutos {
List produtos = new ArrayList();

void add(Produto p) {
produtos.add§;
}
}[/code]

A sim, notei que seu addProduto não faz nada :frowning: e seu imprimeProdutos acessa um array vazio.