Arrays em contrutores

pessoal tenho que fazer uma vrnda de ate 10 items

minha classe que Tem um contrutor de items

[code]public class ItemDeVenda{
private int quantidade=0;
Produto prod = null;

public ItemDeVenda(){}

public ItemDeVenda(Produto prod,int quantidade){
	this.prod=prod;
	this.quantidade=quantidade;
}  
public double calcularPreco(){
	double tpagar=0;
	tpagar = prod.getValorUnit()*getQuantidade();
	return tpagar;
}
//metodo get e set de quantidade
public int getQuantidade(){
	return quantidade;
}
public void setQuantidade(int quantidade){
	this.quantidade=quantidade;
}

//metodo toString
public String toString(){
	String frase="";
	frase = "\nProduto: "+prod.getDescricao()+"\nQuantidade: "+getQuantidade()+"\nTotal a pagar: "+calcularPreco();	
	return frase;	
}

}[/code]

minha classe venda que armazena a data de venda, o nome do cliente, e os items(até 10 itemns ) que ele comprou

[code]public class Venda{
private String data="";
private Cliente cli=null;
ItemDeVenda item[] = new ItemDeVenda[10];

public Venda(String data,Cliente cli,ItemDeVenda item[]){
	this.data=data;
	this.cli=cli;
	this.item=item;
}
public String getData(){
	return data;
}
public void setData(String data){
	this.data=data;
}	
public String toString(){
	String frase1="";
	frase1 = "\n\nData: "+getData()+"\nCliente: "+cli.getNome();
	return frase1;		
}

}[/code]

minha duvida eh o seguinte, como eu faço para jogar no contrutor venda os 10 itemsn…porque meu codigo da o seguinte erro!
cannot find symbol method item(Produto,int)

[quote=michelato]pessoal tenho que fazer uma vrnda de ate 10 items

minha classe que Tem um contrutor de items

[code]public class ItemDeVenda{
private int quantidade=0;
Produto prod = null;

public ItemDeVenda(){}

public ItemDeVenda(Produto prod,int quantidade){
	this.prod=prod;
	this.quantidade=quantidade;
}  
public double calcularPreco(){
	double tpagar=0;
	tpagar = prod.getValorUnit()*getQuantidade();
	return tpagar;
}
//metodo get e set de quantidade
public int getQuantidade(){
	return quantidade;
}
public void setQuantidade(int quantidade){
	this.quantidade=quantidade;
}

//metodo toString
   @Override // coloquei pois tava faltando !!
public String toString(){
	String frase="";
	frase = "\nProduto: "+prod.getDescricao()+"\nQuantidade: "+getQuantidade()+"\nTotal a pagar: "+calcularPreco();	
	return frase;	
}

}[/code]

minha duvida eh o seguinte, como eu faço para jogar no contrutor venda os 10 itemsn…porque meu codigo da o seguinte erro!
cannot find symbol method item(Produto,int)

[/quote]

ta dando erro aqui

vc criou a classe Produto ?

sim aki esta ela [codepublic class Produto{
private String codigo="";
private String descricao="";
private double peso=0;
private double valorUnit=0;

//construtores  Produto	
public Produto(){}
public Produto(String codigo,String descricao,double peso,double valorUnit){
	this.codigo=codigo;
	this.descricao=descricao;
	this.peso=peso;
	this.valorUnit=valorUnit;
}	
//motodos gets e sets
public String getCodigo(){
	return codigo;
}
public void setCodigo(String codigo){
	this.codigo=codigo;
}
public String getDescricao(){
	return descricao;
}
public void setDescricao(String descricao){
	this.descricao=descricao;
}
public double getPeso(){
	return peso;
}
public void setPeso(double peso){
	this.peso=peso;
}
public double getValorUnit(){
	return valorUnit;
}
public void setValorUnit(double valorUnit){
	this.valorUnit=valorUnit;
}	
//metodo imprimir produto
public void imprimirProduto(){
	System.out.println("Cdigo..........: " + getCodigo());
	System.out.println("Descrio.......: " + getDescricao());
	System.out.println("Peso............: " + getPeso());
	System.out.println("Valor Unitrio..: " +getValorUnit());	
}	

}[/code]

sim aki esta ela [code]public class Produto{
private String codigo="";
private String descricao="";
private double peso=0;
private double valorUnit=0;

//construtores  Produto	
public Produto(){}
public Produto(String codigo,String descricao,double peso,double valorUnit){
	this.codigo=codigo;
	this.descricao=descricao;
	this.peso=peso;
	this.valorUnit=valorUnit;
}	
//motodos gets e sets
public String getCodigo(){
	return codigo;
}
public void setCodigo(String codigo){
	this.codigo=codigo;
}
public String getDescricao(){
	return descricao;
}
public void setDescricao(String descricao){
	this.descricao=descricao;
}
public double getPeso(){
	return peso;
}
public void setPeso(double peso){
	this.peso=peso;
}
public double getValorUnit(){
	return valorUnit;
}
public void setValorUnit(double valorUnit){
	this.valorUnit=valorUnit;
}	
//metodo imprimir produto
public void imprimirProduto(){
	System.out.println("Cdigo..........: " + getCodigo());
	System.out.println("Descrio.......: " + getDescricao());
	System.out.println("Peso............: " + getPeso());
	System.out.println("Valor Unitrio..: " +getValorUnit());	
}	

}[/code]

Esse construtor vazio às vezes da erro!
Eu tive esse mesmo problema recenmtemente. Pq nao tenta retirar o construtor (Ja q vc vai querer instanciar objetos) e troca por um metodo qualquer?

vlew

o raciocinio eh esse olha

tipo…recebeu um item…blza…vai la e seta
recebeu outro…ok…vai la e seta
o cliente nao quer amis compra
sai do do/while
e cria o construtor
mandando o vetor de itens
seto…armazena no vetor de itens
mas nao seu como faço issooooooo

mostra como vc está instanciando um ItemVenda

ItemDeVenda armazena_items[] = new ItemDeVenda[10]; ItemDeVenda item = new ItemDeVenda(); tentei de duas formassss

observe

e se vc entrar em posição por posição e ir entrando com os itens…
item[0] = banana e assim por diante

Olá.

Por favor, poste o stacktrace (erro) completo e também diga qual a sua necessidade, ou seja, a descrição do seu problema.
E só para deixar claro, esta linha:

ItemDeVenda itemDeVenda[] = new ItemDeVenda[10];

Você sabe o que está fazendo? Você está instanciando 10 Objetos do tipo ItemDeVenda, é exatamente isto que você quer?
Abraços.

eh quero colocar 10 items dentro de um contrutor de venda

cara vc ja tentou acessar posicao por posicao?

E o formato deve ser exatamente este?
Não seria mais interessante ter uma lista de Itens?

Declara uma classe com os atributos que se faz necessário para um item, seus respectivos getters e setters e na sua venda você passa esta lista.
Desta forma não ficaria um código mais “limpo” e de fácil utilização?

Abraços.

P.s: poste o stacktrace da exception ok? :slight_smile:

entao mas eu n sei fazer isso,…tiipo com assim, get e set, para um vetor/??

entao caso da minha forma nao de certo de entrar em posicao por posicao item[0] = a;

vc pode criar uma lista

List item = new ArrayList<>();

item.add(“x”)

e ai no final vc vai ter algum metodo que recebe essa lista.

metodo(item)

n meu programa n posso usar array list, mas veja o q eu fiz deu certo, mas nao imprime depois a vanda…imprimie o nomeDoCliente, data mas n imprimeo produto e quantidade

[code]public class Venda{
private String data="";
private Cliente cli=null;
ItemDeVenda item[] = new ItemDeVenda[10];

public Venda(String data,Cliente cli,ItemDeVenda item[]){
	this.data=data;
	this.cli=cli;
	this.item=item;
}

public String getData(){
	return data;
}
public void setData(String data){
	this.data=data;
}	
public String toString(){
	String frase1="";
	frase1 = "\n\nData: "+getData()+"\nCliente: "+cli.getNome()+"\nItem: "+item[].toString();
	return frase1;		
}

}[/code][code]public class ItemDeVenda{
private int quantidade=0;
Produto prod = null;

public ItemDeVenda(){}

public ItemDeVenda(Produto prod,int quantidade){
	this.prod=prod;
	this.quantidade=quantidade;
}  
public double calcularPreco(){
	double tpagar=0;
	tpagar = prod.getValorUnit()*getQuantidade();
	return tpagar;
}
//metodo get e set de quantidade
public int getQuantidade(){
	return quantidade;
}
public void setQuantidade(int quantidade){
	this.quantidade=quantidade;
}

//metodo toString
public String toString(){
	String frase="";
	frase = "\nProduto: "+prod.getDescricao()+"\nQuantidade: "+getQuantidade()+"\nTotal a pagar: "+calcularPreco();	
	return frase;	
}

}[/code]Lista_items[a] = new ItemDeVenda(armazena_produtos[posProd],quantidade); armazena_vendas[a] = new Venda(data,armazena_clientes[posCli],Lista_items); a++; tvendas++; System.out.println(armazena_vendas[j].toString()); // ki imprime certo so a data e o cliente o resoto aparece uns negocio tipo assim 1321@454it

É simples, você está imprimindo o seu objeto no formato de String. Você deve pegar cada posição do seu array armazena_vendas[j], ele retorna um tipo de objeto e partir deste objeto você faz o .get() e pega os valores que deseja.

pode me dar um exemplo?

ArrayList<Carro> lista = new <Carro>ArrayList();
lista.add(new Carro("Fusca", "Vermelha", "1.6"));
lista.add(new Carro("Corsa", "Azul Banada", "1.0"));
lista.add(new Carro("Voyage", "Rosa", "1.8"));

for (int counter = 0; counter < lista.length(); counter++) {

    Carro carro = (Carro) lista.get(counter);
    System.out.println(carro.getModelo());

}

Não testei não, portanto, ignore erro de sintaxe ^^

mas no meu programa n posso usar array
List