Vetores instanciados dentro de construtores?

15 respostas
M
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());	
	}
}
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);
	}
	
}
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

15 Respostas

Mr_Arthur
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.

M

caro amigo!!!

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

Mr_Arthur

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()

M

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

Mr_Arthur

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.

M

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

M
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

Mr_Arthur

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.

edmarr

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 .

Giulliano

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

thundercas

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

M
sera que posso fazer isso
//metodo toString
	public String toString(){
		String frase="";
		frase = "Produto: "+prod.getDescricao()+"Quantidade: "+getQuantidade();	
		return frase;	
	}
minha classe venda
public String toString(){
		String frase1="";
		frase1 = "Data: "+getData()+"Cliente: "+cli.getNome()+item.toString();
		return frase1;
		
	}

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

thundercas

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

M

Eh!! marquei nessa…mas valeu cara cara

M

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
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");
	 				        	    	
	 				        	    }
Criado 7 de dezembro de 2009
Ultima resposta 10 de dez. de 2009
Respostas 15
Participantes 5