Sie sind auf Seite 1von 37

Introduo

Tecnologia Java
Conceitos bsicos e
plataforma Java (2)

Ricardo Erikson
ricardoerikson@gmail.com
1

Assuntos abordados

Variveis Java

Operadores

Estruturas de controle de execuo

Aritmticos, lgicos, binrios, booleanos, de deslocamento, de


concatenao, de converso
if-else
for, while, do-while
break, continue
switch (case)

Vetores

Variveis

Uma varivel um nome simblico para uma poro de


memria na qual um valor pode ser armazenado

A declarao de variveis segue a seguinte sintaxe:

Deve ser declarada antes de ser utilizada


Possui um tipo, um identificador e um escopo
Podem ser locais, quando declarada dentro de mtodos, ou atributos,
quando declaradas no corpo da classe
Podem ser inicializadas
tipo identificador [=valor][, identificador [=valor]];

Nomes de variveis

Podem conter letras (a-z/A-Z), nmeros (0-9), underscore (_) ou sinal


de dlar ($)
No pode comear com nmeros

Variveis

Palavras reservadas

No pode ser utilizadas como identificadores

Operadores

Um operador produz um novo valor a partir de um ou mais


argumentos

Os operadores Java so praticamente os mesmos


encontrados em outras linguagens

+, -, /, *, =, ==, <, >, >=, &&, etc.

A maior parte dos operadores s trabalha com valores de


tipos primitivos

Excees:

+ e += so usados na concatenao de strings


!=, = e == so usados tambm com objetos

Lista de operadores

Precedncia

A precedncia determina em que ordem as operaes em


uma expresso sero realizadas

Parnteses podem ser usados para sobrepor a precedncia

Por exemplo, operaes de multiplicao so realizadas antes de


operaes de soma:
int x = 2 + 2 * 3 - 9 / 3;
// 2 + 6 - 3 = 5
int x = (2+2)*(3-9)/3;

// 4*(-6)/3=-8

A maior parte das expresses de mesma precedncia


calculada da esquerda para a direita

int y=13+2+4+6;

// (((13+2)+4)+6)

H excees. Por exemplo, atribuio

Literais de caracteres em Java

Atribuio

A atribuio realizada com o operador =

= serve apenas para atribuio e no pode ser usado em


comparaes (==)
Operador utilizado para copiar o valor da varivel ou constante do
lado direito para a varivel do lado esquerdo
- x = 13; // copia a constante inteira 13 para x
-

y = x;

// copia o valor contido em x para y

A atribuio copia valores

O valor armazenado em uma varivel de tipo primitivo o valor do


nmero, caractere ou literal booleana (true ou false)
O valor armazenado em uma varivel de tipo classe (referncia para
objeto) o ponteiro para o objeto ou null;
Consequentemente, copiar referncias por atribuio no copia
objetos. Apenas cria novas referncias para o mesmo objeto

10

Passagem de valores via atribuio

Variveis de tipos primitivos


!
!
!
!

Referncias de objetos

11

Operadores matemticos

Operadores

adio

subtrao

multiplicao

diviso

resto

Operadores unrios

-n e +n (ex: -23) (em uma expresso: 13+ -12)

Melhor usar parnteses: 13 + (-12)

Atribuio com operao

+=, -=, *=, /=, %=


x=x+1 equivale a x+=1

12

Incremento e decremento

Exemplo

int a = 10;

int b = 5;

Incrementa ou decrementa antes de usar a varivel

int x = ++a;

int y = --b;

A atribuio foi feira DEPOIS!

Incrementa ou decrementa depois de usar a varivel

int x = a++;

int y = b--;

A atribuio foi feita ANTES!

13

Incremento e decremento

Exemplo

int a = 10;

int b = 5;

Incrementa ou decrementa antes de usar a varivel

int x = ++a; // a contm 11, x contm 11

int y = --b; // b contm 4, y contm 4

A atribuio foi feira DEPOIS!

Incrementa ou decrementa depois de usar a varivel

int x = a++; // a contm 11, x contm 10

int y = b--; // b contm 4, y contm 5

A atribuio foi feita ANTES!

14

Operadores relacionais

==

igual

!=

diferente

<

menor

<=

menor ou igual

>

maior

>=

maior ou igual

Sempre produzem um resultado boleado

true or false

Comparam os valores de duas variveis ou de uma varivel e uma


constante
Comparam as referncias de objetos (apenas == e !=)

15

Operadores lgicos

&&

e (and)

||

ou (or)

negao (not)

Produzem sempre um valor boleado

true ou false

Argumentos precisam ser valores booleanos ou expresses com


resultado booleano
Por ex: (3 > x) &&!(y<=10)

Expresso ser realizada at que o resultado possa ser


determinado de forma no ambgua

Exemplo: (false && <qualquer coisa>)

A expresso <qualquer coisa> no ser calculada


16

Operadores orientados a bit

&

and

or

xor (ou exclusivo)

not

Para operaes em baixo nvel (bit por bit)

Operam com inteiros e resultados so nmeros inteiros


Se argumentos forem booleanos, resulto ser igual ao obtido com
operadores booleanos
Suportam atribuio conjunta: &=, |= ou ^=

17

Operadores de deslocamento

<<

deslocamento de bit esquerda

>>

deslocamento de bit direita

>>>

deslocamento direita sem considerar o sinal

Para operaes em baixo nvel (bit a bit)

Operam sobre inteiros e inteiros longos


Tipos menores (short e byte) so convertidos a int antes de realizar a
operao
Podem ser combinados com atribuio: <<=, >>= ou >>>=

18

true e false

Todas as expresses condicionais usadas nas estruturas for,


if-else, while e do-while so expresses booleanas

O resultado das expresses deve ser sempre true ou false


No h converses automticas envolvendo booleanos em Java (evita
erros de programao comuns em C/C++)

19

if-else

Sintaxe
!
!
!
!
!

Exemplo

20

Operador ternrio (if-else)

Retorna um valor ou outro dependendo do resultado da


expresso booleana

varivel = expresso ? valor (se true) : valor (se false);

Exemplo:

int x = (y!=0)?50:500;

String tit = (gender==f)? Sra. : Sr.

num + pagina + ((num != 1) ? s : )

Use com cuidado

Pode levar a cdigo difcil de entender

21

switch (case)

Sintaxe
!
!
!
!
!

Exemplo

22

Operador de concatenao

Em uma operao usando + com dois operandos, se um


deles for String, o outro ser convertido para String e ambos
sero concatenados

A operao de concatenao, assim como a de adio,


ocorre da direita para a esquerda

String s = 1 + 2 + 3 + = + 4 + 5 + 6;

Resultado: s contm a String 6=456. Por qu?

23

instanceof

instanceof um operador utilizado para comparar uma


referncia com uma classe

A expresso ser true se a referncia for do tipo de uma classe ou


subclasse testada e false, caso contrrio
Sintaxe: (referncia instanceof Classe)

Exemplo

if (obj instance of Point) {}

24

Tipos de dados

25

Controle de execuo

O controle de fluxo da execuo em Java utiliza os mesmos


comandos existentes em outras linguagens

Repetio: for, while, do-while


Seleo: if-else, switch-case
Desvios (somente para estruturas de repetio): continue, break

No existe comando goto

goto, porm, palavra reservada

26

return

A palavra chave return tem duas finalidades

Especifica o que um mtodo ir retornar (se o mtodo no tiver sido


declarado com tipo de retorno void)
Causa o retorno imediato linha de controle imediatamente posterior
chamada do mtodo

Exemplos de sintaxe

27

while e do-while

Sintaxe
!
!
!
!

Exemplos

28

for

Sintaxe
!
!
!
!

Exemplos

29

break e continue

break: interrompe a execuo do bloco de repetio

Continua com a prxima instruo, logo aps o bloco

continue: interrompe a execuo da iterao

Testaa condio e reinicia o bloco com a prxima iterao

30

Exerccio

Escreva um programa Quadrados que leia um nmero da


linha de comando e imprima o quadrado de todos os
nmeros entre 1 e o nmero passado.

Para converter de String para int, use:


int numero = Integer.parseInt(10);

31

Vetores

Vetores so colees de objetos ou tipos primitivos

Cada elemento do vetor inicializado a um valor default,


dependendo do tipo de dados:

Os tipos devem ser conversveis ao tipo em que foi declarado o vetor


int[] vetor = new int[10];

null para objetos


0, para int, long, short, byte, float, double
Unicode 0, para char
false, para boolean

Elementos podem ser recuperados a partir da posio 0:

int elemento_1 = vetor[0];

int elemento_2 = vetor[1];

32

Vetores

De tipos comuns
!
!
!
!
!

De objetos (Point uma classe, com membros x e y, inteiros)

33

Inicializao de vetores

Vetores podem ser inicializados no momento em que so


criados

String[] semana = {Dom, Seg, Ter, Qua, Qui,


Sex, Sab};

String[][] usuarios = {
{Joo, Ningum},
{Maria, D., Aparecida},
{Fulano, de, Tal}
};

Essa inicializao no pode ser usada em outras situaes


(depois que o vetor j existe), exceto usando o new, da
forma:

semana = new String[]{Dom, Seg, Ter, Qua,


Qui, Sex, Sab};

34

A propriedade length

length: todo vetor em Java possui essa propriedade. Ela


informa o nmero de elementos que o vetor possui
length uma propriedade read-only
extremamente til em blocos de repetio
for (int x=0; x < vetor.length; x++) {

vetor[x] = x*x;
}

!
Uma vez criados, vetores no podem ser redimensionados
Use System.arraycopy() para copiar um vetor para dentro de
outro (alto desempenho)
Use java.util.ArrayList (ou Vector) para manipular com
vetores de tamanho varivel (baixo desempenho)
ArrayLists e Vectors so facilmente conversveis em vetores
quando necessrio
35

Vetores multidimensionais

Vetores multidimensionais em Java so vetores de vetores

possvel criar toda a hierarquia (vetor de vetor de vetor), para fazer


vetores retangulares
int [][][] prisma = new int[3][2][2];

ou criar apenas o primeiro nvel (antes de usar, porm, preciso criar


os outros nveis)
int [][][] prisma = new int[3][2][2];

prisma[0] = new int[2][];

prisma[1] = new int[3][2];

prisma[2] = new int[4][4];

prisma[0][0] = new int[5];

prisma[0][1] = new int[3];

36

Exerccios

Escreva um programa Java que recebe um array de nmeros


inteiros aleatrios e ordene esses nmeros

Escreva um programa Java que recebe duas palavras


(Strings) e verifica se elas so anagramas.

Escreva um programa Java que retorna o maior palndromo


de dentro de uma String. Se a palavra for um palndromo,
retorne a prpria palavra.

37

Das könnte Ihnen auch gefallen