Duvida na declaração de objetos

13 respostas
rafael.luc
Estou vendo alguns exemplos de codicos e me deparei com isso:
import java.util.*;

class Catalog {
   private List<Product> products = new ArrayList<Product>();
   void add(Product product) {
      products.add(product);
   }
}

Porque dar um nome ao objeto duas vezes, começando com maiúscula e depois minuscula (Product product) ?

13 Respostas

E

referente a nomenclatura segue o padrão Camelcase

do restante

(Classe) (Objeto)
Produto produto
(TIPO) (Objeto)

Produto é a classe do objeto
produto é o objeto em si

rafael.luc

Obrigado pela resposta, mas e a variável no plural (products)?

private List<Product> products = new ArrayList<Product>();
asousaj

Obrigado pela resposta, mas e a variável no plural (products)?

Porque é uma lista de Product’s … e lista dá entendimento de plural.

– Edit –
Claro que a lista poderia ser de um Product só, mas ai não teria sentido usar uma list.

Resposta que o ViniGodoy deu aqui no forum
"É que a lista representa um conjunto. A variável da lista vai guardar vários nomes, não um só.
Então, é uma convenção “de fato” chama-la no plural. Algumas pessoas também podem chamar de nomeList, mas é mais longo e difícil de digitar. "

rafael.luc

Vou postar o codico completo:

import java.util.*;

class Catalog {
   private List<Product> products = new ArrayList<Product>();
   void add(Product product) {
      products.add(product);
   }
}
class Product {
   private String id;
   private String name;
   Product(String id, String name) {
      this.id = id;
      this.name = name;
   
   }

Pelo que eu entendi em:

class Catalog {
   private List<Product> products = new ArrayList<Product>();// products é um integrador
   void add(Product product) { //adição do objeto a classe
      products.add(product); // product é adicionado no integrador products
   }
}

Seria isso?

faelbsr

Cara… Você só pode estar trollando com a gente… kkkk

rafael.luc

Nada ver, porque achou isso?

faelbsr

Por nada camarada hehehe…

Você habitualmente programa em qual linguagem?

Imagino que não seja tipada, por isso sua dúvida… correto?

rafael.luc

Aprendi C, programei em PHP e Basic (microcontrolador), sim a duvida e sobre tipos e orientação a objetos. Tenho que fazer uma modificação em um projeto em java, os comentários que coloquei no codico estão corretos?

faelbsr
class Catalog {  
   private List<Product> products = new ArrayList<Product>();// products é um integrador  
   void add(Product product) { //adição do objeto a classe  
      products.add(product); // product é adicionado no integrador products  
   }  
}

Certo cara, perdoe-me por achar que estava trollando kkkk;

Bem, não sei o que você entende de integrador mas a List seria um Array ou um Vetor que armazena uma lista de produtos nela…

onde você comentou adição do objeto a classe é a declaração de um método que esta recebendo como parâmetro um objeto produto que será adicionado na lista de produto…

apenas isto…

em PHP seria algo

public class Catalog{
 
 private $listaDeProduto;

 function addProduto($produto){

 $listaDeProduto[] = $produto;

 }

}
E

Cara em orientação a objetos temos que assimilar o máximo o mundo real com nosso código.

Quando temo List , quer dizer que temos “VÁRIOS” produto e nada mais coeso chamar (vários produto) de “PRODUTOS”, intende?

EX : ( Mundo Real )

Quando você vê uma sala com um número grande de PESSOA , você fala que viu uma sala com uma LISTA de PESSOA? ou fala que viu uma sala com varias PESSOAS?

flwss

rafael.luc
faelbsr:
class Catalog {  
   private List<Product> products = new ArrayList<Product>();// products é um integrador  
   void add(Product product) { //adição do objeto a classe  
      products.add(product); // product é adicionado no integrador products  
   }  
}

Certo cara, perdoe-me por achar que estava trollando kkkk;

Bem, não sei o que você entende de integrador mas a List seria um Array ou um Vetor que armazena uma lista de produtos nela...

onde você comentou adição do objeto a classe é a declaração de um método que esta recebendo como parâmetro um objeto produto que será adicionado na lista de produto...

apenas isto...

em PHP seria algo

public class Catalog{
 
 private $listaDeProduto;

 function addProduto($produto){

 $listaDeProduto[] = $produto;

 }

}

Realmente não esta correto chamar de integrador, conheço vetor que no meu entendimento adiciona uma lista com apenas uma coluna, como no seu exemplo em PHP. No caso do codico que postei, existe variáveis que são adicionadas ao product , penso eu que possam serem listadas individualmente, cada variável define uma coluna na lista.
Confundi em chamar de integrador, mas acredito que correto seria interator, aqui esta de onde tirei o codico:

http://www.developer.com/java/other/article.php/10936_3343771_2/Using-Foreach-Loops-in-J2SE-15.htm

Quando temo List , quer dizer que temos "VÁRIOS" produto e nada mais coeso chamar (vários produto) de "PRODUTOS", intende?
A questão não seria do nome escolhido que eu entendi que é uma lista por isso o plural. A questão e porque aquele tipo de declaração e onde e usado.

Eu poderia simplesmente escrever desta forma:

private List<String> products = new ArrayList<String>();
asousaj

Pode não amigo, sua lista é de Product e não de String, são objetos totalmente distintos.

Falow!

faelbsr

Cara…

Em java, tirando os tipos primitivos (int,boolean,double, etc…), tudo é Objeto, inclusive um atributo do tipo String…

Quando definimos uma List, estamos dizendo que nosso “Vetor” vai conter referências (“ponteiros”) para os nossos objetos Strings adicionados nela…

Mesma coisa funciona para sua lista de produto, List. Em cada linha dessa lista (“vetor”) você vai ter uma referência (“ponteiro”) para seus objetos do tipo Pedido…

Criado 9 de dezembro de 2011
Ultima resposta 10 de dez. de 2011
Respostas 13
Participantes 5