Pesquisar este blog

sábado, 1 de agosto de 2009

Identificadores e JavaBeans

Hoje irei abordar um assunto básico porém primordial para o exame, Identificadores Java. Estes fazem parte dos Objetivos 1.3 e 1.4 do exame da SCJP da Sun. Se você não estiver familiarizado com algum termo aqui não se preocupe, pode me perguntar ou pesquisar no google sobre ele. Na linguagem Java o que não falta é documentação livre.

Objetivo 1.3 - Desenvolver código que declare , inicialize e use primitivos , arrays, ununs e objetos como variáveis static, de instâncias e locais. Além disso, usar identificadores legais para nomes de variáveis.

Objetivo 1.4 - Desenvolver código que declare métodos static e não-static e, se apropriado, usar nomes de métodos que obedeçam aos padrões de nomeação JavaBeans. Além disso, desenvolver código que declare e use uma lista de argumentos de extensão variável.


Para o exame é necessário ter conhecimento dos identificadores do Java. Isto é bem básico, porém se não se atentar pode perder uma questão por causa deles. Então segue algumas regras que devem ser seguidas na hora de declarar indicadores:

  1. Não podem começar com números
  2. Podem começar com caracteres de conexão (Underscore "_") ou com cifrão ($).
  3. Não podem conter palavras chave do Java
  4. Após o primeiro caracter pode ter qualquer combinação de qualquer tipo de caracter ASCII válido
  5. Os identificadores Java são Case Sensitive, ou seja o identificador SCJP e scjp são diferentes para o compilador Java

Abaixo segue a relação de palavras chaves atuais para o Java:

abstract, boolean, break, byte, case, cacth ,class ,const, 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, stricitfp, super, switch, synchronized, this, throw, throws, transient, try, void ,volatile, while, assert, enum.

Convenções de Código Java da Sun

Estas convenções apesar de não serem cobradas na prova de certificação SCJP é muito interesante termos esta em mente. A única regra de nomeação que é obrigatória são as faladas anteriormente, por tanto na prova pode haver códigos não condizentes com as convenções da prória SUN.

  • Classes e interfaces: Por convenção todas as classes em Java devem começar com letra maiúscula, caso seja necessário mais de uma palavra para nomear a classe deve-se colocar a primeira letra de cada palavra maiúscula, esta regra em inglês é chamado de "camelCase". Exemplos: Scjp, SunCertifiedJavaProgrammer, ClasseDemonstrativa.
  • Métodos: Segundo a regra a primeira letra deve ser minúscula, após isso a regra camelCase deve ser seguida. Além disso geralmente os nomes são compostos de verbo-substantivo. Exemplos: obterTamanho, fazerCalculo, gravarDados.
  • Variáveis: Assim como nos métodos a regra camelCase deve ser usada começando a declaração com letra minúscula. A Sun recomenda a utilização de nomessignificativos. Exemplos: extratoConta, saldoConta, corDeFundo, nomeCliente.
  • Constantes: As constantes são marcadas com static e final no início da declaração, estas devem ser nomeadas usando-se letras maiúsculas com caractares underscore ("_") como separadores. Exemplos: PESO_MAXIMO, PI.
Padrões JavaBeans

Estes padrões foram criados para ajudar na utilização da API do Java e de terceiros. Este contêm algumas regras que vou expor a seguir.

Regras de Nomeação do Propriedades JavaBeans

  • Caso a propriedade não for booleana, o prefixo do metodo getter é get, Exemplo: getSaldoConta é um nome getter JavaBeans válido para um propriedade chamada saldoConta
  • Caso a propriedade for booleana, o prefixo do método getter pode ser o get ou is. Exemplo: getStatus, isStatus.
  • O prefixo do método setter deve ser set. Exemplo: setSaldoConta.
  • As assinaturas de metodos setter devem ser marcadas com public, com o tipo de retorno void e um argumento que respresente o tipo da propriedade.
  • As assinaturas de métodos getter devem ser marcadas como public, não usar argumentos e ter um tipo de retorno que bata com o tipo do atgumento do métodos setter para a propriedade em questão.
Regras de Nomeação de Listeners JavaBean

  • Identificadores de métodos listeners devem ser nomeados utilizando o prefixo add, seguido do tipo listerner. Exemplo: addActionListener().
  • Identificadores de métodos listeners usados para remover um listener devem ser nomeados utilizando o prefixo remove, seguido do tipo do listener.
  • O tipo de listener a ser adicionado ou removido deve ser passado como o argumento para o método
  • Os nomes de métodos listener deverão terminar com a palavra "listener".
Lembro que estas convenção são utilizadas porém não são regras, por tanto um código que não siga as convenções JavaBeans irá compilar normalmente. Por isso para não perder questões no exame SCJP é necessário saber diferenciar as convenções das regras de identificadores.

Um comentário: