Palavras Reservadas

Uma das coisas que mais gosto na linguagem java é o seu pequeno conjunto de palavras reservadas. Até à versão 6 existem 53 palavras-chaves, das quais apenas 51 são realmente utilizadas. Só como exemplo o C# tem 78 palavras reservadas.

Uma palavra reservada não é necessariamente uma palavra-chave, ou seja, uma palavra com significado especial na linguagem. É simplesmente uma palavra que não pode ser usada como nome de variáveis, métodos ou classes. Todas as palavras-chave são palavras reservadas, mas o inverso não é verdade.

Antes de listas as palavras chave gostaria de fazer uma pequena “derivação” de porquê essas palavras são necessárias. Acho que isso é mais elucidativo que simplesmente largar uma lista…

Java é Orientada a Objetos

Se a linguagem é orientada a objetos muito provávelmente você precisa criar esses objetos. Essse é o papel de new. Para poder criar o objeto é necessárioa definir primeiro a sua classe (class ) ou a sua interface (interface ).Java contém ainda dois outros tipos especiais. Um deles é uma classe especial em que os seus membros são objetos imutáveis e constantes. O Java declara este outro tipo de classe com a palavra reservada enum. O outro tipo , a Anotação é definida como um tipo especial de interface e a sua declaração não necessita de novas palavras reservadas ) a declaração é feita com @interface reaproveitando a palavra reservada ja existente.
Como estamos falando de orientação a objetos temos que tratar herança. A classe que tem que ser herdada (e portanto não pode ser instanciada directamente) é dita abstrata(abstract). Para dizer que ha uma relação de herança com outra classe é usado extends e para dizer que a classe implementa uma interface é usado implements

Todas as classes pertencem em algum pacote. O pacote a que a classe pertence é declarado com package e quando uma classe utiliza outra classe ela pode declarar isso com import tornando o código mais simples de ler.

Objetos podem comunicar com outros objetos acessando métodos ou attributos. O acesso é controlado por quatro niveis de visibilidade. O nivel padrão não necessita de uma palavra reservada. Para os outros três existem public, private e protected.

Java é Estruturada

Ser estruturada significa que o fluxo da execução é lógico ao invés de ad-doc. Uma das palavras-chave mais utilizada em outras inguagens para violar essa estrutura era goto. Para evitar que essa palavra seja usada, goto é uma palavra reservada em java. Existem até lendas de nas primeiras versões do java o compilador insultava você se usa-se essa palavra.

A estrutura de decisão descisão binária é declarada com ifelse. A estrutura de decisão multipla com switchcase. Estrutruas de repetição são construidas com for, while e dowhile. Algumas destas estruturas permitem ações espciais representadas por palavras reservadas. Em estruturas de repetição é comum ser necessário interromper o ciclo. Isso é feito com break que pode também ser utilizada numa instrução switch já que ela é do tipo fall-thought. A estrutura switch admite ainda a situação em que nenhum claso declarado com case se aplica permitindo definir um caso padrão com default. Em estruturas de repetição é ainda comum pular para a proxima iteração. Isso é feito com continue. continue se integra ainda com o uso de labels, uma funcionalidade do Java util, mas pouco utilizada.

Java é uma linguagem de programação

Toda a linguagem de progrmaação que se prese permite ao programador criar algoritmos sofisticados. Esses algoritmos utilizam ingredientes simples que em multiplas combinações permitem a criação dos algoritmos. Um algoritmo é normalmente desenhado para a partir de alguma informação gerar uma outra. Java permite que métodos retornem resultados. Estes resultados podem ser objetos de um certo tipo, ou podem ser um valor primitivo. Java inclui oito valores primitivos que minimizam o uso do heap e podem ser utilizados de forma mais eficiente: boolean, byte, short, int, long, double, float e char. O valor a ser retornado é indicado com return. Se o método não retorna nenhum valor isso é indicado colcoando void em vez do tipo a retornar. Os valores lógicos literias são true e false. Uma referencia vazia é indicada com null.

true , false e null não são consideradas palavras chave porque são na realidade valores literais, contudo, sendo que não podem ser usados como nome de classe, variável ou método, têm que ser, aqui, consideradas palavras reservadas.

Algumas variáveis tem o seu valor definido uma única vez e esse valor é utilizando sempre, sem alteração, pelo resto do programa. Este tipo de variáveis imutáveis ( comumente chamadas de constantes) são definidas em java com a palavra final. A palavras const também é reservada, mas quiçá para lembrar que é um contrasenso uma variável ser constante esta palavra não é usada.
A palavras final marca imutabilidade. Para variáveis significa que o seu valor não pode ser alterado depois de definido. Usada na declaração de uma classes significa que ela não pode ser extendida (herdada). Usada em métodos significa que o método não pode ser sobre-escrito.

Durante a escrita do codigo de um método ou contrutor é muitas vezes necessário diferenciar variáveis ou métodos que existem em diferentes escopos. A palavra this é utilizada para se referir a membros fora do método ou construtor mas declaradas na classe. super é utilizada para se referir a membros delarados na classe mãe. Membros que pertencem ao escopo da classe e não da instancia são marcadas com static.

Sendo que java é uma linguagem orientada a objetos é comum ser necessário testar se um objeto pertence a uma certa classe. Isto pode ser feito dentro de um método com a palavra instanceof que representa na realidade um operador. O único operador em Java que é uma palavra.

Java controla exceções

Java oferece suporte a exceções. Esta tecnica relativamente recente permite uam programação mais flexivel e uma localização de problemas mais rápida. Permite ainda que o próprio programa pode conduzir algoritmos de contigencia para responder a problemas imprevistos. O controle é feito com a estrutura trycatchfinally. O lançamento de exceções é executado com throw e a declaração de que um método ou ocntrutor pode lançar exeçõs é marcado com throws

Uma outra forma de controlar problemas é executar testes. Em certas circusntancias o programador admite que certa condição é verdadeira e controi o programa com base nessa permissa. O Java permite que o programador inclua um codigo que testa de essa condição é válida e que o teste seja ativado ou desativado a gosto de forma a não pesar na execução normal do programa.assert é a palavra reservada para esta funcionaldiade.

Ao trabalhar com numeros de virgula flutuante para maior performance a exatidão é sacrificada. Desta forma nem sempre o mesmo método irá produzir o mesmo resultado de forma portátil entre os difernetes de execução. Para exigir que o java escolha a exatidão em deterimento da performance o método deve ser marcado com strictfp

Java é avançado

Java oferece suporte a multi-thread desde um inicio. O controle de codigo que as thread utilizam pode ser bem complexo, mas apenas duas palavras reservadas são necessárias: synchronized e volatile.

Java oferece integração com outras linguagens nativas ( nativas a máquinas reais em oposição a máquinas virtuais) como C++. A palavra native indica que a implementação do método será feita com outra linguagem.

Java oferece ainda a capacidade de serializar um objeto, ou seja, transformar um objeto em um array de byte ( e vice-versa). Quando o java faz isso ele básicamente guarda a informação da classe do objeto e o estado do objeto. O estado do objeto são os seus atributos de instancia. Quando queremos que um dos atributos não seja guardado na serialização marcamos-o com transient

A Lista

Finalmente a lista completa de todas as palavras reservadas até à versão 1.6:

package import new class interface enum abstract extends implements instanceof
public private protected static final super this try catch finally
if for do while switch else case default break continue
throw throws transient volatile synchronized native strictfp assert goto const
boolean byte short int long double float char void return

Referências

[1] Java Reserved Words
Sun Microsystems, Inc
Editor:
URL: http://java.sun.com/docs/books/tutorial/java/nutsandbolts/_keywords.html

Licença

Creative Commons License Sérgio Taborda
Este trabalho é licenciado sob a
Licença Creative Commons Atribuição-Uso Não-Comercial-Não a obras derivadas 3.0 Genérica .

Um pensamento em “Palavras Reservadas”

Deixe um comentário