Arrays

39 views
Skip to first unread message

Tiago Oliveira

unread,
Aug 4, 2016, 10:36:53 PM8/4/16
to livro-java-oo
Olá pessoal. Tenho uma dúvida sobre a página 134.

Onde eu devo escrever esse código, na classe CarrinhoDeCompras ou na classe RegistroDeVendas?



Produto[] produtos = carrinho.getProdutos();

for (int i = 0; i < produtos.length; i++) {
Produto produto = produto[i];
if (produto != null) {
System.out.printl(produto.getValor());
}
}

Rodrigo Turini

unread,
Aug 4, 2016, 10:46:09 PM8/4/16
to Tiago Oliveira, livro-java-oo
Oi Tiago

É na classe RegistroDeVendas! Repare que você vai usar um objeto do carrinho (CarrinhoDeCompras) pra pegar os produtos, iterar sobre eles e depois imprimir o valor dos que não forem nulos. 

Se tiver qualquer dúvida sobre o código, ou travar na hora de implementar, nos avise, ta bem?

um abraço

--
Você recebeu essa mensagem porque está inscrito no grupo "livro-java-oo" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para livro-java-o...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para livro-...@googlegroups.com.
Para ver essa discussão na Web, acesse https://groups.google.com/d/msgid/livro-java-oo/fd8079a5-e26e-45b6-9bda-531993e31964%40googlegroups.com.
Para mais opções, acesse https://groups.google.com/d/optout.

Tiago Oliveira

unread,
Aug 5, 2016, 4:35:37 AM8/5/16
to livro-java-oo, heart...@gmail.com, rodrigo...@caelum.com.br
Estou meio perdido com os arrays, assim ficou meu código:


CarrinhoDeCompras.png
RegistroDeVendas.png

Rodrigo Turini

unread,
Aug 5, 2016, 5:24:21 PM8/5/16
to Tiago Oliveira, livro-java-oo
Oi Tiago

Na linha 35, onde está o erro de compilação, você está se referenciando ao array como "produto", no lugar de "produtos" (plural).

A linha deve ficar assim:

Produto produto = produtos[i];

Experimenta fazer a mudança para ver se tudo funciona conforme o esperado? 

Não se preocupe se a parte de arrays não ficar um pouco mais confusa agora no começo, ela realmente é mais complicada pra quem está começando. Pra ajudar, vou tentar fazer comentários sobre cada uma das linhas desse trecho:

// aqui pegamos todos os produtos que foram adicionados no carrinho de compras
Produto[] produtos = carrinho.getProdutos();

// queremos passear por essa "lista" (array) de produtos, mostrando o valor de cada 
// um deles, portanto usamos o FOR, que vai repetir esse código desde a posição 0 até
// a posição do ultimo produto do array. Para saber o último produto, usamos o length:
for(int i =0; i < produtos.length; i++) {

    // na primeira vez que passar por aqui, o "i" vai ter o valor 0, depois 1, 2, 3, 4, etc.
    // portanto cada vez que o código se repetir, ele vai pegar o próximo produto, do primeiro ao último.
    Produto produto = produtos[i];

    // por garantia você está conferindo se o produto da posição que você buscou está preenchido,
    // ou seja, se ele não é nulo.
    if (produto != null) {

        // e caso não seja, finalmente imprimimos seu valor no console 
        System.out.println(produto.getValor());
    }
}

Faz sentido? Não deixe de enviar suas dúvidas caso algo ainda não esteja claro. 

um abraço

Em sex, 5 de ago de 2016 às 05:35, Tiago Oliveira <heart...@gmail.com> escreveu:
Estou meio perdido com os arrays, assim ficou meu código:


--
Você recebeu essa mensagem porque está inscrito no grupo "livro-java-oo" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para livro-java-o...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para livro-...@googlegroups.com.

Tiago Oliveira

unread,
Aug 5, 2016, 6:58:38 PM8/5/16
to livro-java-oo, heart...@gmail.com, rodrigo...@caelum.com.br
Obrigado Rodrigo, agora entendi o funcionamento de cada linha.

Deixa eu ver se entendi uma coisa, na linha 32, o array recebe todos os  produtos. Eu não deveria instanciar Produto antes de chamar o método getProdutos, 
assim como eu faço com o fisico e o ebook, algo assim:

Ebook ebook = new Ebook();
ebook.getNome();

Produto[] produtos = new Produto[10];
Produto[] produtos = carrinho.getProdutos();


Outra pergunta sobre a linha 35:
Produto produto = produtos[i]; (Está parecendo com um parametro e seu tipo)

 é correto dizer que esse produto é a representação do fisico e do ebook, ou de qualquer outro produto que eu tenha criado na classe RegistroDeVendas? 





Rodrigo Turini

unread,
Aug 7, 2016, 9:42:14 AM8/7/16
to Tiago Oliveira, livro-java-oo
Oi Tiago

É isso mesmo. Repare que quando você chama carrinho.getProdutos(), você já tinha instanciado um livro físico e um ebook e adicionado ao carrinho. Neste momento você só está pegando o array com as referencias aos produtos que você já criou. 

> é correto dizer que esse produto é a representação do fisico e do ebook, ou de qualquer outro produto que eu tenha criado na classe RegistroDeVendas? 

é sim! é justamente isso. 

--
Você recebeu essa mensagem porque está inscrito no grupo "livro-java-oo" dos Grupos do Google.
Para cancelar inscrição nesse grupo e parar de receber e-mails dele, envie um e-mail para livro-java-o...@googlegroups.com.
Para postar nesse grupo, envie um e-mail para livro-...@googlegroups.com.
Message has been deleted

Tiago Oliveira

unread,
Aug 7, 2016, 11:14:39 PM8/7/16
to livro-java-oo, heart...@gmail.com, rodrigo...@caelum.com.br
Entendi, obrigado.
Reply all
Reply to author
Forward
0 new messages