tanto no decorrer do primeiro capítulo quanto no tópico “Exercícios Rápidos”, bem no início de “Identificadores”, está escrito o seguinte: “Os métodos JavaBeans devem ser nomeados usando-se camelCase e, dependendo do propósito do método, devem começar com set, get, is, add ou remove.”
A questão 5 deste mesmo capítulo (1), diz o seguinte:
Quais nomes de métodos obedecem ao padrão JavaBeans?
A. addSize
B. getCust
C. deleteRep
D. isColorado
E. putDimensions
Somente B e D estão corretas. Segundo explicações no livro, a alternativa “A” também não está correta?
E pelo que você deve ter lido, Listener tem um padrão de nomenclatura:
addActionListener por exemplo.
Logo, addSize não é válido, pois, Size não é um listener.
B
bezerrasantos
Ah sim, agora entendi… Tipo o exemplo do livro: addMyListener
Blz, valeu irmão.
Abraço!
ViniGodoy
Mesmo? E o que você diz do método add da classe List? E o addElement da classe Vector?
Me parece que a razão é por que o método add remete ao fato de adicionar um “size”, quando correto seria você querer obter o valor de size e, portanto, o método deveria chamar getSize().
É um erro meio subjetivo. Se você tem uma classe que é um list de sizes, poderia SIM chamar o seu método de addSize.
Adriano_Almeida
Estava me referindo aos padrões para Listeners (ficou um pouco estranha a minha frase mesmo, generalizando)
ViniGodoy
É que você falou que add é “só para listeners”. A generalização é que ficou estranha…
B
bezerrasantos
Enfim, addSize está errado porque o autor está supondo que deveria ser setSize?
Mas addSize está no padrão JavaBeans.
ViniGodoy
Então, para acabar com a dúvida peguei a norma dos Java Beans.
O colega ali estava certo. No padrão Java Beans, add e remove são somente usados para listeners. Neste caso, o correto seria dizer que addSize não é um método bean, pois deveria ser addSizeListener.
Eu confundi pois o método set() aceita propriedades indexadas, set(int index, Object valor) e nas classes que eu descrevi estas propriedades também estão presentes no método add. Mas embora sejam coisas da Collections Framework, não são coisas do padrão Java Bean.
E desculpe pela confusão!
derheimen
Os métodos de padrões JavaBeans, como get, set, is começam com a primeira letra minuscula, certo!!!
Depois do get, set ou is por exemplo, a segunda palavra deve conter letras maisculas ou aceita qualquer caixa alta ou baixa.
Fiquei com dúvidas em uma questão… alguém sabe???
gbmesso
Dúvida cruel: Esses padrões caem na prova ??? Por essa eu não espereva ???
LPJava
pode crer que cae, poucas mas caem eu ja peguei 2 perguntas dessas no whilabs e me quebrei… fiquei nessa mesma duvida…
ViniGodoy
As próximas palavras seguem o padrão CamelCase.
Embora não seja um consenso nem entre a própria Sun, o livro Effective Java recomenda que no caso de siglas, apenas a primeira letra também seja maiúscula.
nada impede de vc por minusculo ou maiusculo em:
setidade, setIdade.
mais a pergunta eh sobre nomeação, e de acordo o que a nomeação diz eh invalido a forma escrita, mais nao quer dizer que o codigo nao compila… esse pergunta foi para testar se o cara ta atento em saber as regras de nomeação. O importante nao confudir que seja obrigatorio vc declara como quiser…
ViniGodoy
Bem observado Camilo.
O Java admite mesmo ambas as formas, mas a regra é válida apenas se você quer que sua classe esteja no padrão Java Bean.
derheimen
Bele galera, eu estava como essa dúvida.
Se a documentação diz assim, quem sou eu para contestar… :lol: :lol: :lol: :lol:
Valeu, muito obrigado.
LPJava
a nomeação é um padrao de desenvolvimento, que pode ser adotado ou não, o ideal que seja ne? caso o seu amigo programador morra, ou seja demitido ja pensou se ele nao segue a documentação como você ou outro programador que vai ficar com a tarefa dele, vai conseguir entender a sintaxe dele se no desenvolvimento ele usou uma forma que para ele seria a melhor, entao muitos gerente de projeto e empresas em si, a nomeação é adotada e o uso é obrigatorio, e alem a legibilidade do codigo heeh quando começei a estudar bem no inicio nao usava nomeação depois começei a usar e percebi a rapidez que é de vc olhar uma class de um amigo e saber que isso eh metodo, isso eh um construtor, isso eh uma variavel de instancia… isso returna um tipo boolean… e por ai vai
flw! espero ter ajudado.
ViniGodoy
Na verdade, acho que isso vale para qualquer tipo de padrão, seja o Java Bean, sejam aqueles definidos na sua própria empresa.
O java mesmo é muito pouco restritivo, por ele a seguinte classe é válida: