publicclassItemDeVenda{privateintquantidade=0;Produtoprod=newProduto();publicItemDeVenda(){}publicItemDeVenda(Produtoprod,intquantidade){this.prod=prod;this.quantidade=quantidade;}publicdoublecalcularPreco(doubletpagar){tpagar=prod.getValorUnit()*getQuantidade();returntpagar;}//metodo get e set de quantidapublicintgetQuantidade(){returnquantidade;}publicvoidsetQuantidade(intquantidade){this.quantidade=quantidade;}//metodo imprimir intem de vendapublicvoidimprimeItemDeVenda(){System.out.println("Produto: "+prod.getDescricao());System.out.println("Quantidade: "+getQuantidade());}}
publicclassVenda{privateStringdata="";Clientecli=null;ItemDeVendaitem=null;Produtoprod=newProduto();// int x=0;publicVenda(Stringdata,Clientecli,ItemDeVendaitem){this.data=data;this.cli=cli;this.item=item;}publicStringgetData(){returndata;}publicvoidsetData(Stringdata){this.data=data;}publicvoidimprimirVenda(){System.out.println("Data: "+getData());System.out.println("Cliente: "+cli.getNome());System.out.println("Item: "+item);}}
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
michelato
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
michelato
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
michelato
sim, eu sei, mas eu quero imprimir ou criar uma toString dentro do metodo venda, e nao do item de venta
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…
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
michelato
Eh!! marquei nessa…mas valeu cara cara
M
michelato
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
intpv=0;nome_cliente=util.entradaString("Informe o nome do Cliente: ");for(armazena_vendas.equalsIgnoreCase(nome_cliente)){System.out.println("Clienteencontrado!");//exibeascompras}else{System.out.println("Clientenãoencontrado");}