Em Java os
três aspectos de identificadores importantes, a saber, são: identificadores legais, convenções de código Java, padrões de nomeação JavaBeans.
IDENTIFICADORES LEGAIS
São as
regras que o compilador usa no momento de avaliar se um dado nome é legal. Estes
identificadores tecnicamente devem ser compostos apenas por caracteres Unicode,
caractere underscore, números e símbolo de moeda e não pode ser utilizada uma palavra
chave reservada da linguagem Java como um identificador.
E por falar
em palavra chave reservada Java segue
aqui uma lista atualizada das 50 palavras chave da versão 1.4 a versão 6.
abstract
|
boolean
|
break
|
byte
|
case
|
catch
|
char
|
class
|
cost
|
continue
|
default
|
do
|
double
|
else
|
extends
|
final
|
finally
|
float
|
for
|
goto
|
if
|
implements
|
import
|
instanceof
|
int
|
interface
|
long
|
native
|
new
|
package
|
private
|
protected
|
public
|
return
|
short
|
static
|
strictfp
|
super
|
switch
|
synchronized
|
this
|
throw
|
throws
|
transient
|
try
|
void
|
volatile
|
while
|
assert
|
enum
|
Os
identificadores devem começar com uma letra(“a,b,c,d,e...”), cifrão(“$”) ou
underscore(“_”) e muito importante nunca, jamais podem iniciar cum o
número(“0”,”1”,”2”,”3...”).
Depois do
primeiro caractere, os identificadores podem conter qualquer combinação de
letras, cifrões, underscores ou números. Veja alguns exemplos válidos e
inválidos:
Válidos:
String _nome;
int $idade1;
String estado$civil_2;
Inválidos:
String -sobrenome;
int nota#fiscal;
int 1_dia_semana;
Como Java é
case sensitive um identificador “_nome” é diferente de “_Nome” e não há um limite
de quantidade de caracteres que um identificador possa conter como, por
exemplo, “int $variavel_que_vai_receber_a_idade_maior_que_18;”, mais é bem
melhor usar sempre o bom censo porque não dizer as boas práticas de programação.
CONVENÇÕES DE CÓDIGO JAVA
São as
recomendações da Oracle para nomeação de classes, variáveis, e métodos. É
recomendado enfaticamente que os programadores Java as usem.
De acordo
com estimativas realizadas, ao longo da vida útil de um código padrão, 20% do
esforço será despendido na criação e no teste do mesmo e 80% restante do
esforço será despendido na manutenção e nas melhorias subsequentes deste
código.
E para
ajudar a diminuir o esforço envolvido em criar, testar, fazer a manutenção e
melhorar qualquer código foi criado para Java um conjunto de padrões de
programação muito bem chamado de “Convenções
de Código Java”, um breve e ótimo documento de leitura recomendado
encontrada em http://www.oracle.com/technetwork/java/codeconventions-150003.pdf.
Na prática
você poderá se deparar com alguns trechos de códigos bem doentios e de certa
forma incompreensíveis e ninguém deseja que você também escreva códigos Java
desta forma, nem o seu chefe, nem sua equipe, nem Eu e nem a Oracle.
Como por
exemplo, neste breve resumo veja como você deverá escrever suas classes, interfaces
, métodos, variáveis e constantes conforme as Convenções de Código Java.
CLASSES E INTERFACES
A primeira
letra deve ser maiúscula e se haver mais de uma palavra para formar o nome da
classe a primeira letra de cada palavra deve ser maiúscula como “MinhaClasse”
este formato é chamado de camelCase e normalmente para classes os nomes devem
ser substantivos com se segue: “Gato”, “Banco”, Conta”.
Já para as
interfaces os nomes devem ser normalmente adjetivos como: “Capacitavel”,
“Organizavel”, “Serializavel”.
MÉTODOS
A primeira
palavra deve ser minúscula e depois se aplica a mesma regra de camelCase
utilizado nas classes e interfaces e os nomes dos métodos devem ser normalmente
pares de verbo e substantivo como por exemplo: “obterSaldo”, “salvarCadastro”,
”executarBalanco”.
VARIÁVEIS
Como nos
métodos utiliza-se palavras em minúsculas e se aplica o formato camelCase no caso
de mais de uma palavra para o nome da variável e recomenda-se suar nomes curtos
e significativos desta forma: “minhaIdade”, “cor”, “i”.
CONSTANTES
Devem ser
escritas utilizando no nome letras maiúsculas com caracteres underscore como
separadores das palavras se haver mais de uma desta forma: “VALOR_PADRAO”, “NOME_COMPLETO_AUTOR”,
“FATOR”.
PADRÕES DE NOMEAÇÃO JAVABEANS
São os
requisitos de nomeação da especificação JavaBeans e é importante o programador
Java saber todas ou pelo menos algumas destas regras básicas de nomeação
JavaBeans.
Se trata de
uma especificação JavaBeans feita para ajudar os desenvolvedores a criarem
componentes Java que pudessem ser usados por outros desenvolvedores em uma
ferramenta de desenvolvimento chamada IDE , como exemplo eclipse e netbeans evitando
escrever todos código do zero, a API JavaBeans é um pouco complexa por isso é
preciso estudar seus fundamentos para entende-la melhor.
É importante
saber que JavaBeans são classes Java possuindo propriedades e sendo uma classe
os métodos que modificam o valor de uma
propriedade são chamados de setter e os métodos que obtêm o valor de uma
propriedade são chamados de getter .
As regras de
nomeação de propriedades JavaBeans e de nomeação Listeners JavaBean de mais
importância são:
Se a
propriedade não for booleana, o prefixo do método getter deve ser get.
Desta forma: “getTamanho()”, “getNome”, “getPeso” assim todos esses nomes são
getters JavaBeans válidos para seus respectivas propriedades.
Se a
propriedade for booleana, o prefixo do método getter é get ou is.
Por exemplo: “getData” e “isData” são nomes JavaBeans válidos para uma
propriedade booleana.
O prefixo do
método setter deve ser set. Exemplo: “setTamanho” é um nome JavBean válido para
uma propriedade chamada “tamanho”.
Em um nome
de um método getter ou setter deve-se mudar a primeira letra do nome da
propriedade para maiúscula e depois juntar a ela o prefixo adequado, set get ou
is.
As
assinaturas de métodos setter devem ser marcadas como public com um tipo
de retorno void e um argumento que represente o tipo da propriedade.
E as
assinaturas de métodos getter devem também ser marcadas como public, não usar
argumentos e ter um tipo de retorno que combine com o tipo do argumento do método
setter para a propriedade em questão.
Outro
detalhe é que a especificação JavaBean tem suporte a eventos, onde
permite aos componentes notificarem uns aos outros quando algo acontece. Este
modelo de eventos geralmente é usado em aplicações GUI usando swing por
exemplo, quando um evento ocorre como um clique do mouse é comunicado pra
muitos outros objetos que possam ter coisas a fazer quando ocorrer um clique.
Os objetos que recebem a informação de que ocorreu um dado evento são chamados de
listeners e é deles que irei falar logo a baixo encerrando este post.
REGRAS DE NOMEAÇÃO DE LISTENERS JAVABEAN
É importante
você saber que os métodos usados para adicionar ou remover listeners de um
evento devem também seguir os padrões de nomeação JavaBean, vejamos:
Os nomes de métodos
listeners usados para “registrar” um listener com uma fonte de eventos devem
usar o prefixo add seguindo do tipo do listener. Exemplo: “addActionListener()
“ é um nome válido para um método que uma fonte de eventos deverá permitir a outros registrarem para eventos Action.
Nomes de
métodos listeners usados para “desregistrar” um listener devem usar o prefixo “remove”
seguido do tipo do listener usando as mesmas regras do método add,
exemplo: “removeActionListener() “ é
válido.
O tipo de
listener a ser adicionado ou removido deve ser passado como o argumento para o
método. Exemplo: “addMeuListener(MeuListener
ml)” e “removeMeuListener(MeuListener ml)”.
Os nomes de métodos
listener deverão terminar com a palavra “Listener”, como no exemplo anterior.
Concluindo,
com relação ao que foi abordado aqui sobre identificadores e JavaBeans é
somente a ponta do iceberg do que você ainda tem de saber sobre Java, mas não
se assuste, Java não é um bicho de sete cabeças de difícil como muitos o fazem
e por se tratar de uma linguagem de programação segura e robusta é óbvio que
possua conceitos e regras a serem seguidas e mergulhar neste mundo de objetos,
APIs e especificações que é o Java, mas será uma aventura com passagem só de
ida do que mesmo um calvário, fiquem ligados no que ainda vem por aqui e até a
próxima!
Bibliografia:
SIERRA,
Kathy. BATES, Bert. Certificação sun®
para programador java™ 6 guia de estudo (exame 310-065). Trad. Marcelo
Soares. ed. Rio de Janeiro: Editora Alta Books, 2006.