| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/07/2010 23:28:11
|
gilsonpolito
Java Ninja
Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline
|
Boa noite pessoal, poderiam por favor me tirar uma dúvida a respeito da questão abaixo:
5- Quais nomes de métodos obedecem ao padrão JavaBeans? (Marque todas as corretas)
A. addSize
B. getcust
C. deleteRep
D. isColorado
E. putDimensions
O livro dá como solução da questão as alternativas B e D.
Ai que está minha dúvida: A alternativa B não obedece ao camelCase, pois deveria ser getCust.
No padrão JavaBeans é obrigatório seguir a risca o camelCase ou o livro está correto em considerar a alternativa B correta?
Desde já muito obrigado a todos que colaborarem.
This message was edited 1 time. Last update was at 20/07/2010 19:28:42
|
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 19/07/2010 23:49:57
|
altitdb
JavaEvangelist
![[Avatar]](/images/avatar/6260fe7b21d72d3521d999c79fe01fc7.jpg)
Membro desde: 12/08/2009 20:51:17
Mensagens: 344
Offline
|
Boa noite cara,
no meu livro essa é a questão número 2!
E a alternativa B e D estao corretas.
B: getCust
D: isColorado
Aqui o camelCase está escrito certo.
Que eu saiba tem que seguir ao pé da risca.
xD~~
|
Oracle Certified Java Programmer 6
Blog www.altieresdematos.com.br
www.nfexpresso.com.br (Sua NF-e de forma fácil)
@altitdb |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2010 00:24:52
|
rogelgarcia
GUJ Master
![[Avatar]](/images/avatar/861e8bae74e22a572164fdb59b1caa8b.jpg)
Membro desde: 21/06/2007 23:27:21
Mensagens: 1850
Offline
|
Tem que seguir a risca.. o livro deve estar incorreto...
Teria que ser getCust realmente
|
Rógel Garcia, criador do framework NEXT
http://www.nextframework.org
 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2010 08:56:22
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
Nessas horas é sempre bom ler a especificação do padrão. Pelo padrão, todas as alternativas são corretas. O padrão não exige que o programador siga a convenção de código do java, já que ele pode definir um BeanInfo. Como ele também fala em nome de método, e não de propriedade, não há a obrigatoriedade de iniciar com get ou set, o método apenas precisa ser público, ou ser declarado no BeanInfo. Veja:
especificação no capítulo 8.2 wrote: However, within Java Beans the use of method and type names that match design patterns is entirely optional. If a programmer is prepared to explicitly specify their properties, methods, and events using the BeanInfo interface then they can call their methods and types whatever they like. However, these methods and types will still have to match the required type signatures, as this is essential to their operation. Although use of the standard naming patterns is optional, we strongly recommend their use as standard naming conventions are an extremely valuable documentation technique.
especificação no capítulo 8.5 wrote: 8.5 Design Patterns for Methods By default, we assume that all public methods of a Java Bean should be exposed as external methods within the component environment for access by other components or by scripting languages. By default, this includes any property accessor methods, and any event listener registry methods.
Está claro, portanto, que seguir a convenção de camel case é totalmente opcional, mas é fortemente recomendada. O livro deveria reformular a pergunta para: "Qual desses métodos seguem o padrão de propriedades do JavaBeans?" ou então "Qual desses métodos seguem o padrão recomendado pelo JavaBeans?" (embora essa pergunta só invalidaria a B).
This message was edited 3 times. Last update was at 20/07/2010 09:01:56
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2010 12:58:16
|
tralsl
Debugger
![[Avatar]](/images/avatar/b9a460fcae3ca69706c8e2e3383b9698.png)
Membro desde: 15/05/2008 14:53:28
Mensagens: 62
Offline
|
olá gilsonpolito,
eu tive a mesma dúvida,
mas esse é um erro da verão em português do livro
na versão em inglês esta getCust()
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2010 19:28:17
|
gilsonpolito
Java Ninja
Membro desde: 21/12/2006 19:15:48
Mensagens: 256
Offline
|
Boa noite pessoal,
Primeiro obrigado a todos que responderam. quanto a questão acredito mesmo que seja erro do livro. quanto a especificação, somente fiquei com dúvida, pois no próprio livro está escrito que quando a questão se referir a padrões JavaBeans o mesmo estará explicito na questão como está no livro.
Valew
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2010 19:48:51
|
marciosouzajunior
JavaChild
![[Avatar]](/images/avatar/d6675f81166c8d534b8c75e5f89274aa.jpg)
Membro desde: 23/05/2010 17:19:03
Mensagens: 121
Offline
|
Tenho o livro em português e também está getcust.
Queria aproveitar o topico para tirar uma duvida na mesma questão.
A opção A da questão é addSize. No livro fala das regras para nomeação de Listeners.
Os prefixos para Listeners são add e remove.
No caso da questão está errada por nao se tratar de um Listener, como por exemplo:
addXListener?? No exercicio rapido do final do capitulo fala assim:
"Os metodos javabeans devem ser nomeados usando-se camelCase e,
dependendo do proposito do metodo, devem começar com set, get, is, add ou remove"
Obrigado!
|
Graduado em Sistemas de Informação
Projeto pessoal: http://java3deditor.com
Blog: http://marciosouzajunior.blogspot.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2010 20:11:18
|
entanglement
GUJ Hacker
Membro desde: 26/09/2009 09:18:56
Mensagens: 5750
Offline
|
Nunca tinha pensado nessas sutilezas (nem lembro se caiu com tal grau de "pentelhosidade" na prova que fiz).
Achava que em provas, quando se fala de "padrão JavaBeans", normalmente você está falando em getters ("getAlgumaCoisa", "isAlgumaCoisa") e setters ("setAlgumaCoisa"). Nem tinha imaginado que poderia entrar com essa parte de "event listeners" e outras coisas que normalmente não se costuma usar - já que hoje em dia os "java beans" acabaram ficando sinônimo de "POJOs", não de "componentes visuais, como as OCX do VB 6".
Lembro de um livro velho que eu tinha, chamado "JavaBeans for Dummies", que realmente não era exatamente para "dummies" e falava nessas sutilezas. Hoje em dia talvez você possa considerar que "Java Bean" = "POJO" (Plain Old Java Object, ou seja, algo que só tem getters, setters e outros métodos).
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 20/07/2010 20:13:42
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
O padrão javabens existe que os métodos listeners chamem addXXXListener. É necessário tanto o prefixo quanto o sufixo, por isso addSize() não se enquadraria. Mas notem o erro do livro em relação a métodos. O padrão Java beans permite que os beans tenham métodos comuns, que não são propriedades e nem listeners. E esses podem ter qualquer nome. Além disso, o padrão não exige para métodos o camel case, embora recomende fortemente. Por isso, em se tratando de métodos, todas as alternativas acima seriam válidas. A questão claramente confundiu com a especificação para propriedades, que é um pouco mais rígida.
This message was edited 4 times. Last update was at 20/07/2010 20:18:44
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 21/07/2010 08:12:13
|
marciosouzajunior
JavaChild
![[Avatar]](/images/avatar/d6675f81166c8d534b8c75e5f89274aa.jpg)
Membro desde: 23/05/2010 17:19:03
Mensagens: 121
Offline
|
Então so pra resumir o topico: Para fins de certificação o padrão JavaBeans pede que os metodos tenham o prefixo get, set ou is seguindo o camelCase e dependendo do caso (listeners) deve ser add ou remove (addMyListener). No caso do listener deve ser usado a palavra listener como foi dito.
|
Graduado em Sistemas de Informação
Projeto pessoal: http://java3deditor.com
Blog: http://marciosouzajunior.blogspot.com |
|
|
 |
|
|