Professional Documents
Culture Documents
Elementos de Java
Assuntos
Comandos
Tipos nativos
Palavras-reservadas
2
Créditos
• Autor: Alessandro Cerqueira
• Revisão: Professores da Escola de Informática
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
da Unigranrio.
3
Tipos de Comentários
// Realiza o comentá
comentário do ponto onde está
está até
até o final da linha
/* Realiza o comentá
comentário de bloco */
Javadoc - Regras
• Antes da declaração da classe deve-se colocar um
comentário descrevendo o propósito da classe.
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
– @author
– @version
Javadoc (Exemplo)
/**
* Esta é a documentaç
documentação da classe ExemploJavadoc
* @author Alessandro Cerqueira
* @version 1.0
*/
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Instruções e Identificadores
• Instruções são separadas por “;”.
int i;
i = 4 + 5;
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Palavras Reservadas
abstract do implements private throw
boolean double import protected throws
break else instanceof public byte
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
• Atributos,
Atributos, métodos e variá
variáveis locais devem começ
começar com letra
minú
minúscula
– Ex: nome,
nome, matricula,
matricula, somar
• Caso as classes, atributos e mé
métodos apresentem nomes
compostos,
compostos, as demais palavras deverão começ
começar com letra
maiú
maiúscula e deve-
deve-se evitar o traç
traço baixo
– Ex: AlunoPó
AlunoPósGraduaç
sGraduação,
ão, telefoneCelular,
telefoneCelular, getNome
• Constantes deverão ter todas as letras maiú
maiúsculas e pode-
pode-se
utilizar o traç
traço baixo
– Ex: TAMANHO_MÁ
TAMANHO_MÁXIMO,
XIMO, NÚMERO_DE_ELEMENTOS
9
Literais
• Literais são os valores que (literalmente) são colocados no
código do programa.
• Literais de Inteiros
5 7L 064 0xBA20
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
(int) (long)
long) (int octal)
octal) (int hexadecimal)
* Por default um nú
número sem uso de ponto decimal é int
• Literais de Caracteres
– Segue o padrão Unicode (2 bytes).
bytes). O padrão ASCII (1 byte) não permitia a
representaç
representação de caracteres não-
não-latinos presentes em vá
várias lílínguas.
‘a’, ‘M’, ‘\t’(tab),
tab), ‘\n’(new line),
line),
‘\r’(carriage return),
return), ‘\\’(\), ‘\’’ (’)
‘\u02B1’
u02B1’ (có
(código unicode)
unicode)
Literais String
• Uma literal String em Java é expressa atravé
através do uso de aspas.
aspas.
Ex: “Curso de Java”
Java” “Jdk 1.5”
1.5” “Exemplo”
Exemplo”
classe disponí
disponível para codificaç
codificação já
já que pertence ao pacote
padrão java.
java.lang (tó
(tópico futuro)
• Toda vez que escrevemos uma literal String, o compilador irá
irá
colocar no bytecode a ordem para criaç
criação de um objeto da
classe String com a representaç
representação passada pelo programador.
• Assim, ao vermos uma literal String em um có
código, devemos
entendê-
entendê-la como um ponteiro para um objeto String cujo
conteú
conteúdo é aquele visto no có
código.
11
Literais String
• Ex: String nome;
nome = “Luiza Seixas”
Seixas”;
• Na primeira linha temos a declaraç
declaração de uma variá
variável local chamada “nome”
nome”
cujo tipo é “ponteiro para um objeto da classe String”
String”. Não há
há inicializaç
inicialização
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Luiza Seixas
12
memória.
int 0 (4 bytes) Estas inicializaç
inicializações são feitas antes
do construtor ser executado.
long 0L (8 bytes)
float 0.0f (4 bytes)
double 0.0d (8 bytes)
char ‘\u0000’(2 bytes)
boolean false (1 byte)
Demais Tipos (ponteiros para Arrays ou para Objetos)
Declarações e Atribuições
public class Exemplo
{
public static void main ( String args[]
args[] )
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
{
int i, j;
float r = 3.14f;
double dist = 9.567d;
char letra;
boolean achou = true;
true;
String str,
str, msg = “teste”
teste”;
Escopo da Classe
• Escopo é a área definida entre um “{ ” e seu “}”
correspondente
• Escopo da Classe é a área definida após a a declaração
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Escopo da Classe
• Para identificarmos se determinada propriedade de
uma classe é um atributo ou um método, utilizamos
a seguinte “regra” simplificada:
Escopo da Classe
• Estrutura Sintática
– Atributos
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Escopo da Classe
public class Exemplo
{ // Iní Início do escopo da classe
private int a; // “ a” é um atributo da classe Exemplo
public String toString()
toString() // “ toString”
toString” é um mé método da classe Exemplo
Escopo do
{
método return “Sou um objeto Exemplo”
Exemplo”;
}
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
private
int b; // “ b” é um atributo da classe Exemplo
public
Exemplo(int valor) // “ Exemplo”
Exemplo” é um mé método da classe Exemplo (construtor)
Escopo do
{
método this.a
this.a = valor;
}
void c(int b) // “ c” é um mé
método da classe Exemplo
{
int d = this.a
this.a + this.b;
this.b; // “ d” não é um atributo; é uma variá
variável local
Escopo do
método
// do mémétodo “ c”
if(this
if(this.b
.b > d)
this.b
this.b = b;
}
} // Fim do Escopo da classe
18
Variáveis Locais
• Assim como em C e C++, a vida de uma variável se
resume ao escopo em que foi declarada.
• Ex:
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Construção de Classes
Revisitando o Exemplo
CLASSE PROGRAMA
package controle;
controle;
import dominio.Pessoa
dominio.Pessoa;
;
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Construção de Classes
Revisitando o Exemplo
CLASSE PESSOA
package dominio;
dominio;
{
private String cpf;
cpf;
private String nome;
nome;
public Pessoa(
Pessoa(String cpf,
cpf, String nome)
nome)
{
this.
this.cpf = cpf;
cpf;
this.
this.nome = nome;
nome;
}
Construção de Classes
Revisitando o Exemplo
• Arquivos
– Como já
já visto, cada classe deve ficar em um arquivo com o
mesmo nome da classe mais a extensão “.java”
java”.
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
• package
– Palavra reservada que indica a que pacote pertence a classe sendo sendo
codificada.
– Pacote conjunto de classes agrupadas e que, supostamente,
tratam de um mesmo assunto.
– A indicaç
indicação fica sempre no ínicio do arquivo.
– Fisicamente um pacote representa uma pasta dentro da pasta do
projeto onde ficam os arquivos referentes às classes que
pertencem ao pacote.
– Quando o nome de um pacote apresentar ponto (. (.), isto indica que
fisicamente os arquivos do pacote ficam dentro de uma pasta que
é subpasta de outra (veja o exemplo do pacote “face.util
face.util”” a seguir).
22
Construção de Classes
Revisitando o Exemplo
• Exemplo: Suponha que tenhamos as seguintes classes:
– Pacote controle Classe Programa
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Pasta do Projeto
face
util
Keyboard.java
controle
Programa.java
domí
domínio
Pessoa.java
23
Construção de Classes
Revisitando o Exemplo
• Dica inicial para Organizaç
Organização do Projeto
– Existe um padrão de projeto chamado Model-
Model-Viewer-
Viewer-Controller
que sugere que uma aplicaç
aplicação deve ser dividida em três camadas
(grupos de classes):
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
• Método main
– Método a partir do qual uma aplicaç
aplicação Java começ
começa a ser
executada.
– A declaraç
declaração do mé
método main deve ser rigorosamente a seguinte:
public static void main(
main(String[]
String[] args)
args)
• public Indica que o mé método é visí
visível a toda e qualquer classe
(tó
(tópico futuro)
• static Indica que o mé método é está
estático (tó
(tópico futuro)
• void Indica que o mé método não retorna um valor ou ponteiro
ao final de sua execuç
execução
• main Nome do mé método
25
Construção de Classes
Revisitando o Exemplo
• String[] args O mé método recebe um único parâmetro chamado
args (pode ser outro nome!) cujo tipo é “ponteiro para um array de
ponteiros para objetos da classe String”
String” (veremos a seguir). Estes
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Construção de Classes
Revisitando o Exemplo
• import
– Toda vez que no cócódigo de uma classe X escrevermos o nome de
uma classe Y e que não pertence ao pacote da classe X nem ao
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
pacote java.
java.lang (pacote default),
default), deveremos utilizar a clá
cláusula
import.
import.
– A clá
cláusula import informa ao compilador que este deve observar
a definiç
definição das classes importadas.
– Observe que na classe Programa escrevemos o nome da classe
Pessoa (na declaraç
declaração das variá
variáveis p1, p2 e p3). Como a classe
Programa pertence ao pacote controle e a classe Pessoa pertence
ao pacote dominio,
dominio, a clá
cláusula import é necessá
necessária.
– Podemos utilizar a clá
cláusula import de duas formas:
• import dominio.Pessoa
dominio.Pessoa Importa a definiç
definição somente da classe
Pessoa.
• import dominio.*
dominio.* Importa a definiç
definição de todas as classes
pertencentes ao pacote dominio.
dominio.
27
Construção de Classes
Revisitando o Exemplo
• Literal String
– No exemplo apresentado no mó módulo anterior (assunto: Garbage
Collection),
Collection), os aspectos do tratamento das literais String foram
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Construção de Classes
Revisitando o Exemplo
• Passagem de Parâmetros
– Ao codificarmos um mé
método, eventualmente necessitamos
receber parâmetros para a sua execuç
execução (ex: Construtor da
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Classe Pessoa).
– Assim, para que estes mé
métodos sejam executados, é
necessá
necessário que junto com a mensagem sejam passados os
parâmetros solicitados pelo mé
método.
– A estraté
estratégia de passagem de parâmetros é a seguinte:
seguinte:
• Se for uma literal de tipo primitivo,
primitivo, o parâmetro recebe o valor
da literal.
• Se for uma variá
variável de tipo primitivo,
primitivo, o parâmetro recebe o
mesmo valor contido na variá
variável.
• Se for uma variá
variável de tipo ponteiro,
ponteiro, o parâmetro passa a
apontar para o mesmo objeto apontado pela variávariável passada.
passada.
29
Construção de Classes
Revisitando o Exemplo
Construção de Classes
Revisitando o Exemplo
• No Envio da Mensagem:
Endereço de
Endereç
Memó
Mem ória
82AE4C
p1: -
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Pessoa Pessoa(
Pessoa(cfp:
cfp:023A56, nome:0250AF)
nome:0250AF)
p2: - cfp:
cfp: null
nome: null String String
p3: - “12345678-
12345678-90" “José
José de Souza"
Endereço de
Endereç Endereço de
Endereç
Memó
Mem ória Memó
Mem ória
023A56 0250AF
• Método Construtor
– Este mé
método deve possuir o mesmo nome da classe e não pode ter
a indicaç
indicação de tipo de retorno (nem mesmo void)
void). Observe o
código do mé
método construtor da classe Pessoa.
31
Construção de Classes
Revisitando o Exemplo
• this
– Nos mé
método da classe Pessoa vemos a presenç
presença da palavra
reservada this.
this.
– this é uma variá
variável automá
automática que está
está presente em todos os
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
métodos não-
não-está
estáticos (tó
(tópico a frente). Esta variá
variável não precisa
ser declarada. A semântica do this é “ponteiro para o objeto que
estiver executando o mé
método em questão neste momento”
momento”.
– A codificaç
codificação de um mé
método deve valer para qualquer objeto da
classe em questão. Entretanto, para a codificaç
codificação dos mé
métodos,
precisamos invariavelmente de algum recurso do objeto que
estiver executando o mé
método.
todo. Para estas situaç
situações estaremos
utilizando o this.
this.
– No construtor da classe Pessoa, vemos a seguinte linha:
this.
this.cpf = cpf;
cpf;
– O significado é o seguinte: o atributo cpf do this (objeto que
estiver executando o mé
método construtor neste momento) passa a
apontar para o mesmo objeto referenciado pelo parâmetro cpf.
cpf.
32
Construção de Classes
Revisitando o Exemplo
– Toda vez que um parâmetro ou variá
variável local tiver o mesmo de um
atributo da classe, para fazermos referência ao atributo deveremos
deveremos utilizar
o this.
this. Quando este não é utilizado, a referência é feita para o
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
parâmetro ou variá
variável local.
– A segunda linha apresentará
apresentará a mesma idé
idéia da primeira, poré
porém irá
irá fará
fará a
inicializaç
inicialização do atributo nome de acordo com o que é enviado pela
mensagem do new.new.
• Apó
Após a execuç
execução do construtor e antes da execuç
execução do operador de
atribuiç
atribuição:
Endereço de
Endereç
Memó
Mem ória String
p1: - 82AE4C
Endereço de
Endereç
Memó
Mem ória
Pessoa “12345678-
12345678-90" 023A56
p2: - cfp:
cfp: 023A56
nome: 0250AF String
p3: - Endereço de
Endereç
Memó
Mem ória
“José
José de Souza"
0250AF
33
Construção de Classes
Revisitando o Exemplo
• return
– Indica que a execuç
execução de um mémétodo deve ser encerrada.
encerrada. Se a
declaraç
declaração do tipo de retorno do mé
método é diferente de void,
void, o return
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
deverá
deverá estar acompanhado de um valor ou ponteiro a ser devolvido para
quem chamou o mé método.
– Veja os exemplos dos mé
métodos getCpf()
getCpf() e getNome()
getNome().. Eles indicam que
devem retornar um ponteiro para um objeto String na sua declaraç
declaração. Em
ambos os casos, os mé
métodos retornam um ponteiro para String que
conté
contém o cpf e o nome da Pessoa que receber a mensagem.
• Envio de Mensagem
– Observe que na classe Programa temos a seguinte construç
construção:
p1.getCpf
p1.getCpf()
()
ptr>.<msg>
– Toda vez que tivermos a estrutura <ptr> msg>( ... ), temos a
caracterizaç
caracterização do envio de mensagem.
– A semântica é “envio da mensagem <msg>
msg> para o objeto
referenciado por <ptr>
ptr>”
34
Debug no Eclipse
• Para execução de programas no Eclipse com o uso do
depurador (Debug) [Run] [Debug]
• O ideal é que se trabalhe na perspectiva [Debug]
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
• Breakpoint
– Define um ponto onde o programa em depuraç
depuração deve ser
momentaneamente interrompido.
– Duplo clique na barra lateral esquerda
Debug no Eclipse
Breakpoint
36
Debug no Eclipse
• Watch
– Permite visualizar o conteúdo das variáveis locais
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
• Resume (F8)
– Solicita a execução direta da aplicação até que se
encontre um breakpoint ou o fim do programa
• Terminate
– Pára a execução de um programa em depuração
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007 37
Resume
Terminate
Debug no Eclipse
Watch
38
– Acessar a opç
opção [Window][
Window][Reset
Reset Perspective]
• Adicionando um Painel na Perspectiva Corrente
– Acessar a opç
opção [Window][Show View] e indicar o painel desejado.
Window][Show View]
• Trocar do workspace
– Acessar a opç
opção [File][Switch
[File][Switch Workspace]
Workspace]
• Para Colocaç
Colocação dos Imports Necessá
Necessários
– Teclar [Ctrl]+[
Ctrl]+[Shift
Shift]+O
]+O
• Para formataç
formatação automá
automática do có
código
– Teclar [Ctrl]+[
Ctrl]+[Shift
Shift]+F
]+F
• Para renomear classes, atributos, mé
métodos ou variá
variáveis locais por todo o
código (refatora
(refatoraçção)
ão)
– Clicar sobre o elemento e teclar [Alt]+[
Alt]+[Shift
Shift]+R
]+R
39
Leitura do Teclado
Classe java.util.Scanner
• Permite fazer leitura a partir de qualquer canal de
entrada (teclado, arquivos, streams de comunicação)
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Arrays
• Podemos ter arrays de tipos primitivos ou classes.
char letras[];
int[] vetor; // prefira esta forma a “int vetor[];”
vetor[];”
int[] x, y[]; // é equivalente a int x[],y[][];
x[],y[][];
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Arrays
• Acompanhe o Exemplo:
(1) int[] numeros;
numeros;
(2) numeros = new int[5];
(3) numeros[0]
numeros[0] = 10;
(4) numeros[2]
numeros[2] = 17;
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Arrays
• A terceira linha fará
fará a atribuiç
atribuição do valor 10 na primeira posiç
posição
(índice 0) do array apontado por números.
numeros:
numeros: 10 0 0 0 0
0 1 2 3 4
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
numeros:
numeros: 10 0 17 0 0
• Tipo de atributos array 0 1 2 3 4
Arrays
• Arrays podem ser automaticamente criados e
inicializados na declaração
String[] nomes = { “Joao”
Joao”, “Pedro”
Pedro”, “Luis”
Luis” };
É equivalente a:
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Arrays
Operações Úteis
• length: Informa o tamanho alocado para o array
Ex: int[] array = new int[10];
System.out.
System.out.println
println(
(array.
array.length);
length); // imprime 10!
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Operadores
• Similares aos de C/C++, existem em número
maior do que na maioria das demais
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
linguagens
Operadores
OPERADOR ASSOCIATIVIDADE
. [] () <---
++ -- + - ~ (cast
(cast)
) <--- Alta Precedência
* / % --->
--->
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
+ - --->
--->
<< >> >>> --->
--->
< > <= >= instanceof --->
--->
== != --->
--->
& --->
--->
^ --->
--->
| --->
--->
&& --->
--->
|| --->
--->
?: <---
= *= /= %= += -= <<= >>= >>>=
&= ^= |= <---
++ -- --->
---> Baixa Precedência
47
Operadores
Operadores Aritméticos
+ (soma) – (subtraç
(subtração) * (multiplicaç
(multiplicação)
/ (divisão) % (mó
(módulo – resto da divisão)
Operadores Relacionais
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Operadores Lógicos
&& (e) || (ou) !(não) ^(xor)
xor)
Com >>, se o valor é positivo, ‘0’s são inseridos como bits de mais alta ordem; se o valor é
negativo, ‘1’s são inseridos como bits de mais alta ordem. Ou seja, o sinal é mantido. Com
>>>, ‘0’s são inseridos como bits de mais alta ordem, seja qual for o sinal.
sinal.
48
Operadores
Operador de Concatenação
+ (concatenaç
(concatenação de strings)
strings)
Se o operador + é aplicado a uma String com um tipo bábásico, o valor com tipo bá
básico é convertido
em String para a realizaç
realização da concatenaç
concatenação. Se o operador + é aplicado a uma String com um
objeto, manda-
manda-se a mensagem toString(
toString( ) para se obter a String para se realizar a concatenaç
concatenação.
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Operador If
booleana) ? (resultado se true)
(expressão booleana) true) : (resultado se false)
false)
ex: int i = Keyboard.
Keyboard.readInt();
readInt();
int j = Keyboard.
Keyboard.readInt();
readInt();
int k = i > j ? 14 : 20; 20;
Operadores de Atribuição
= *= /= %= += -= <<= >>= >>>=
&= ^= |=
Obs: Operadores do tipo E1 OP= E2 são equivalentes a E1 = (Casting Tipo de E1)(E1 OP E2)
Ex1: i += j; // equivalente a i = i + j;
Ex2: int a = 1;
double b = 2.9;
a += b; // a = (int)(a + b); a conversão promoverá promoverá o
// trucamento e a receberáreceberá 3!
49
Operadores ++ e --
• ++ é um operador que promove a incrementação; já
o operador -- promove a decrementação.
• A precedência dos operadores ++ e -- varia de
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Operadores
• O operador + não é apenas aritmético. Ele pode ser utilizado
para concatenaç
concatenação de strings:
strings:
Ex:
String s1 = “Linguagem ”;
String s2 = “Java”
Java”;
String s3 = s1 + s2; // O operador cria o objeto String “Linguagem Java”
Java”
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Operadores
Pessoa p1 = new Pessoa(
Pessoa(“José
José da Silva”Silva”, “12345678-
12345678-90” 90”);
String str = “Obj: ” + p1; // Envia-
Envia-se a mensagem toString para o objeto
// Pessoa referenciado por p1 e com a String
// retornada concatena-
concatena-se com “Obj:”
Obj:”
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
1o
PESSOA
p1: toString(
toString( )
Nome: José da Silva
Cpf: 12345678-90
return
2o
String String
“Obj: ”
+ “PESSOA@14567”
String
3o
str: “Obj: PESSOA@14567”
52
Operadores
• Existe o tipo boolean, assim os operadores relacionais
e lógicos não geram inteiros como em C e C++.
Contagem de Comandos
• Se desejarmos que os comandos if, while,
while, for,
do...while executem mais de um comando, é necessá
do...while necessário
vincular a estes um escopo.
escopo. Para a contagem do nú
número de
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
• Exemplos:
if(achou)
if(achou) while(i
while(i < 10){
10){ while(z
while(z > 10)
i++; j++; if(z
if(z % 3 == 2)
i = k + j; {
} i = j;
j = z;
}
54
Contagem de Comandos
• Podemos abrir escopos a qualquer instante (mesmo
que desnecessários!)
int i;
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
float k;
{ // Escopo desnecessá
desnecessário!
i = Keyboard.
Keyboard.readInt();
readInt();
{ // Outro escopo desnecessá
desnecessário!
k = Keyboard.
Keyboard.readFloat();
readFloat();
} }
Controle de Fluxo - if
Construção:
if(
if(expressão booleana)
booleana)
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
instruç
instrução;
ão;
else
instruç
instrução;
ão;
Controle de Fluxo - if
Exemplo:
boolean ehValido;
ehValido;
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
int i, a, j, contador;
...
if (contador < 0)
{
i = j + 3;
contador = 0;
}
else
i = 0;
...
if (ehValido)
ehValido)
a = a + 1;
57
...
switch (estadoCivil)
estadoCivil)
{
case ‘S’ : str = “Solteiro”
Solteiro”;
break;
break;
case ‘C’ : str = “Casado”
Casado”;
break;
break;
case ‘V’ : str = “Viú
Viúvo”
vo”;
break;
break;
default : str = “Separado”
Separado”;
}
59
Controle de Fluxo -
Loops com while, do…while e for
while (expr.
expr.booleana)
booleana) // teste a priori
instruç
instrução;
ão; // executa de 0 a n vezes
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
do
instruç
instrução;
ão; // executa de 1 a n vezes
while (expr.
expr.booleana);
booleana); // teste a posteriori
Controle de Fluxo -
Loops com while, do…while e for
Exemplo:
for ( i = 0; i < 10; i++ ) i = 0;
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
vetor[i] = 3 * i; while(
while( i < 10 )
{
vetor[i] = 3 * i;
i++;
}
61
Controle de Fluxo -
break, continue e return
break [label] continue [label] return [expr]
Exemplo:
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
char c: ´w´
• * não confundir alocaç
alocação está
estática com atributo ou mé
método está
estático!
63
• Exemplos: “Cerqueira”
Cerqueira”
String sobrenome:
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
10 20 5
int[ ] array:
Janela String
Janela j: “Alessandro”
Alessandro”
Tipagem
• Ex:
int a; // “a” é um int (tipo primitivo)
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
This
• É uma variável automática presente em todos os
métodos não-estáticos. Esta variável sempre apontará
para o objeto que estiver executando o método em
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
This
package dominio;
dominio; package dominio;
dominio;
pontA.x(pontB
pontA.x(pontB);
);
68
Atributos Estáticos
• Modificador “static”
– Define que um atributo ou mé
método passa a ser ESTÁ
ESTÁTICO.
• Atributo Estático
– É aquele que é compartilhado por todos os objetos da classe.
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Atributos Estáticos
• Assim teremos:
ptr1:
Exemplo1
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
ptr2:
atr: 10
atr: 20
72
Atributos Estáticos
• Ex: Classe com atributo estático
public class Exemplo2
{
public static int atr;
atr; // Atributo pú
público está
estático!!!
tico!!!
}
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
...
Exemplo2 ptr1 = new Exemplo2();
Exemplo2();
Exemplo2 ptr2 = new Exemplo2();
Exemplo2();
ptr1.
ptr1.atr = 10;// ptr2.atr
ptr2.atr també
também passará
passará ser = 10!
ptr2.
ptr2.atr = 20;// ptr1.atr
ptr1.atr també
também passará
passará ser = 20!
Atributos Estáticos
• Assim teríamos
ptr1:
Exemplo2
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
ptr2:
Métodos Estáticos
• No modelo OO, quando uma mensagem é enviada, o
receptor é sempre um objeto e este ao receber a
mensagem executa um método de mesmo nome.
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Métodos Estáticos
• Assim, métodos estáticos são aqueles que podem ser
executados a partir do envio de mensagens para a
CLASSE.
• Ex: Classe com método estático
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Métodos Estáticos
• Nem todo método pode receber o modificador
“static”.
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007
Modificador final
• Pode ser utilizado na declaraç
declaração de classes,
classes, métodos,
todos, atributos e
variá
variáveis locais.
locais.
• Quando utilizado na declaraç
declaração de uma classe,
classe, indica que esta
não poderá
poderá ser especializada
Elementos da Linguagem Java - Alessandro Cerqueira - 20/8/2007