Padrão JavaBeans

Estava estudando SCJP 5 e me deparei com uma questão que me deixou na duvida.

Pelo que li na internet nomes de métodos devem começar com a primeira letra minuscula e se forem nomes compostos as iniciais dos proximos nomes devem ser maiusculas, seguindo o padrão camelCase.

Exemplo: getTamanho, setNome e usando “set” “get” e “is” corretamente segundo o JavaBeans.

Então encontrei uma questão que dava como resposta correta dois métodos em negrito abaixo:

addValor
getcidade
deleteRep
isColorido
putDimensions

Mas o método getcidade não obedece o camelCase, veja que cidade esta escrito com letra minuscula, tah certo essa resposta?

vc deve estar atento se os objetivos desse tópico da prova. Se é sobre JavaBeans ou se é sobre compilar ou não compliar… è uma forma de confundir e tirar a atenção para outra cosia que nao tem nada a ver!

ele funciona perfeitamente, mas não está de acordo com a especificação JavaBeans…

:stuck_out_tongue:

Então kra a pergunta da questão era: Quais os nomes de metodos que obedecem ao padrão JavaBeans? (Marque todas as corretas)

então pelo jeito eu não me enganei, o exercicio tá errado msm neh?!

O Livro tem alguns erros.
A maioria por conta da tradução…

Na parte de JavaBeans, lembro que tinha um erro.
Acho que era esse.

Abraços.

É verdade que o padrão camelCase fala que os metodos devem iniciar com letra menuscula e o segundo nome com letra maiuscula.

Ex: andersonBonavides
,
Mas só para concluir vc ele quiz dizer que os métodos validos são set, get e is para boolean.

[quote=giovaniufop]Estava estudando SCJP 5 e me deparei com uma questão que me deixou na duvida.

Pelo que li na internet nomes de métodos devem começar com a primeira letra minuscula e se forem nomes compostos as iniciais dos proximos nomes devem ser maiusculas, seguindo o padrão camelCase.

Exemplo: getTamanho, setNome e usando “set” “get” e “is” corretamente segundo o JavaBeans.

Então encontrei uma questão que dava como resposta correta dois métodos em negrito abaixo:

addValor
getcidade
deleteRep
isColorido
putDimensions

Mas o método getcidade não obedece o camelCase, veja que cidade esta escrito com letra minuscula, tah certo essa resposta?

[/quote]

E ai, blz?
Bom na minha opnião, se a questão cobra explicitamente o padrão JavaBeans, esta resposta não é correta.
Somente se fosse getCidade.
Mas de que livro você viu esta questão?
Abraço.

tA NO LIVRO SCJP 5 da Kathy Sierra 2ª Edição.
E a pergunta diz explicitamente: Padrão JavaBeans

é a questão 5 do Capitulo 1 na página 45

Mas olha lá direitinho se ta escrito getcidade ou getCidade o que é totalmente diferente.
Vc deve procurar ai na net as erratas do livro. Tem todas as questões erradas tem erros tbm de capitulos nos ensinamentos.

PERGUNTA 5 pagina 45 2ª edição SCJP - KATHY SIERRA

Na verdade eu usei getcidade como exemplo, mas o exercicio real é o seguinte, da mesma maneira q esta escrito no livro:

Olhando a resposta dada no livro, percebe-se que a autora quis dizer quais são os métodos que usam os PREFIXOS corretos, mas na pergunta ela não passou esse significado (ou pelo menos nã versão traduzida não)

Quais nomes de métodos obedecem ao padrão JavaBeans? (Marque todas as corretas)

A. addSize
B. getcust
C. deleteRep
D. isColorado
E. putDimension

Resposta do livro:

B e D usam prefixos validos get e is.

A, C e E estão incorretas porque add, delete e put não são nomes de prefixos JavaBeans padrões.

[quote=giovaniufop]PERGUNTA 5 pagina 45 2ª edição SCJP - KATHY SIERRA

Na verdade eu usei getcidade como exemplo, mas o exercicio real é o seguinte, da mesma maneira q esta escrito no livro:

Olhando a resposta dada no livro, percebe-se que a autora quis dizer quais são os métodos que usam os PREFIXOS corretos, mas na pergunta ela não passou esse significado (ou pelo menos nã versão traduzida não)

Quais nomes de métodos obedecem ao padrão JavaBeans? (Marque todas as corretas)

A. addSize
B. getcust
C. deleteRep
D. isColorado
E. putDimension

Resposta do livro:

B e D usam prefixos validos get e is.

A, C e E estão incorretas porque add, delete e put não são nomes de prefixos JavaBeans padrões.

[/quote]

Hum, acho que esta questão está mesmo errada.
Não sei se vc notou, mas no livro tem alguns erros de português e outros no próprio código, então deve ter sido mais um erro.
Mas com toda certeza esta opção não é válida.

isso tem cara de erro de digitação da editora… mais assim… nao se aprenda a isso do livro… principal da tradução… saiba das Regras JavaBeans… e se vc tiver o whizlabs la tem questoes a respeito… E outra JavaBeans nao cobrado apenas na SCJP SCWCD ela é aplicada a todo momento e vc percebe isso nos metodos e quanto ela é importante… entao aprenda as regras que para SCJP nao sao muitas… e isso é o essencial…

e add, put etc realmente nao cobre javabeans observe que o livro é abordado isso… lei atentamente a parte teorica do javabeans que ta bem explicado no livro… porem percebi falha nessas questoes tb mais isso vc releva…

flw espero ter ajudado :smiley:

é.

se a gnt tah encontrando os erros ISSO É BOM, significa q realmente aprendemos auhuaa
o pior seria se tivesse errado e a gnt nem visse, ae ia ser foda rs

[quote=giovaniufop]Estava estudando SCJP 5 e me deparei com uma questão que me deixou na duvida.

Pelo que li na internet nomes de métodos devem começar com a primeira letra minuscula e se forem nomes compostos as iniciais dos proximos nomes devem ser maiusculas, seguindo o padrão camelCase.

Exemplo: getTamanho, setNome e usando “set” “get” e “is” corretamente segundo o JavaBeans.

Então encontrei uma questão que dava como resposta correta dois métodos em negrito abaixo:

addValor
getcidade
deleteRep
isColorido
putDimensions

Mas o método getcidade não obedece o camelCase, veja que cidade esta escrito com letra minuscula, tah certo essa resposta?
[/quote]

CamelCase não faz parte da especificação apenas uma nomenclatura padrão de prefixos paras os métodos acessores e modificadores. A resposta está certa.
A convenção de escrita não pode interferir com os padrões e vice-versa.
A convenção de escrita é para facilitar a leitura por seres humanos e não para ser compativel com ceto padrão.

mas na pagina 5 do livro 2ª edição, no topico: Regras de Nomeação de Propriedades JavaBean

Tem um item que esta escrito assim:

"Para ter o nome completo de um metodo getter ou setter, passe a primeira letra do nome da propriedade para maiuscula e depois anexe o prefixo apropriado (get, is ou set).

Baseado nisso eu mais uma vez volto a acreditar que a questão estava incorreta.

Até que alguem me convença do contrario hehe

t+

Cara, a galera já discutiu isso e realmente foi um erro de digitação.

Dá uma olhada aqui.

http://www.guj.com.br/posts/list/83105.java

lokura lokura

dexa eu continua estudando outra coisa, daki a poco esse assunto vai virar filosófico adufadf

valeu galera

[quote=giovaniufop]mas na pagina 5 do livro 2ª edição, no topico: Regras de Nomeação de Propriedades JavaBean

Tem um item que esta escrito assim:

"Para ter o nome completo de um metodo getter ou setter, passe a primeira letra do nome da propriedade para maiuscula e depois anexe o prefixo apropriado (get, is ou set).

[/quote]

Vc está usando uma mnemónica como regra. Isso é errado.
Leia a especificação Java Bean em http://java.sun.com/javase/technologies/desktop/javabeans/docs/spec.html
Não ha nenhuma regra para os nomes dos setters e dos getters.

A regras dos nomes é imposta à parte pelas boas regras de programação em java. Contudo não ha uma obrigação tecnica a que assim seja.

Por outro lado vc está usando o livro preparatório para especificação como um documento que define os padrões. Não é assim que funciona. O livro está preocupado em fazê-lo entender em poucas linhas as regras que vc tem que usar para passar no exame. Por isso ele fornece mnemonicas. Contudo, passar no exame não significa que vc entende as regras: apenas significa que as sabe.
Para entender as regras procure as documentações oficiais.

Se duvidar crie um JavaBean com os nomes em minuscula e teste…

HM, BLZ, acho q essa eh a conclusão final msm, até q enfim haha

valeu