Académique Documents
Professionnel Documents
Culture Documents
O
Programa
Ol
Mundo!
Todo
cdigo
Java
deve
pertencer
a
uma
classe
Isto
diz
que
todo
mundo
pode
executar
esse
programa
Chaves
indicam
o
incio
do
corpo
da
classe
Nome
deste
mtodo
Esse
o
nome
da
classe
Este
mtodo
no
retorna
nada
Os
parmetros
passados
para
este
mtodo
(neste
caso
os
argumentos
da
linha
e
comando
passados
como
um
arranjo
de
strings)
Chaves
indicam
o
incio
do
corpo
do
mtodo
Todo mundo pode executar este programa Este mtodo pertence a classe, no ao objeto
public
class
Mundo
{
public
sta-c
void
main
(String[]
args)
{
System.out.println
(Ol
Mundo!)
;
}
}
O
Nome
do
mtodo
que
se
deseja
chamar
(neste
caso
o
mtodo
para
imprimir
strings
na
tela
O
Parmetro
passado
para
o
mtodo
(neste
caso
o
string
que
ser
impresso)
Ponto-e-vrgula
indica
o
m
deste
comando
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
Atores
Os
principais
atores
em
um
programa
Java
so
os
objetos
Armazenam
dados
e
fornecem
meios
de
acessar
estes
dados
Todo objeto uma instncia de uma classe que dene um @po do objeto
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
Operaes
(mtodos)
Construtores,
sub-programas
e
funes
Denem
o
comportamento
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
Modicadores
de
classe
abstract:
descreve
uma
classe
que
possui
mtodos
abstratos
nal:
descreve
uma
classe
que
no
pode
ter
subclasses
public:
descreve
uma
classe
que
pode
ser
instanciada
ou
estendida
por
qualquer
coisa
denida
no
mesmo
pacote
ou
por
qualquer
coisa
que
importe
a
classe
Se
o
modicador
public
no
u-lizado,
a
classe
considerada
amigvel
(friend),
ou
seja,
pode
ser
usada
e
instanciada
por
qualquer
classe
do
mesmo
pacote
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
Tipos
bsicos
boolean
(true
ou
false):
Valores
Booleanos;
char
(0
a
65535):
Caracteres
representados
em
16
bits;
byte
(-128
a
127):
Inteiro
de
8
bits;
short
(-32768
a
32767):
Inteiro
de
16
bits;
int
(-2E31
e
2E31):
Inteiro
de
32
bits;
long
(-2E63
e
(
2E63
-
1)
):
Inteiro
de
64
bits;
oat
(1.40239846E-46
e
3.40282347e+38):
Ponto
utuante
de
preciso
simples;
double
(4.94065645841246544E-324
e
1.7976931348623157E+308):
Ponto
utuante
de
preciso
dupla.
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
Objetos
Nome
desta
classe
public
class
Declara
a
varivel
d
como
sendo
o
-po
Contador
Exemplo
Sintaxe padro para declarar um mtodo Declara a varivel c como sendo do -po Contador; isto , c pode se referir a qualquer objeto Contador
Atribui a referncia ao novo objeto para a varivel d Cria um novo objeto Contador e retorna uma referncia para o mesmo
new Contador() ;
c
=
new
Contador()
;
d
=
c
;
}
Cria
um
novo
objeto
Contador
e
retorna
uma
referncia
para
o
mesmo
Atribui
a
referncia
para
o
mesmo
objeto
que
c
(o
objeto
que
d
referenciava
no
tem
mais
nenhuma
varivel
referenciando-o)
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
Objetos numricos
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
Objetos
String
Seqncia
de
caracteres
que
provm
algum
alfabeto
Cada
caractere
c
que
compe
uma
string
s
pode
ser
referenciado
por
seu
ndice
[par-ndo-se
do
ndice
0]
Em
Java
usa-se
Unicode
Classe
String
hogs
and
dogs
Comprimento
=
13
c[2]
=
g
e
c[5]=a
Concatenao
String
s
=
quil
+
metros;
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
10
A referncia O objeto
A varivel referncia
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
11
Classes e instncias
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
12
Classes e Instncias
Classe:
uma
denio,
um
modelo
existente
para
a
criao
de
novos
objetos.
Pode
ser
considerada
como
uma
abstrao
que
descreve
todas
as
caracters-cas
comuns
dos
objetos
criados
a
par-r
dela.
Instncia:
Um
objeto
que
pertena
a
uma
classe
chamado
de
instncia
desta
classe.
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
13
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
14
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
15
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
16
Tipos
Enumerados
modicador
enum
nome
{nome_valor_0,
nome_valor_1,
...,
nome_valor_N-1}
Onde
o
modicador
pode
ser:
public,
protected
e
private
public
enum
Dia
{SEG,
TER,
QUA,
QUI,
SEX,
SAB,
DOM};
Uma
vez
denido,
pode
ser
usado
como
uma
classe
Possui
mtodos
predenidos
public
class
Calendario
{
public
enum
Dia
{SEG,
TER,
QUA,
QUI,
SEX,
SAB,
DOM};
public
sta@c
void
main
(String[]
args)
{
Dia
d
=
Dia.SEG;
System.out.println(Inicialmente
d
+
d);
d
=
Dia.QUA;
System.out.println(Ento
agora
+
d);
Dia
t
=
Day.valueOf(QUA);
System.out.println(Agora
d
e
t
so
iguais:
+
(d==t));
}
}
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
17
Mtodos
modicador
Dpo
nome
(Dpo_0
parmetro_0,
...,
Dpo_N-1
parmetro_N-1)
{
//
corpo
do
mtodo...
}
Modicadores
public:
qualquer
um
pode
chamar
protected:
apenas
mtodos
do
mesmo
pacote
ou
subclasse
private:
apenas
mtodos
da
mesma
classe
default:
objetos
de
classe
do
mesmo
pacote
Adicionais
abstract:
no
possui
cdigo,
com
a
lista
de
parmetros
seguidas
por
;.
S
existem
em
classes
abstratas
nal:
mtodo
que
no
pode
ser
sobrescrito
por
uma
subclasse
sta@c:
associado
a
uma
classe
e
no
a
instncia
propriamente
dita.
Pode
ser
usados
pra
alterar
o
estado
de
variveis
sta@c
associadas
a
classe
(desde
que
no
tenham
sido
declaradas
como
nal)
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
18
Mtodos
Construtores
O construtor de uma classe um mtodo especial que no possui retorno, leva o mesmo nome da classe e pode conter ou no parmetros. Sempre que uma classe instanciada (new), o mtodo de construo chamado. Se o construtor no for declarado na classe, Java adiciona automaticamente um construtor vazio no bytecode. Se na declarao da classe, existe algum construtor declarado, o construtor vazio no inserido. Os parmetros definidos em um construtor no vazio precisam ser passados no momento de instanciao (new) da classe.
Ex: Conta() {}, Conta(double saldo){ }
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
19
Expresses
literais
Um
literal
qualquer
valor
constante
que
pode
ser
usado
em
atribuies
ou
outros
-pos
de
expresso
null
Booleano:
true
e
false
Inteiro
e
inteiro
longo
(deve
ser
terminado
por
L)
Ponto
utuante
duplo
(double),
que
o
default
e
simples
(oat),
que
deve
ser
terminado
por
F
Caracteres:
pertencem
ao
alfabeto
Unicode
Strings:
seqncia
de
caracteres
entre
aspas
duplas
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
20
Declarando
Constantes
// Exemplos de constantes final float PI = 3.141592; final boolean DEBUG = false; final int LEFT = 0; final int RIGHT = 1; final int CENTER = 2;
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
21
Expresses
Aritm@cas
// Aritmtica i = 2 + 4; // i = 4 - 2; // i = 3 * 4; // i = 5 / 2; // i = 5 % 2; // // Atribuies x += y; // x = x -= y; // x = x *= y; // x = x /= y; // x = simples adio subtrao multiplicao diviso mdulo com x + x x * x / operaes aritmticas y; y; y; y;
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
22
Incremento
e
Decremento
// Incremento e decremento ps-fixados // Atribui para incrementar. x = 1; y = x++; // x ser 2; y ser 1 y = x--; // x ser 0; y ser 1 // Incremento e decremento prefixados // Incrementa para atribuir. x = 1; y = ++x; // x ser 2; y ser 2 y = --x; // x ser 0; y ser 0
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
23
Expresses
Lgicas
// Comparaes em nmeros i i i i i i == 3; // igual (tambm em objetos) != 3; // diferente (tambm em objetos) > 3; // maior < 3; // menor <= 3; // menor ou igual >= 3; // maior ou igual
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
24
Expresses
Lgicas
// Operaes em bits (inteiros) i i i i i i i x x x x x x = i & 0; = i | i; = i ^ i; = i << 4; = i >> 3; = i >>> 2; = ~i; <<= y; >>= y; >>>= y; &= y; |= y; ^= y; // // // // // // // // // // // // // AND bitwise (0) OR bitwise (-32,768) XOR bitwise (0) move 4 bits com S para esquerda move 3 bits com S para direita move com zeros para a direita complemento x = x << y; x = x >> y; x = x >>>y; x = x & y; x = x | y; x = x ^ y;
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
25
Precedncia
Precedncia
a
ordem
na
qual
os
operadores
sero
calculados
quando
o
programa
for
executado.
Em
Java,
os
operadores
so
calculados
na
seguinte
ordem:
// operaes e suas precedncias . [] () ++ -- ! ~ instanceof new (type)exp * / % + - << >> >>> < > <= >= == != & ^ | && || (cond)?t_exp:f_exp = += -= *= /= %= ^= &= |= <<= >>= >>>=
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
26
Conversores
e
autoboxing/unboxing
Usuais
double
d1
=
3.2;
double
d2
=
3.9999;
int
i1
=
(int)d1;
//i1
tem
valor
3
int
i2
=
(int)d2;
//i2
tem
valor
3
double
d3
=
(double)i2;
//d3
tem
valor
3.0
Operadores
int
i1
=
3;
int
i2
=
6;
dresult
=
(double)i1
/
(double)i2;
//dresult
tem
valor
0.5
dresult
=
i1
/
i2;
//dresult
tem
valor
0.0
27
CONTROLE
DE
FLUXO
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
28
Condicional
if
// if then if (x>y) { // se verdadeiro execute aqui }; // if then else if (x>y) { // se verdadeiro execute aqui } else { //se falso execute };
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
29
Condicional
switch
switch (varDecisao) { case valor1: {// se varDecisao == valor1 } break; case valor2: {// se varDecisao == valor2 } break; ... default: {// se nenhum } break; };
30
Ciclos
for
// Estrutura for (inicializao; teste; incremento) { bloco de execuo } // Exemplo for (i=0; i<100; i++) { bloco de execuo } // Erro comum for (i=0; i<100; i++); a++;
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
31
Ciclos
while
// Estrutura while (condio) { bloco de execuo } // Exemplo i = 0; while (i<arranjo1.length) { bloco de execuo i++; }
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
32
Ciclos
do-while
// Estrutura do { bloco de execuo } while (condio) // Exemplo i = 0; do { bloco de execuo i++; } while (i<10)
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
33
34
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
35
ARRANJOS
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
36
Arranjos
// Arranjos (arrays) int vetorzinho[]; // array unidimensional int[] outroVetor; // a mesma coisa float[][] umaTabela; // array bidimensional // Arrays de tipos complexos(instancias de classes) Font[] variasFontes; String[] nomes;
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
37
Inicializando
arranjos
// Inicializando int[] maisUmVetor = new int[10]; String[] nomes = new String[100]; // criando e inicializando um arranjo int[] conjunto = {9, 13, 15, 16, 20, 23};
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
38
Clonando
um
arranjo
// Clonando int[] a = {940, 880, 830, 790, 750, 660, 650, 590, 510, 440}; int[] b = new int[10]; // clonando um arranjo b = a.clone(); b[3] = 5; a
->
940
880
830
790
750
660
650
590
510
440
b
->
940
880
830
790
750
660
650
590
510
440
Alterao
ordinria
da
atribuio
b[3]
=
5;
a
->
940
880
830
790
750
660
650
590
510
440
b
->
940
880
830
5
750
660
650
590
510
440
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
39
40
Mtodos
de
sada
Objeto
sta-c
System.out
Instncia
da
classe
java.io.PrintStream
Mtodo
para
uxo
buferizado
de
sada
[buer]
print(Object
o):
imprime
o
objeto
o
usando
seu
mtodo
toString;
print(String
s):
imprime
a
string
s;
print(base_type
b):
imprime
o
valor
de
b
conforme
seu
-po
bsico;
Println(String
s):
imprime
a
string
s,
seguida
pelo
caractere
de
nova
linha;
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
41
Java.u@l.Scanner
Entrada
de
dados
a
par-r
do
console
System.in
::
objeto
associado
ao
disposi-vo
de
entrada
padro
import
java.io.*;
import
java.u-l.Scanner;
public
class
nInputExample
{
public
sta@c
void
main(String[]
args)
throws
IOExcep-on
{
Scanner
s
=
new
Scanner(System.in);
System.out.print(Entre
sua
altura
em
cm:);
oat
height
=
s.nextFloat();
System.out.print(Entre
seu
peso
em
kg:);
oat
weight
=
s.nextFloat();
oat
bmi
=
weight/(height*height)*10000;
System.out.println(Seu
ndice
de
massa
corporal
:
+
bmo
+
.);
Entre sua altura em cm: 180!
}
Entre seu peso em kg: 80.5! }
42
Mtodos
de
java.u@l.Scanner
hasNext():
retorna
trus
se
e
soente
se
existe
mais
um
token
no
string
de
entrada
next():
retorna
o
prximo
token;
gera
um
erro
se
no
exis-r
mais
tokens
hasNextType(Tipo):
retorna
true
se
e
somente
se
existe
mais
um
token
no
uxo
de
entrada
e
se
pode
ser
como
sendo
do
-po
(bsico)
nextType(Tipo):
retorna
o
prximo
token
do
uxo
de
entrada
como
um
-po
base
correspondente
a
Tipo;
gera
erro
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
43
44
UM
PROGRAMA
DE
EXEMPLO
Algoritmos
e
Estrutura
de
Dados
Conceitos
Bsicos
de
Programao
em
Java
2011
Vinicius
Cardoso
Garcia
45
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
46
A classe CreditCard
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
47
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
48
A classe Test
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
49
A classe Test
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
50
Algoritmos e Estrutura de Dados Conceitos Bsicos de Programao em Java 2011 Vinicius Cardoso Garcia
51