A maior rede de estudos do Brasil

Grátis
118 pág.
poojava

Pré-visualização | Página 5 de 37

s2 se b for falso.
O operador binário = atribui o valor da expressão do lado direito à variável à esquerda do opera-
dor. Os tipos da expressão e da variável devem ser compatíveis. O operador de atribuição pode ser
combinado com operadores aritméticos e lógicos, como em C e C++. Assim, a expressão
a += b
equivale a
a = a + b
Métodos em Java têm sua execução encerrada de duas maneiras possíveis. A primeira é válida
quando um método não tem um valor de retorno (o tipo de retorno é void): a execução é encerrada
quando o bloco do corpo do método chega ao final. A segunda alternativa encerra a execução do
método através do comando return. Se o método tem tipo de retorno void, então o comando é
usado sem argumentos:
return;
Caso o método tenha um valor de retorno especificado, então a expressão assume a forma
return expressão;
onde o valor de retorno é o resultado da expressão, que deve ser compatível com o tipo de retorno
especificado para o método.
2.3.4 Controle do fluxo de execução
A ordem de execução normal de comandos em um método Java é seqüencial. Comandos de fluxo
de controle permitem modificar essa ordem natural de execução através dos mecanismos de escolha
ou de iteração.
A estrutura if permite especificar um comando (ou bloco de comandos, uma seqüência de expres-
sões delimitada por chaves, { e }) que deve apenas ser executado quando uma determinada condição
for satisfeita:
if (condição) {
bloco_comandos
}
Quando o bloco de comandos é composto por uma única expressão, as chaves que delimitam o
corpo do bloco podem ser omitidas:
c
�
2001 FEEC/UNICAMP 13
Programação orientada a objetos com Java 2.3. Expressões
if (condição)
expressão;
Embora a indentação do código não seja mandatória, é uma recomendação de boa prática de
programação que o bloco subordinado a uma expressão de controle de fluxo seja representada com
maior indentação que aquela usada no nível da própria expressão.
A forma if. . . else permite expressar duas alternativas de execução, uma para o caso da condição
ser verdadeira e outra para o caso da condição ser falsa:
if (condição) {
bloco_comandos_caso_verdade
}
else {
bloco_comandos_caso_falso
}
O comando switch. . . case também expressa alternativas de execução, mas nesse caso as condi-
ções estão restritas à comparação de uma variável inteira com valores constantes:
switch (variável) {
case valor1:
bloco_comandos
break;
case valor2:
bloco_comandos
break;
...
case valorn:
bloco_comandos
break;
default:
bloco_comandos
}
O comando while permite expressar iterações que devem ser executadas se e enquanto uma con-
dição for verdadeira:
while (condição) {
bloco_comandos
}
O comando do. . . while também permite expressar iterações, mas neste caso pelo menos uma
execução do bloco de comandos é garantida:
do {
bloco_comandos
} while (condição);
c
�
2001 FEEC/UNICAMP 14
Programação orientada a objetos com Java 2.3. Expressões
O comando for permite expressar iterações combinando uma expressão de inicialização, um teste
de condição e uma expressão de incremento:
for (inicialização; condição; incremento) {
bloco_comandos
}
Embora Java não suporte o operador , (vírgula) presente em C e C++, no comando formúltiplas
expressões de inicialização e de incremento podem ser separadas por vírgulas.
Os comandos continue e break permitem expressar a quebra de um fluxo de execução. O
uso de break já foi utilizado juntamente com switch para delimitar bloco de comandos de cada
case. No corpo de uma iteração, a ocorrência do comando break interrompe a iteração, passando
o controle para o próximo comando após o comando de iteração. O comando continue também
interrompe a execução da iteração, mas apenas da iteração corrente. Como efeito da execução de
continue, a condição de iteração é reavaliada e, se for verdadeira, o comando de iteração continua
executando.
Em situações onde há diversos comandos de iteração aninhados, os comandos break e conti-
nue transferem o comando de execução para o ponto imediatamente após o bloco onde ocorrem. Se
for necessário especificar transferência para o fim de outro bloco de iteração, os comandos break e
continue rotulados podem ser utilizados:
label: {
for (...; ...; ...) {
...
while (...) {
...
if (...)
break label;
...
}
...
}
...
}
2.3.5 Comentários
Comentários em Java podem ser expressos em três formatos distintos. Na primeira forma, uma
“barra dupla” // marca o início do comentário, que se estende até o fim da linha. A segunda forma
é o comentário no estilo C tradicional, onde o par de símbolos /* marca o início de comentário,
que pode se estender por diversas linhas até encontrar o par de símbolos */, que delimita o fim do
comentário.
O outro estilo de comentário é específico de Java e está associado à geração automática de docu-
mentação do software desenvolvido. Nesse caso, o início de comentário é delimitado pelas seqüên-
cias de início /** e de término */. O texto entre essas seqüências será utilizado pela ferramenta
javadoc (ver Seção 2.7.1) para gerar a documentação do código em formato hipertexto.
c
�
2001 FEEC/UNICAMP 15
Programação orientada a objetos com Java 2.4. Operações sobre objetos
Para gerar esse tipo de documentação, os comentários devem estar localizados imediatamente
antes da definição da classe ou membro (atributo ou método) documentado. Cada comentário pode
conter uma descrição textual sobre a classe ou membro, possivelmente incluindo tags HTML, e
diretrizes para o programa javadoc. As diretrizes para javadoc são sempre precedidas por @,
como em
@see nomeClasseOuMembro
que gera na documentação um link para a classe ou membro especificado, precedido pela frase “See
also ”.
A documentação de uma classe pode incluir as diretrizes @author, que inclui o texto na seqüên-
cia como informação sobre o autor do código na documentação; e @version, que inclui na docu-
mentação informação sobre a versão do código.
A documentação de um método pode incluir as diretrizes @param, que apresenta o nome e uma
descrição de cada argumento do método; @return, que apresenta uma descrição sobre o valor de
retorno; e @exception, que indica que exceções podem ser lançadas pelo método (ver Seção 2.6.1).
Para maiores informações, veja o texto How to Write Doc Comments for Javadoc3.
2.4 Operações sobre objetos
A criação de um objeto dá-se através da aplicação do operador new. Dada uma classe Cls, é
possível (em princípio) criar um objeto dessa classe usando esse operador:
Cls obj = new Cls();
O “método” à direita do operador new é um construtor da classe Cls. Um construtor é um
(pseudo-)método especial, definido para cada classe. O corpo desse método determina as atividades
associadas à inicialização de cada objeto criado. Assim, o construtor é apenas invocado no momento
da criação do objeto através do operador new.
A assinatura de um construtor diferencia-se das assinaturas dos outros métodos por não ter ne-
nhum tipo de retorno — nem mesmo void. Além disto, o nome do construtor deve ser o próprio
nome da classe.
O construtor pode receber argumentos, como qualquer método. Usando o mecanismo de sobre-
carga, mais de um construtor pode ser definido para uma classe.
Toda classe tem pelo menos um construtor sempre definido. Se nenhum construtor for explici-
tamente definido pelo programador da classe, um construtor default, que não recebe argumentos, é
criado pelo compilador Java. No entanto, se o programador da classe criar pelo menos um método
construtor, o construtor default não será criado automaticamente — se ele o desejar, deverá criar um
construtor sem argumentos explicitamente.
No momento em que um construtor é invocado, a seguinte seqüência de ações é executada para a
criação de um objeto:
1. O espaço para o objeto é alocado e seu conteúdo é inicializado