Vetores instanciados dentro de construtores?

[code]public class ItemDeVenda{
private int quantidade=0;
Produto prod = new Produto();

public ItemDeVenda(){}

public ItemDeVenda(Produto prod,int quantidade){
	this.prod=prod;
	this.quantidade=quantidade;
}  


public double calcularPreco(double tpagar){
	tpagar = prod.getValorUnit()*getQuantidade();
	return tpagar;
}
//metodo get e set de quantida
public int getQuantidade(){
	return quantidade;
}
public void setQuantidade(int quantidade){
	this.quantidade=quantidade;
}	
//metodo imprimir intem de venda
public void imprimeItemDeVenda(){
	System.out.println("Produto: "+prod.getDescricao());
	System.out.println("Quantidade: "+getQuantidade());	
}

}[/code][code]public class Venda{
private String data="";
Cliente cli=null;
ItemDeVenda item =null;
Produto prod = new Produto();
// int x=0;

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 void imprimirVenda(){
	System.out.println("Data: "+getData());
	System.out.println("Cliente: "+cli.getNome());
	System.out.println("Item: "+item);
}

}[/code]

parte da classe main

 armazena_items[it] = new ItemDeVenda(armazena_produtos[posProd],quantidade);
armazena_venda[a] = new Venda("02/06/2006",armazena_clientes[posCli],armazena_items[0]);
 armazena_venda[a].imprimirVenda();

pessoal eu queria que mostrasse a venda com o nome do cliente, enfim os dados em gerais

mas vejam o que aparece!

alguem sabe o que pode ser

  
Informe o nome do cliente: aldo
Informe o código do produto: 123
Data: 02/06/2006
Cliente: aldo
Item: ItemDeVenda@a62fc3
System.out.println("Item: "+item.getNome());

tenta fazer algo do tipo.
Quando você chama o comando “println()” passando um objeto como referencia, imprime o nome do objeto fornecido pelo método toString() herdado de Object.
você também pode sobrescrever o toString() para retornar o nome do seu item de venda.

valeu.

caro amigo!!!

como faria, isso, tipo eu tenho que imprimir a venda, a data, o cliente, e o produto

Cara, põe no construtor do teu item para receber o nome e crie métodos get e set para o nome.
Depois imprime ele uai… postei aí em cima já. “item.getNome()”

no contrutor de item ou no contrutor de venda, pq no item ja peço a descriçaõ do produto, o proble eh p imprimir o nome do item no vetor

cara, olha sua classe ItemDeVenda.
Nela vocẽ só tem os atributos “quantidade” e “produto”.
Se for pra imprimir o nome do produto dentro de ItemDeVenda, crie um getProduto que te retorna o produto e depois um getNome() dentro de produto.
Ou coloque um getNomeDoItemDeVenda() dentro de ItemDeVenda e imprima o nome.
no System.out.println(); tu põe só “item” daê ele vai imprimir o objeto.
Peça para imprimir o nome de alguma forma cara.

sim, eu sei, mas eu quero imprimir ou criar uma toString dentro do metodo venda, e nao do item de venta

public void imprimirVenda(){
	System.out.println("Data: "+getData());
	System.out.println("Cliente: "+cli.getNome());
	System.out.println("Produto: "+prod.getDescricao());
}

eu fiz isso mas ele nao imprime o a descricao do produto

se não está imprimindo é por que não tem nada na variavel que você setou a descrição.
tente setar pelo construtor da classe ou usando um método set.

valeu.

Não sei se esta utilizando ArrayList , porem vc pode utilização pois como ele eh dinâmico n importa o tamanho que ira ficar ,
dai se precisar passar para algum calculo ou algo assim quando vc passa o arrayList , o mesmo vc esta passando somente a copia da referencia
sem alocar memória desnecessária e talz .

Cara é só vc sobreescrever o toString nas suas classes como vc mesmo mencionou.

Exato… Não que este seja o melhor modo de fazer isso, mas seguindo sua lógica, é só você sobrescrever o método toString() (que vem de Object) e, no retorno dele (que é String), retornar o nome do cliente…

abs

sera que posso fazer isso

//metodo toString public String toString(){ String frase=""; frase = "Produto: "+prod.getDescricao()+"Quantidade: "+getQuantidade(); return frase; }

minha classe venda

[code] public String toString(){
String frase1="";
frase1 = "Data: "+getData()+"Cliente: "+cli.getNome()+item.toString();
return frase1;

}[/code]

o problema eh que nao aparece nada quando peço para imprimir!! nao da erro, mas tbm nao aparece nada!!!

tente colocar, dentro do System.out.println, xxxxx.toString()

Eh!! marquei nessa…mas valeu cara cara

olha minha outra duvida…

eu tenho que mostrar as compras de um cliente, mas como faço para procurar o nome dele dentro sde um for, comparando o nome_digitado, com o nome que vai estar dentro do contrutor da classe venda

olha só

esse é meu contrutor da classe venda

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

esse eh o que eu fiz mas nao da certo

[code]int pv=0;
nome_cliente = util.entradaString("Informe o nome do Cliente: ");
for(armazena_vendas.equalsIgnoreCase(nome_cliente)){
System.out.println(“Cliente encontrado!”);
//exibe as compras
}else{
System.out.println(“Cliente não encontrado”);

 				        	    }[/code]