100% acharam este documento útil (3 votos)
277 visualizações

Linguagem Java

O documento descreve os principais conceitos da linguagem de programação Java, incluindo sua estrutura, tipos de dados, operadores, estruturas de controle, programação orientada a objetos, tratamento de exceções e entrada/saída de dados. É um manual produzido internamente pelo SENAC do Rio Grande do Sul para uso em cursos sobre a linguagem Java.

Enviado por

Felipe Alves
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
100% acharam este documento útil (3 votos)
277 visualizações

Linguagem Java

O documento descreve os principais conceitos da linguagem de programação Java, incluindo sua estrutura, tipos de dados, operadores, estruturas de controle, programação orientada a objetos, tratamento de exceções e entrada/saída de dados. É um manual produzido internamente pelo SENAC do Rio Grande do Sul para uso em cursos sobre a linguagem Java.

Enviado por

Felipe Alves
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 69

SERVIÇO NACIONAL DE APRENDIZAGEM COMERCIAL

SENAC - RIO GRANDE DO SUL

LINGUAGEM JAVA

Porto Alegre, 2007


LINGUAGEM JAVA
1ª Edição

Elaboração e Edição

SENAC - Rio Grande do Sul

Documento produzido para uso interno do

SENAC - Rio Grande do Sul

SENAC.RS - Departamento Regional no Rio Grande do Sul

Linguagem Java

1ª edição

Porto Alegre: SENAC – Informática / RS, 2007.

69 pp.
Sumário
Introdução ao Java_______________________________________________________________________________7
J2SE ________________________________________________________________________________________7
J2ME ________________________________________________________________________________________7
J2EE ________________________________________________________________________________________7
Principais Características_______________________________________________________________________7
A Plataforma Java _______________________________________________________________________________7
Java Runtime Environment (JRE) ________________________________________________________________7
Java Virtual Machine (JVM) _____________________________________________________________________7
Java Application Program Interface ______________________________________________________________8
Java Developer Kit (Java SDK) __________________________________________________________________8
Palavras Reservadas _________________________________________________________________________8
Unicode____________________________________________________________________________________8
Estrutura de um programa em Java ______________________________________________________________9
Convenções __________________________________________________________________________________9
Pacotes _____________________________________________________________________________________10
Tipos Primitivos de Dados _____________________________________________________________________10
Tipos Inteiros ______________________________________________________________________________10
byte ______________________________________________________________________________________11
short _____________________________________________________________________________________11
int _______________________________________________________________________________________11
long ______________________________________________________________________________________11
Tipos Ponto Flutuante (Real) ___________________________________________________________________11
float ______________________________________________________________________________________11
double ____________________________________________________________________________________11
char ______________________________________________________________________________________11
Tipo Lógico _________________________________________________________________________________12
boolean ___________________________________________________________________________________12
Variáveis ____________________________________________________________________________________12
Operador de Atribuição________________________________________________________________________12
Operadores Aritméticos _______________________________________________________________________13
Operadores de atribuição compostos____________________________________________________________13
Operadores de Incremento e decremento ________________________________________________________13
Operadores Relacionais _______________________________________________________________________14
Operadores Lógicos __________________________________________________________________________15
Tabela Verdade do Operador Lógico (&&) ________________________________________________________15
Tabela Verdade do Operador Lógico (||) _________________________________________________________15
Tabela Verdade do Operador Lógico (^) _________________________________________________________15
Tabela Verdade do Operador Lógico (!) __________________________________________________________16
Estruturas de Controle___________________________________________________________________________16
Estrutura condicional if________________________________________________________________________16
Estrutura de seleção switch ____________________________________________________________________17
Estruturas de Repetição _______________________________________________________________________18
Estrutura while _____________________________________________________________________________18
Estrutura do _______________________________________________________________________________18
Estrutura de Repetição for ____________________________________________________________________18
Arrays ____________________________________________________________________________________19
Programação Orientada a Objeto __________________________________________________________________20
Classes _____________________________________________________________________________________20
Métodos Construtores ________________________________________________________________________21
Objetos _____________________________________________________________________________________21

3
Modificadores _______________________________________________________________________________21
Métodos ____________________________________________________________________________________21
Herança_____________________________________________________________________________________22
Classes abstratas ____________________________________________________________________________23
Interface ____________________________________________________________________________________23
Polimorfismo ________________________________________________________________________________24
Tratamento de Exceções (Exceptions) ___________________________________________________________24
Exceções Verificadas ________________________________________________________________________25
Entrada e saída ______________________________________________________________________________25
Arquivos Binários ____________________________________________________________________________25
InputStream _________________________________________________________________________________25
Principais Métodos __________________________________________________________________________26
FileInputStream ______________________________________________________________________________26
Principais Construtores_______________________________________________________________________26
Principais Métodos __________________________________________________________________________26
ObjectInputStream____________________________________________________________________________26
Principais Construtores_______________________________________________________________________26
Principais Métodos __________________________________________________________________________27
BufferedInputStream __________________________________________________________________________27
Principais Construtores_______________________________________________________________________27
Principais Métodos __________________________________________________________________________27
DataInputStream _____________________________________________________________________________27
Principais Construtores_______________________________________________________________________27
Principais Métodos __________________________________________________________________________27
OutputStream________________________________________________________________________________28
Principais Métodos __________________________________________________________________________28
FileOutputStream_____________________________________________________________________________28
Principais Construtores_______________________________________________________________________28
Principais Métodos __________________________________________________________________________28
ObjectOutputStream __________________________________________________________________________29
Principais Construtores_______________________________________________________________________29
Principais Métodos __________________________________________________________________________29
BufferedOutputStream ________________________________________________________________________29
Principais Construtores_______________________________________________________________________29
Principais Métodos __________________________________________________________________________29
DataOutputStream ____________________________________________________________________________29
Principais Construtores_______________________________________________________________________29
Principais Métodos __________________________________________________________________________30
Arquivos Texto _________________________________________________________________________________30
Reader______________________________________________________________________________________30
Principais Métodos __________________________________________________________________________30
BufferedReader_____________________________________________________________________________30
Principais Construtores_______________________________________________________________________30
Principais Métodos __________________________________________________________________________31
LineNumberReader ___________________________________________________________________________31
Principais Construtores_______________________________________________________________________31
Principais Métodos __________________________________________________________________________31
InputStreamReader ___________________________________________________________________________31
Principais Construtores_______________________________________________________________________31
Principais Métodos __________________________________________________________________________32
Principais Construtores_______________________________________________________________________32
Principais Métodos __________________________________________________________________________32
Writer ______________________________________________________________________________________32
Principais Métodos __________________________________________________________________________32
BufferedWriter _______________________________________________________________________________33
Principais Construtores_______________________________________________________________________33

4
Principais Métodos __________________________________________________________________________33
OutputStreamWriter __________________________________________________________________________33
Principais Construtores_______________________________________________________________________33
Principais Métodos __________________________________________________________________________33
FileWriter ___________________________________________________________________________________34
Principais Construtores_______________________________________________________________________34
PrintWriter __________________________________________________________________________________34
Principais Construtores_______________________________________________________________________34
Principais Métodos __________________________________________________________________________34
Classe de Entrada e Saída________________________________________________________________________34
RandomAccessFile ___________________________________________________________________________34
Principais Construtores_______________________________________________________________________34
Principais Métodos __________________________________________________________________________35
Interface Gráfica ________________________________________________________________________________36
Swing ______________________________________________________________________________________36
Tabela 1.1 Classes AWT e Swing ______________________________________________________________36
Componentes Visuais ___________________________________________________________________________37
JComponent_________________________________________________________________________________37
Principais Métodos __________________________________________________________________________37
JFrame _____________________________________________________________________________________37
Principais Construtores_______________________________________________________________________37
Principais Métodos __________________________________________________________________________37
JPanel ______________________________________________________________________________________38
Principais Construtores_______________________________________________________________________38
Principais Métodos __________________________________________________________________________38
JLabel ______________________________________________________________________________________39
Principais Construtores_______________________________________________________________________39
Principais Métodos __________________________________________________________________________39
JButton _____________________________________________________________________________________40
Principais Construtores_______________________________________________________________________40
Principais Métodos __________________________________________________________________________40
JToggleButton _______________________________________________________________________________41
Principais Construtores_______________________________________________________________________41
Principais Métodos __________________________________________________________________________42
JCheckBox __________________________________________________________________________________42
Principais Construtores_______________________________________________________________________42
Principais Métodos __________________________________________________________________________43
JRadioButton ________________________________________________________________________________43
Principais Construtores_______________________________________________________________________43
Principais Métodos __________________________________________________________________________44
JComboBox _________________________________________________________________________________44
Principais assinaturas: _______________________________________________________________________45
Principais Métodos __________________________________________________________________________45
JList _______________________________________________________________________________________45
Principais Construtores_______________________________________________________________________46
Principais Métodos __________________________________________________________________________46
JTextField ___________________________________________________________________________________46
Principais Construtores_______________________________________________________________________47
Principais Métodos __________________________________________________________________________47
JOptionPane_________________________________________________________________________________47
Principais Construtores_______________________________________________________________________47
JTextArea ___________________________________________________________________________________49
Principais Construtores_______________________________________________________________________49
Principais Métodos __________________________________________________________________________49
JTabbedPane ________________________________________________________________________________50
Principais Construtores_______________________________________________________________________50
Principais Métodos __________________________________________________________________________50

5
MenuBar, Jmenu e JMenuItem __________________________________________________________________51
Principais Construtores_______________________________________________________________________51
Principais Métodos __________________________________________________________________________51
JTable ______________________________________________________________________________________52
Principais Construtores_______________________________________________________________________52
JFileChooser ________________________________________________________________________________53
Principais Construtores_______________________________________________________________________53
Principais Métodos __________________________________________________________________________53
JInternalFrame _____________________________________________________________________________54
Principais Construtores_______________________________________________________________________54
Principais Métodos __________________________________________________________________________54
Layout ________________________________________________________________________________________55
Gerenciadores de Layout ______________________________________________________________________55
FlowLayout__________________________________________________________________________________55
Principais Construtores_______________________________________________________________________55
GridLayout __________________________________________________________________________________56
Principais Construtores_______________________________________________________________________56
BorderLayout ________________________________________________________________________________57
Eventos _______________________________________________________________________________________58
ActionEvent _________________________________________________________________________________58
ItemEvent ___________________________________________________________________________________59
TextEvent ___________________________________________________________________________________59
FocusEvent _________________________________________________________________________________59
KeyEvent ___________________________________________________________________________________60
MouseEvent _________________________________________________________________________________60
WindowEvent ________________________________________________________________________________61
Classes Adapter______________________________________________________________________________61
Programação Multitarefa em Java _________________________________________________________________62
Threads_____________________________________________________________________________________62
A classe Thread ______________________________________________________________________________62
Principais Métodos __________________________________________________________________________62
Criando Threads em Java ______________________________________________________________________62
Criando Theads implementando Runnamble ______________________________________________________63
Estados de uma Thread _______________________________________________________________________64
Novo _____________________________________________________________________________________64
Executável ________________________________________________________________________________64
Execução _________________________________________________________________________________64
Espera/bloqueio/suspensão ___________________________________________________________________64
Inativo ____________________________________________________________________________________64
Impedindo a execução de uma thread ___________________________________________________________64
Método sleep() _____________________________________________________________________________64
Método yeld() ______________________________________________________________________________65
Método setPriority()__________________________________________________________________________65
O método join() _____________________________________________________________________________65
Sincronização ______________________________________________________________________________65
Interação com as Threads _____________________________________________________________________66
Método Wait() ______________________________________________________________________________66
Método Notify() _____________________________________________________________________________66
Método NotifyAll() ___________________________________________________________________________66
Coleções____________________________________________________________________________________67
List ______________________________________________________________________________________67
Principais Métodos __________________________________________________________________________67
Set_______________________________________________________________________________________68
Map ______________________________________________________________________________________68

6
I NTRODUÇÃO AO J AVA
Ja va é uma ling uag em po der osa , mo de rn a , u tiliza da par a des en vo lvimen to de
a plicaç ões p ara compu tador es d esktops , main frames , d ispos itivos mó ve is como
ce lu la res ou PD A’s , ap licaçõ es p ara a web d e peq ue no , mé d io e gra nde p or te , ro bôs ,
e n tre ou tras .
E l a f oi dese n vo l vi da p ar a s er i nd epe nde n te de p la t a fo r ma , ou s e ja , po de mos u t il iza r o
Ja va c om o Wind ows, L i nu x, Un ix, Solar is , bas ta ndo tão so me n te termos ins ta lad o a
Máq uina Vir tu a l Ja va . (J VM) par a o s is te ma o per acional corr espo nd en te .
O J a va é dividido e m três par tes b ásic as :

J2SE
J a v a 2 S ta nda r d E di t i on é a p ar te pr inc i pa l . N e la e s tão c on t id as to das as A P I ’s
n ecessá rio p ara o dese n vo l vime nto de so ftwa re p ara co mp u tad ores D esk top.

J2ME
No Ja va 2 Micr o Ed ition es tão co n tidas as c lasses , ro tin as nec essár io pa ra o
d esen volvimen to de ap lica tivos mó ve is , ta is co mo ce lu la res e PD A’s .

J2EE
O J a va 2 En t er pr is e Ed i t ion é um c o nj un to de espec ificaç ões p ara o dese n volvime n to
d esde pequ enas ap licaç ões web a té gr and e sites de ac esso conc orr ido .

P RINCIPAIS C ARACTERÍSTICAS
• Or i en ta da a ob je tos
• Có digo fo nte in terpr e ta do e c omp ilad o
• D is tr ibu ída
• D inâmica
• Alta p or tabilid ade
• Alta p er formanc e
• Ro bus ta
• Multitarefa
• Se gura
• A r q ui t e tur a n eu tr a
• P or t á ve l

A P LATAFORMA J AVA
A p la ta forma Ja va é d i vid ida em duas p ar tes : a J ava Vir tua l Mach in e (J VM) , e a
Ap plica tio n Pro gra m In ter fac e (Ja va API)

J AVA R UNTIME E NVIRONMENT (JRE)


O J R E é um ap lic a ti vo que ins ta la o am bie n te b ás ic o , o u s e ja , a A P I e a J VM no
co mp u tad or q ue quere mos e xecu tar a plica tivos d esenvo l vidos em J a va .

J AVA V IRTUAL M ACHINE (JVM)


A Ja va Virtu al Mach in e é uma ca ma da de so ftwa re , in ter med iá ria , en tre o s istema
O per aci ona l e o ap l ic a t i vo J a va . Es ta é r es po ns á ve l p el o a mb ie n te d e e x ecuçã o dos
p rogr amas cr ia dos e m Ja va .

7
Se u pr inc ip al compon en te é o co ma ndo ja va q ue nos poss ib i lita a e xecuç ão de um
a pl ic a t i vo d es en v ol v id o nes t a l in gua ge m .

Exemplo:
C: \Pasta> j a va N om eDaC lass e Pr inc ip al

J AVA A PPLICATION P ROGRAM I NTERFACE


A API d o Ja va é uma gra nde co leç ão de compone n tes de so ftw are re u tilizá ve is,
p ron tos par a uso , o rga niz ados em pac otes .

Exemplos:

javax.swing

P ac o te p ar a dese n vo lv e r i n ter faces grá f icas d e usu ár io ( gu i ’s) .


java.io

P ac o te p ar a dese n vo lv e r ap l ic a t iv os c om e nt r a da e s a íd a

J AVA D EVELOPER K IT (J AVA SDK)


O J a va SDK é u m s u íte de fer r am en t as c om p le ta p ar a dese n vo lv i m en to d e s o f tw ar es
e m J a va . S e u p r i nc ip al c o mand o é o j a vac , q ue per mi t e c omp i lar mos o n os s o c ód ig o
f o n te ja va .

Exemplo:
C:\Pas ta> javac No meD o Ar q u i vo .j a va

P AL AV R AS R E S E R V AD AS
As p ala vras-c ha ve em J a va sã o as s egu in tes :

abstract continue for new


assert default goto package
boolean do if private
break double implements protected
byte else import public
case enum instanceof return
catch extends int short
char final interface static
class finally long strictfp
const float native super

Observação: true, false e null, são palavras reservadas. Não podemos nomear
componentes de software com palavras reservadas.

UNICODE
Par a su portar os d i vers os id iomas qu e a p la ta for ma J a va pode ser e xecu tada , es ta
u t i liz a o pa drã o u nico de em v ez de A SC II , p o is es te s up or ta p r a t icam ente t od os os
i d io mas a tu ais .

8
E STRUTURA DE UM PROGRAMA EM J AVA
A ling uage m J a va tra ba lh a de for ma cas e s ens itive , ou se ja , d i fer enc ia le tras
maiúsculas de minúsculas .
Blocos de ins tr uçõ es sã o inser idos en tr e “{}”
P ar a fi na liza r c ad a i ns tr uç ão uti li z a mos “ ;”
Na ma ior ia d as vezes cr ia mos uma c lasse p or ar qu ivo;
U m prog r am a func io na l e m J a va de v e t er n o m ín im o u ma c l as s e p úb l ica , d e mes mo
n ome d o a rqu ivo .java , o nde n es ta con terá um mé to do c ha ma do pub lic s ta tic vo id
m a in( Str ing [] args)

// Arquivo PrimeiroPrograma.java
public class PrimeiroPrograma() {
public static void main(String[] args) {
// o código fica aqui!
}
}

C ONVENÇÕES
Par a melhor le gibilidad e , ap odemos a do tar a lg umas co n venç ões :
No mes de c lasses in ic ia m com le tr a m ai úscu la

Exemplos:
a) MinhaClasse
b) Pessoa
Mé to dos e a tr i bu tos in ic ia m c om le tra minúscu la . Se fo r pa la vr a co mp os ta , a p rime ira
p al a vra s erá m inúsc ula e as d ema is in ici am co m m ai úscu la .

9
Exemplos:
a) insere;
b) calculaProduto
Co ns tan tes d e ve m s er to das as le tr as e m ma iúsc ulas .
Ma is de uma p ala vra, u tiliz amos o c arac ter e “_” .

Exemplos:
a) VALOR

b) TOTAL_VALOR

De vemos utiliza r en den tações c om 2 ou 4 esp aços

Exemplo:
public class Pessoa {
private int cpf;
public int getCpf() {
return this.cpf;
}
}

P ACOTES
Pac o te é u ma e ntida de q ue or gan iza um c on ju n to de c lasses e in ter faces
r elaciona das .
Par a e vitar con fusão com n ome d e c lasses idê n ticas n os pr ogra mas e m ja va ,
u tiliz amos o co ma ndo pack ag e , q ue d e fine u m paco te. Cad a paco te c orresp ond e a uma
p as ta ( W ind ow s ) , o u d ir e tór io ( Li nu x ) no s is te ma d e ar qu i vos .
O pac k a ge d e ve , o br iga t or iam en te , s er o p r im e ir o c o ma ndo do a r q ui v o .
P ar a qu e poss am os u ti l iz á - l o a pa r t ir de o u tr o pac o te , u t i liz am os a ins t r uç ã o i m por t .

A S un , c r ia dor a do J a v a , r ec om en da n om es d e dom í n io In te r n e t i n ver t id os pa ra


p r e f i xar a d e fi niç ão de paco t es .

package meupacote; // define o pacote meuopacote //


import java.io.*; // importa todas as classes necessárias do pacote java.io
import java.lang.StringBuffer; // só importa a classe StringBuffer
public class PrimeiroPrograma() {
public static void main(String[] args) {
// o código fica aqui!
}
}

T IPOS P RIMITIVOS DE D ADOS


Os tip os primitivos d e d ados em Ja va são os se gu in tes

TIPOS INTEIROS
Re pres en ta m n úme ros sem casas decimais .
Os tip os inte ir os em Ja va po de m ser :

10
BYTE

7 7
I n t ei r o d e ta ma nho 8 b i ts q ue var ia de - 2 até 2 - 1 . ( - 1 28 à 127 )

SHORT

15 15
I n t ei r o d e ta ma nho 16 b i ts q ue va r i a de –2 a t é 2 - 1 . ( - 32 .7 68 à 3 2 .76 7)

INT

31 31
I n t ei r o d e ta ma nho 32 b i ts q ue va r i a de –2 a t é 2 - 1 . ( - 2.14 7 .48 3.6 48 à 2 .147 . 483 . 647 )

LONG

63 63
In teiro de ta ma nho 6 4 b i ts qu e va ria de – 2 a té 2 - 1 . (-9 .22 3.372 .036 .854 .7 75 .8 08 à
9 .223 .372 .0 36 .8 54 .7 75 .809 ) .

T IPOS P ONTO F LUTUANTE (R EAL )


Re pres en ta os nú meros c om casas dec imais .
Os tipos Ponto flutuante obedecem ao padrão IEEE 754.

F L O AT

P o n to fl u tua n te s im ples de ta man ho 3 2 b i ts


a) 7.9
b) 456.87

DOUBLE

P o n to fl u tua n te d e prec isã o du pl a d e ta man ho 6 4 b i ts.

Exemplos:
a) 354335.65678765
b) 65.9998764367676

C H AR

Re pres en ta um ú n ico car ac ter e u nic ode ou u m nú me ro .


De vemos u tiliz á- lo en tr e após tr ofos . Po de mos tamb ém ar maze nar va lor es d e 0 à
6 553 5 .

Exemplos:
a) ‘a’
b) ‘d’
c) 654

11
T IPO L ÓGICO
B O O L E AN

In formação q ue p ode ass umir somen te do is es tados : tr ue o u fa lse .

Exemplos:
a) true
b) false

V ARIÁVEIS
Par a que p ossa mos a rmaz ena r da dos na me mór ia do co mpu tado r u tiliza mos as
v a r i á ve is .
As var iá veis d e ve m poss uir um n ome , um tipo de d ado e um c onte údo .
Em J a va po de mos , jun to com dec lar ação , in ic ia liz armos as var iáve is .

Exemplo de declaração de variáveis em Java


{
int Codigo;
String nome = “Jorge M.”;
float altura = 1.89;
char c = ‘H’;
boolean v = true;
}

O PERADOR DE A TRIBUIÇÃO
Na ling ua ge m Ja va, utiliza mos o o per ador “=” p ara a tr ib uiç ão .

Exemplo:
a) int x; // declara x do tipo inteiro
b) x = 9; // atribui o valor 9 a variável x

12
O PERADORES A RITMÉTICOS

Operador Significado Exemplo Resultado


+ Soma dois números 5.8 + 7.3 13.1
- Subtrai o segundo número do primeiro 9-2 7
* Multiplica dois números 4*-8 -32
/ Divide o primeiro número pelo segundo 7/2 3,5
% Obtém o resto da divisão de dois números 13 % 4 1

O PERADORES DE ATRIBUIÇÃO COMPOSTOS


Po demos utiliza r es tes o per adores par a rea l izar tare fas c omuns d e a tr ib uiçã o

Operador Significado Exemplo Equivalente


+= Soma e atribui x += 5 x = x+ 5
-= Subtrai e atribui x -= 2 x = x- 2
*= Multiplica e atribui x *= 3 x = x* 3
/= Divide e atribui x /= 9 x = x/ 9
%= Resto e atribui x %= 7 x = x% 7

O PERADORES DE I NCREMENTO E DECREMENTO

Operador Significado Exemplo Exemplo


++ Incrementa x++ ++x
-- Decrementa x -- --x
Os oper ado res incremen tam o u d ecre men ta m u ma var iá vel numé ric a .

Exemplos:

a)
int x=1;
x++;
println(x); // escreve 2.

b)
int a=7;
println(a--); // primeiro escreve 7 depois decrementa
println(a); // escreve 6.

13
O PERADORES R ELACIONAIS
O per ador es R elaciona is s ão u tiliza dos pa ra co mp ar armos do is oper an dos com o
o bje tivo de sa ber s e uma se ntença é ver dad eira o u falsa
O pe rad or R e su lt ad o ve r d a de ir o q ua nd o
== Ambos o per and os são igu ais
> O prime ir o é ma ior que o seg undo
< O prime ir o é me nor q ue o seg undo
>= O pri me ir o é ma ior ou i gu al ao s eg und o
<= O prime ir o é me nor o u igu al ao se gun do
!= Os oper and os são dife ren tes

Exemplos:
a) 5 == 7 // Falso
b) 4 < 4 // Falso
c) 15 > 23 // Falso
d) -2 >= -2 // Verdadeiro
e) 3 <= 6 // Verdadeiro
f) 7!= -7 // Verdadeiro

Exemplos:

a)
public class OperadoresAritmeticos {
public static void main (String args[]) {
int a = 5;
int b = 2;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("-b = " + (-b));
System.out.println("(float) a / b = " + ((float)a / b));
System.out.println("a + b = " + (a + b));
System.out.println("a - b = " + (a - b));
System.out.println("a * b = " + (a * b));
System.out.println("a / b = " + (a / b));
System.out.println("a % b = " + (a % b));
System.out.println("a++ = " + (a++));
System.out.println("--b = " + (--b));
System.out.println("a = " + a);
System.out.println("b = " + b);
}
}

14
b)
public class OperadoresRelacionais {
public static void main (String args[]) {
int a = 25;
int b = 11;
System.out.println("a = " + a);
System.out.println("b = " + b);
System.out.println("a < b -> " + (a < b));
System.out.println("a > b -> " + (a > b));
System.out.println("a <= b -> " + (a <= b));
System.out.println("a >= b -> " + (a >= b));
System.out.println("a == b -> " + (a == b));
System.out.println("a != b -> " + (a != b));
}
}

O PERADORES L ÓGICOS
O per ador es L óg icos sã o u tiliz ad os , fre qüe n te men te , co m o pera dor es re lac io na is ou
va lo res lógicos p ara de fin ir mos o flu xo de um pro gra ma .

Operador Resultado verdadeiro quando Operandos


&& Ambos o per and os são ver da de iros . 2
|| Q ua lqu er um dos o pera ndos é ver dad eir o . 2
^ U m, e ap en as u m, dos o per and os é verd ade ir o . 2
! I n v er te o va lo r l óg ic o d o op era ndo . 1

T AB E L A V E R D AD E D O O P E R AD O R L Ó G I C O (&&)

Primeiro Operando Operador Segundo Operando Resultado


Verdadeiro && Verdadeiro Verdadeiro
Verdadeiro && Falso Falso
Falso && Falso Falso
Falso && Verdadeiro Falso

T AB E L A V E R D AD E D O O P E R AD O R L Ó G I C O (||)

Primeiro Operando Operador Segundo Operando Resultado


Verdadeiro || Verdadeiro Verdadeiro
Verdadeiro || Falso Verdadeiro
Falso || Falso Falso
Falso || Verdadeiro Verdadeiro

T AB E L A V E R D AD E D O O P E R AD O R L Ó G I C O (^)

Primeiro Operando Operador Segundo Operando Resultado


Verdadeiro ^ Verdadeiro Falso
Verdadeiro ^ Falso Verdadeiro
Falso ^ Falso Falso
Falso ^ Verdadeiro Verdadeiro

15
T AB E L A V E R D AD E D O O P E R AD O R L Ó G I C O (!)

Operador Operando Resultado


! Verdadeiro Falso
! Falso Verdadeiro

Exemplos:
a) Falso && Verdadeiro // Falso
b) Verdadeiro || Falso // Verdadeiro
c) Verdadeiro ^ Verdadeiro // Falso
d) ! Falso // Verdadeiro
e) 2 < 9 && 7 < 3 //Falso
f) 7 = 3 || 8 – 9 = -1 // Verdadeiro
g) 6!= 7 ^ 9 <= 8 // Falso
h) ! ( 5 > 3) // Falso

E STRUTURAS DE C ONTROLE
A s es tr u turas de c o n tr o le s ão u t i li z ad as pa r a dec id ir o f l u xo do a lg or i tmo .

E STRUTURA C ONDICIONAL IF
U tiliza da pa ra d ecidir se e xecu ta um o u ma is co ma ndos a pa rtir d e u ma con diç ão
// Se a condição for verdadeira executa ComandoÚnico
if (condição for verdadeira)
ComandoÚnico;
// Se a condição for verdadeira executa Comando1, depois Comando2, e por último, comando3.
if (condição for verdadeira) {
Comando1;
Comando2;
Comando3;
}
// Se a condição for verdadeira executa Comando1, Senão executará Comando2;

if (condição for verdadeira)


Comando1;
else
Comando2;
// Se a condição for verdadeira executa Comando1, depois Comando2, Senão Executa Comandos
3,4,5.
if (condição for verdadeira) {
Comando1;
Comando2;
}
else
{
Comando3;
Comando4;
Comando5;
}

16
Exemplos:
if (7 > 6) {
System.out.println(“Escreva “7 é maior do que 6”);
}

if (1 == 8) {
System.out.println(“Escreva “Isto não será exibido”;
System.out.println(“Escreva “Porque 1 é diferente de 8”;
}
else
{
System.out.println(“Escreva “1 não é igual a 8”);
}

E STRUTURA DE SELEÇÃO SWITCH


A es tru tura switc h se lec io na a tra vés de uma var iá vel a o pçã o e xa ta corres pon den te ,
como s e fosse um menu.
Só pod emos us ar o sw itch co m va riá ve is do tip o “sh or t” , “ in t” , ou “c har ”.
A i ns tr uç ão “ b r eak ” é n ec es s á r i a p ar a que s a ia i med ia ta me n te d o s w i tc h .
// De acordo c om “ v” se lec io na um c omand o p ara e xecu tar .

int v;
switch(v) {
case 1: comando1; break;
case 2: comado2; break;
case 4: comando3; break;
default: comando5;
}

a)
public class TestaSwitch {
public static void main(String[] args) {
int v;
v = 2;
switch(v) {
case 1: System.out.println(" um" ); break;
case 2: System.out.println(" dois" ); break;
case 3: System.out.println(" três" ); break
default: System.out.println(" nenhum " );
}
}
}

17
E STRUTURAS DE R EPETIÇÃO
ESTRUTURA WHILE
En qua n to a co nd ição fo r verd ade ir a rep e te o laço .
O t es te é exec u tad o no in íc io .
while (condição for verdadeira)
Comando;

while (condição for verdadeira) {


Comando1;
Comando2;
Comando3
}

ESTRUTURA DO
En qua n to a co nd ição fo r verd ade ir a rep e te o laço . O tes te é e xecu tado no fin al.
do {
Comando1;
Comando2
Comando3
Comando4;
while (condição ser verdadeira); // Repete enquanto a condicão for verdadeira.

ESTRUTURA DE REPETIÇÃO FOR


A es tru tura fo r rep e te uma quan tid ade pré -de termina da d e vezes es pec ificad a pe la
co nd ição :

Exemplos:

a)
for (inicialização;condicão;incremento)
ComandoÚnico;

b)
for (inicialização;condicão;incremento) {
Comando1;
Comando2;
Comando3;
}

c)
int x;
for (x=1;x<=10;x++)
System.out.println(x);

d)
int x;
for (x=0;x<=60;x++) {
System.out.println(“Valor de x:”);
System.out.println(x);
}

18
A R R AY S
A r r a ys s ã o o b je tos qu e a r maz en am d i ver s as v ar iá v eis de um mes mo t i po . O s ar r a ys
s ã o r e f er enc ia dos p or u m , o u ma is , ín dic es .
E s tes ín dic es , en tre c o lch e tes , in dic am a pos içã o de c a da e le me n to .
O prime ir o ín dic e de um arr a y s empre c omeça c om ze ro ;
De vemos ins tanc iá- lo co m o se u ta man ho an tes da u tilizaçã o

Exemplos de utilização de arrays:

a)
public class b {
public static void main(String[] args) {
int x;
int v[]; // declara o vetor
v = new int[3]; // cria o objeto
v[0] = 18; // atribui valores
v[1] = 03;
v[2] = 80;
for (x=0;x<3;x++)
System.out.println(v[x]);
}
}

b)
public class b {
public static void main(String[] args) {
int x,y;
int m[][];
m = new int[3][2];
m[0][0] = 7;
m[0][1] = 8;
m[1][0] = 3;
m[1][1] = 6;
m[2][0] = 10;
m[2][1] = 12;
for (x=0;x<3;x++) {
for (y=0;y<2;y++) {
System.out.println(m[x][y]);
}
}
}
}

19
P ROGRAMAÇÃO O RIENTADA A O BJETO
C LASSES
C lasses em J a va sã o cr ia das d a se gu in te fo rma :
class NomeDaClasse {
// aqui ficam os atributos
// e os métodos
}

Exemplo:
class NomeDaClasse {
public class Teste {
// atributos
private int codigo;
private String nome;

// métodos
public void setCodigo(int codigo) {
this.codigo = codigo;
}
public int getCodigo() {
return codigo;
}

public void setNome(String nome) {


this.nome = nome;
}
public String getNome() {
return this.nome;
}
public NomeDaClasse() { // método construtor da classe
this.codigo = 0;
this.nome = "";
}
public NomeDaClasse(int v, String p) { // método construtor da classe
this.codigo = v; // inicializa valores
this.nome = p;
}

public static void main(String[] args) {


Teste n = new Teste(1,"Jorge");
System.out.println(n.codigo);
System.out.println(n.nome);je
n.setCodigo(12);
n.setNome("RF");
System.out.println(n.codigo);
System.out.println(n.nome);
}
}

20
M ÉTODOS C ONSTRUTORES
Os mé tod os cons tr u tor es de uma classe serve m par a qu e possa mos in icializa rmos u m
o bj e to .
Os mé to dos co ns trutor es de u ma c lasse tê m a mesma estru tura d e u m mé todo
c o mu m , mas n ão p os s u in do t ipo d e r e t or no .

Exemplos:
public class Pessoa {
Pessoa { // método construtor da classe Pessoa
x = 1; // rotinas de inicialização
nome = “teste”;
}
int x;
String nome;
}

O BJETOS
O bj e tos s ão ins t anc ias d e um a c l as s e .
Par a qu e p ossa mos tra ba lh ar co m es tes, faz-s e n ecess ár io u tiliz armos o co ma ndo
“ new” .

Exemplos:
a) Pessoa p; // declara o objeto p do tipo classe Pessoa
p = new Pessoa();
b) Pessoa p = new Pessoa(); // Declaração e instanciação na mesma linha.

M ODIFICADORES
Na ling ua ge m Ja va e xis te m d i versos mo difica dor es .
Modificador es de acesso:

Modificadores Restrições
public sem resstrições
private restringe o uso a somente dentro da classe
protected dentro da classe e classes filhas
padrão dentro do pacote
O u tros Mod i f ic ad or es :

Modificadores Significado
final não poderá ser modificado
static pertencente a classe
abstract abstrato, não pode ser instanciado

M ÉTODOS
De fin em as o per ações ( mens agens ) qu e pod em s er e xec u tad as em um ob je to .
Sã o dec lara dos d en tro da c lasse que os co n té m.
D e v e s e mpr e c on t er um t ip o d e r e t or n o .
Par a re torna r um valor, us amos o co ma ndo “r eturn ”.

21
Q uan do n ão que remos re torn ar u m va lor , utiliza mos vo id c omo tip o de re torn o .

Exemplo:
class TestaMetodo {
int calculaDobro(int n) { // Retorna um inteiro contendo o dobro
return n+n;
}
void exibeMensagem(String n) { // Não há nada a retornar, usamos void
System.out.println("Ola, " + n);
}
public static void main(String[] args) {
TestaMetodo n = new TestaMetodo();
System.out.println(n.calculaDobro(10));
n.exibeMensagem("Teste" );
}
}

H ERANÇA
He ranç a é u m mec an ismo da q ua l a c lasse filh a her da os es tados e co mpo rtamen tos
da classe pai.
Par a u tiliza rmos he ranç a e m Java faz-se nec essár io a u tilizaç ão da ins truçã o e xtends
se gu ida do n ome da classe ances tra l .

Exemplo:
public class Inicio {
public static void main(String args) {
}
}
class Pessoa {
int codigo;
char sexo;
String nome;
void cadastrar() {
// rotina para cadastrar uma pessoa
}

}
class PessoaFisica extends Pessoa { // herda Atributos e métodos de Pessoa
String cpf;
String rg;
String ufRg;
}

class PessoaJuridica extends Pessoa {


String cnpj;
String razaoSocial;
}

22
C LASSES ABSTRATAS
U ma c las s e abs tr a ta n ão pod e s e r i ns tanci ad a , p ois es t a c o n tém m é tod os a bs tr a t os ,
o u se ja , se m imp lemen tação . Nã o pode mos u tiliza r c lass es a bstra tas d ire tamen te .
De vemos u tiliz ar uma classe filha her dan do des ta e impleme n tan do tod os os seus
mé to dos abs tr a tos .

Exemplo:
abstract class Pessoa {
String nome;
abstract void Cadastrar();
public int excluir(){
// rotina p/ excluir
}
}
class PessoaFisica extends Pessoa {
String cpf;
void cadastrar() {
// implementando o método
// abstrato da classe pai
}
}

I NTERFACE
I n t er face é u ma es t r u tu r a q ue r ep r ese n ta um a c las s e t o t al me n te a bs tr a t a em J a va .
Nã o tê m a tr ib u tos d e d ados , s omen te c ons ta n tes es tá ticas .
T od os s eus m é tod os s ã o abs t r a tos .
Par a u tiliza rmos as in ter fac es de vemos usa r a c láusu la imp l eme n ts , não es quec endo
d e imp le me n tar to dos os s eus mé todos abstra tos .
interface Veiculo {
public static final int x = 5;
public abstract void andar();
public abstract void parar();
}
public class Carro implements Veiculo {
String modelo;
public void andar() {
// implementando o método andar ()
}
}
public void parar() {
// implementando o método parar ()
}
}

23
P OLIMORFISMO
No po limorfismo, um o bje to p ode s e compo rtar d e vár ias fo rmas d epe nden do d e sua
ins ta nciação . Pod emos reescr e ve r os mé tod os h erd ados da classe pa i de ta l forma qu e
d epe nde ndo do o bje to cr ia do , o mé to do re fe ren te a c lass e des te o bje to ser á e xec u tad o .
public class Inicio {
public static void main(String[] args) {
Pessoa p = new Pessoa();
p.cadastrar();
p.cadastrar(6);
PessoaFisica pf = new PessoaFisica();
pf.cadastrar();
pf.cadastrar(8);
}
}
class Pessoa {
int codigo;
String Nome;
String Endereco;
void cadastrar() {
System.out.println("cadastrar() da classe Pessoa! ");
}
void cadastrar(int c) {
System.out.println("Cadastrar() codigo "+ c + " da classe Pessoa!");
}
}
class PessoaFisica extends Pessoa {
void cadastrar() {
System.out.println("Método cadastrar() da classe PessoaFisica!");
}
}

T RATAMENTO DE E XCEÇÕES (E XCEPTIONS )


O t r a ta mento de er r os é nec es s ár io par a pod erm os g ar a n ti r u m mín i mo d e s e gur ança
n a e xecuçã o de u m s is te ma de s o f tw ar e . O J a v a usa e xc eç ões pa r a man ip ul ar er r os e
o u tr os e ven t os qu e po de m c or r om per a e xecuç ão n or m a l do f lu xo de u m a pl ic a ti v o .
Exceç ões p ode m ocorr er en quan to ten ta mos abr ir um arq uivo q ue já nã o es tá ma is
d isp on íve l , uma divisã o por zero , o u u ma co n vers ão in vá lida . Pa ra nos auxilia r , o Java
c o n ta c o m as es tru tu r as tr y - c a tch e fi na ll y .
try {
// código que pode
// ocorrer um erro
}
catch(ClasseErro obj) {
// se ocorrer um erro do tipo ClasseErro
// o código que está aqui deve ser executado
}
catch(ClasseOutroErro obj){
// Se ocorrer um erro do tipo ClasseOutroErro
// o código que está aqui deve ser executado
}
finally{
// Código que sempre será executado.
}

24
Principais exceções Significado
Trowable Superclasse de todas as exceções
Exception Exceções em geral
Error Erro grava
RunTimeException Erros em tempo de exceção
NullPointerException Exceção de ponteiro nulo
ArithmeticException Exceções aritméticas
IndexOutOfBoundsException Índice da String ou array inválido
ArrayStoreException Atribuição incompatível com o array

Exemplo
try {
x = x /y;
catch()

E X C E Ç Õ E S V E R I F I C AD AS
Po demos u tiliz ar a c láus ula th rows para in d ica r q ue u m mé todo p ode lanç ar uma
e xc eção do tipo espec ificad o . Ca be ao pr ogra ma dor tra tar corr etamen te a e xceç ão o u
p rop agá- la.

Exemplo:
a)
void metodoTeste() throws IOException {
// este código pode gerar um exceção do tipo IOException
}
b)
void maisTeste() throws IOException {

if (ErroArquivo()) {
throw new IOException(); // Lança a exceção IOException
}

E NTRADA E SAÍDA
O pr inc ipa l p ac o t e r es p onsá v el p el a m an ipu laç ão de e n tr a da e s a í da do J a v a é o
ja va .io . Lá e s tão con tid as d i ve rsas c lasses pa ra q ue possamos man ipu la r ar qu ivo s
b in ár ios e a rqu ivos de te xto (car actere )
As c lasses q ue s ão ch amadas de strea ms o per am em n íve l de b yte (b in ário) . E as
c lasses c ha ma das d e Re ade rs /Wr i ters ope ram em níve l d e car ac ter e .
E x i s t e a p os s ib il id ad e d e u t il izarm os fi l tr os d e for ma taçã o par a fac il i ta r a m an ip ul aç ã o
o u con versã o de dad os .
Gr an de p ar te dos mé todos des tas c lasses ger am e xc eções ve rifica das d o tipo
I O E xc e p ti on , s ig ni f ican do q ue d ev e mos tr a tá - l as ou pro pag á- las .

A RQUIVOS B INÁRIOS
Arq uivos b in ár ios são man ip ulados co mo se qüê ncias d e b ytes . Par a en tr ad a de d ados
u t i liz am os a c lass e Inp u t Str ea m e par a a s aí d a a O u tpu t S tr eam e s u as des c e nde n tes .

I NPUT S TREAM
Impu tStre am é a su perc lass e de to dos os s tr eams de en tr ad a

25
P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


close() Fecha a stream de entrada e libera recursos void close()
avaliable() Retorna o número de bytes que pode ser lido int avaliable()
skip() Pula e descarta x bytes do stream de entrada long skip(long x)
read() Lê o próximo byte da stream de entrada. int read()
Lê alguns bytes e armazena em um buffer
read() int read(byte[] b)
definido por b
Lê até n bytes e armazena em um array de
read() int read(byte[] b, int indice, int tam)
bytes

As pr inc ip ais subc lasses de In pu tStre am:

F ILE I NPUT S TREAM


C lasses par a leitura de arq uivos e m b ytes .

P R I N C I P AI S C O N S T R U T O R E S

FileInputStream(File arq ) throws FileNotFoundException

FileInputStream(String arq) throws FileNotFoundException

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


skip() Pula e descarta x bytes do stream de entrada long skip(int x)
read() Lê o próximo byte da stream de entrada. int read()
read() Lê até n bytes e e armazena em um array de bytes int read(byte[] b, int inicio, int tam)

O BJECT I NPUT S TREAM


C lasse para le itu ra de ob je tos se rializa dos.

P R I N C I P AI S C O N S T R U T O R E S

ObjectInputStream(InputStream entrada) throws IOException, StreamCorruptedException

Cr ia um O bjec tIn pu tStr eam

26
P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


skipBytes() Pula e descarta x bytes do stream de entrada long skip(int x)
read() Lê o próximo byte da stream de entrada. int read()
read() Lê até n bytes e e armazena em um array de bytes int read(byte[] b, int inicio, int tam)
readUTF() Lê uma String em UTF. String readUTF()

B UFFERED I NPUT S TREAM


Classe que implementa uma InputStream bufferizada

P R I N C I P AI S C O N S T R U T O R E S

BufferedInputStream(InputStream imp)

C r ia um Buf f er ed In pu tS t r e am
BufferedinputStream(inputStream imp, int tam)

C r ia um Buf f er ed In pu tS t r e am es pec i f ican do o t ama nh o n a var iá v el i n t “ ta m” .

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


skip() Pula e descarta x bytes do stream de entrada long skip(long x)
read() Lê o próximo byte da stream de entrada. int read()
read() Lê até n bytes e armazena em um array de bytes int read(byte[] b, int inicio, int tam)

D ATA I NPUT S TREAM


Imp lemen ta a leitura d e tod os os tipos pr imitivos do Ja va .

P R I N C I P AI S C O N S T R U T O R E S

DataInputStream(InputStream imp)

Cr ia um o bj e to D a ta Inp u tStrea m

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


skipBytes() Pula e descarta x bytes do stream de entrada int skip(int x)
read() Lê alguns bytes da stream de entrada e armazena em um array x int read(byte[] x)
readShort() Lê e retorna um short do InputStream short readShort()
readInt() Lê e retorna um int do InputStream int readInt()
readBoolean() Lê e retorna um boolean do InputStream boolean readBoolean()
readChar() Lê e retorna um char do InputStream char readChar()
readDouble() Lê e retorna um double do InputStream double readDouble()
readByte() Lê e retorna um byte do InputStream byte readByte()
readLong() Lê e retorna um long do InputStream long readLong()

27
O UTPUT S TREAM
O u tpu tStr ea m é a s upe rclasse de todos os s tre ams de sa ída

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


close() Fecha a stream de saída e libera recursos void close()
flush() Decarrega a saída esvaziando o buffer void flush()
write() Grava um byte na stream de saída. void write(byte[] b)
write() Grava n bytes na stream de saída. int write(byte[] b, int inicio, int quant)

F ILE O UTPUT S TREAM


C lasses par a gra vação de a rqu ivos em b ytes .

P R I N C I P AI S C O N S T R U T O R E S

FileOutputStream(File arq ) throws IOException

C r ia um F i le Ou tp u tS t r e am a part i r d e um a v a r i á ve l F ile
FileOutputStream(String arq) throws IOException

C r ia um F i le Ou tp u tS t r e am a part i r d e um a v a r i á ve l S tr in g
FileOutputStream(String arq, s boolean adiciona) throws IOException

C r ia u m F i le Ou tp u tS t r e am a p ar t i r de uma v a r i á ve l S tr in g c om a o pç ão d e a dic io nar


a o fi na l de u ma arqu i vo e xis t en te.

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


flush() Descarrega a saída esvaziando o buffer void flush()
write() Grava um int na stream de saída. void write(int b)
write() Grava um byte na stream de saída. void write(byte[] b)
write() Grava n bytes na stream de saída. int write(byte[] b, int inicio, int tam)

28
O BJECT O UTPUT S TREAM
C lasse para gra vação o bje tos ser ia l izad os .

P R I N C I P AI S C O N S T R U T O R E S

ObjectOutputStream(OutputStream saida) throws IOException, StreamCorruptedException

C r ia Ob jec tO u tpu t S tr ea m a p ar t ir d e um Ou tp u t Str ea m

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


flush() Descarrega a saída esvaziando o buffer void flush()
write() Grava um int na stream de saída. void write(int b)
write() Grava um byte na stream de saída. void write(byte[] b)
write() Grava n bytes na stream de saída. int write(byte[] b, int inicio, int tam)

B UFFERED O UTPUT S TREAM


C lasse que impleme n ta uma Ou tp u tStrea m b u ffer iza da

P R I N C I P AI S C O N S T R U T O R E S

BufferedOutputStream(OutputStream saida)

Cr ia um Buffer edO u tpu tStr eam a p ar tir de um Ou tp u tStr eam


BufferedOutputStream(OutputStream saida, int Tamanho)

C r ia u m Bu f f er e dOu tp u t Str ea m a p ar ti r d e um O u tpu tS t r e am , defi n ind o o ta ma nho d o


b u f fer

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


flush() Descarrega a saída esvaziando o buffer void flush()
write() Grava um int na stream de saída. void write(int b)
write() Grava n bytes na stream de saída. void write(byte[] b, int inicio, int tam)

D ATA O UTPUT S TREAM


Imp lemen ta a gr a vaçã o de todos os tip os p rimitivos d o Ja va .

P R I N C I P AI S C O N S T R U T O R E S

DataOutputStream(OutputStream saida)

Cr ia um Data Ou tp u tStr eam a pa rtir d e um Ou tpu tStre am

29
P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


writeShort() Grava um short no OutputStream void writeShort(short x)
writeInt() Grava um int no OutputStream void writeInt(int x)
writeBoolean() Grava um boolean no OutputStream void writeBoolean(Boolean x)
writeChar() Grava um char no OutputStream void writeChar(int x)
writeDouble() Grava um doublé no OutputStream void writeDouble(double x)
writeByte() Grava um byte no OutputStream void writeByte(byte x)
writeLong() Grava um long no OutputStream void writeLong(long x)

A RQUIVOS T EXTO
Arq uivos te xto são man ip ulados c omo se qüê ncia d e car acter es . Para a e n trada
u tiliz amos a c lass e Re ade r e suas desce nde n tes . Para a sa íd a usa mos a Wr iter .

R EADER
Su bclasse d e tod as as c lasses de en tr ada d e car ac teres ( rea ders) .

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


read() Lê um caractere de entrada Int read()
read() Lê uma seqüência de caracteres colocando no array a Int read(char[] c, int ind, int quant)
partir de ind
read() Lê um array de caracteres de entrada Int read(char[] c)
close() Fecha o reader void close()

B U F F E R E D R E AD E R
C lasse R ea der c om bu ffer , o timiza ndo o acess o aos da dos .

P R I N C I P AI S C O N S T R U T O R E S

BufferedReader (Reader r)

Cr ia um Buffer edR eade r a p ar tir d e u m Read er

30
BufferedReader (Reader r, int tamanho)

Cr ia um Buffer edR eade r a p ar tir d e u m Read er es pec ifican do o taman ho

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


read() Lê um caractere de entrada Int read()
Lê uma seqüência de caracteres colocando no array a
read() Int read(char[] c, int ind, int tam)
partir de ind
readLine() Lê uma linha de caracteres String readLine()
close() Fecha o reader void close()

L INE N UMBER R EADER


C lasse R ea der para co n tro le de linhas

P R I N C I P AI S C O N S T R U T O R E S

LineNumberReader (Reader r)

Cr ia um L in eNu mberRe ade r a pa rtir de u m Re ade r


LineNumberReader (Reader r, int tamanho)

Cr ia um L in eNu mberRe ade r a pa rtir de u m Re ade r , esp ecifica ndo o taman ho

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


read() Lê um caractere de entrada Int read()
Lê uma seqüência de caracteres colocando no
read() Int read(char[] c, int ind, int tam)
array a partir de ind
readLine() Lê uma linha de caracteres String readLine()
setLineNumber() Posiciona a leitura na linha x void setLineNumber(int x)
getLineNumber() Retorna a linha atual Int getLineNumber()
close() Fecha o reader void close()
Método Descrição Assinatura
read() Lê um caractere de entrada Int read()
read() Lê uma array de caracteres Int read(char[] c)
read() Lê uma seqüência de caracteres colocando no Int read(char[] c, int ind, int quant)
array a partir de ind
close() Fecha o reader void close()

I NPUT S TREAM R EADER


C lasse R ea der que ag e co mo co n vers ora e n tre s tr eam e car ac te res .

P R I N C I P AI S C O N S T R U T O R E S

InputStreamReader (InputStream imp)

Cr ia um Inp u tStrea mRe ade r a pa rtir de u m In pu tStre am


InputStreamReader (InputStream imp, int tamanho)

31
C r ia um I np u t Str ea mR e ade r a p ar t ir d e um I np u t S tr e am esp ec i f ic and o o t a ma nho do
b u f fer

P R I N C I P AI S M É T O D O S

FileReader

C lasse R ea der para le itu ra d e ar qu ivos d e ca rac ter es .

P R I N C I P AI S C O N S T R U T O R E S

FileReader (File arq)

Cr ia um F i leR ead er a p ar tir de um ob je to F ile


FileReader (String arq)

Cr ia um F i leR ead er a p ar tir de uma String

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


read() Lê um caractere de entrada Int read()
read() Lê uma array de caracteres Int read(char[] c)
Lê uma sequência de caracteres colocando no array a
read() Int read(char[] c, int ind, int tam)
partir de ind
close() Fecha o reader void close()

W RITER
Su bclasse d e tod as as c lasses de s a ída de ca rac ter es (wr i te rs) .

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


write() Grava um caractere na saída void write(int c)
write() Grava um array de caracteres na saída void write(char[] c)
write() Grava uma seqüência de caracteres no array a partir de ind void write(char[] c, int ind, int tam)
flush() Descarrega a saída esvaziando o buffer void flush()
close() Fecha o writer void close()

32
B UFFERED W RITER
C lasse R ea der c om bu ffer , o timiza ndo o acess o aos da dos .

P R I N C I P AI S C O N S T R U T O R E S

BufferedWriter(Writer w)

Cr ia um o bje to Buffere dWr i ter a p ar tir de um W riter


BufferedWriter(Writer w, int tam)

Cr ia um ob je to Bu ffe redWr i te r a p ar tir de um Wr ite r, esp ecifican do o ta ma nho do


b u f fer

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


write() Grava um caractere na saída void write(int c)
write() Grava um array de caracteres na saída void write(char[] c)
Grava uma seqüência de caracteres no array
write() void write(char[] c, int ind, int tam)
a partir de ind
newLine() Adiciona uma nova linha void newLine()
flush() Descarrega a saída esvaziando o buffer void flush()
close() Fecha o writer void close()

Método Descrição Assinatura


write() Grava um caractere na saída void write(int c)
write() Grava um array de caracteres na saída void write(char[] c)
write() Grava uma String no array a partir de ind void write(String c, int ind, int tam)
flush() Descarrega a saída esvaziando o buffer void flush()
close() Fecha o writer void close()

O UTPUT S TREAM W RITER


C lasse W riter qu e age c omo c on versor a en tr e s tre am e car ac te res .

P R I N C I P AI S C O N S T R U T O R E S

OutputStreamWriter (OutputStream saida)

C r ia um O ut p u tS t r ea mW r i ter a par t ir d e um O u tpu t S tr ea m

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


write() Grava um caractere na saída void write(int c)
write() Grava um array de caracteres na saída void write(char[] c)
write() Grava uma String no array a partir de ind void write(String c, int ind, int tam)
flush() Descarrega a saída esvaziando o buffer void flush()
close() Fecha o writer void close()

33
F ILE W RITER
C lasse espec ífica para a ma n ipulaçã o de arq uivos de ca rac ter es

P R I N C I P AI S C O N S T R U T O R E S

FileWriter(File arq)

Cr ia um F i leWr iter a pa rtir de u m o bje to F i le


FileWriter(String arq)

C r ia um F i leW r i t er a pa r t ir de u ma S tr in g

P RINT W RITER
C lasse Writer esp ecífica par a g ra var ca rac ter es for ma tados d e acor do co m a
p la t a for ma e m e x ecuçã o .

P R I N C I P AI S C O N S T R U T O R E S

PrintWriter(OutputStream saida, boolean af)

C r ia um Pr in tWr i te r a p ar t ir de um Ou tp u t S tr eam , espec i fic and o s e dese ja o a u to f lus h .


PrintWriter(Writer saida, boolean af)

Cr ia um Pr in tWr i te r a p ar t ir de um W ri t er , esp ecifica ndo s e des eja o au to flush .

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


print() Grava um boolean void println(boolean s)
print() Grava um int void println(int s)
println() Grava um double void println(double s)
println() Grava uma String e um final de linha void println(String s)
write() Grava um caractere na saída void write(int c)
write() Grava um array de caracteres na saída void write(char[] c)
write() Grava uma String no array a partir de ind void write(String c, int ind, int tam)
write() Grava um caractere na saída void write(int c)
write() Grava um array de caracteres na saída void write(char[] c)

C LASSE DE E NTRADA E S AÍDA


R ANDOM A CCESS F ILE
P R I N C I P AI S C O N S T R U T O R E S

RandomAccessFile(String arq, String modo) throws IOException

C r ia u m o bj e to d o t ipo R a ndo mAc c es s Fi le a s s oc ia ndo - o a a r q , s e ndo o mo do de f in ido


c o mo “ r ” s o me n te le i tu r a e “ r w ” le i tu r a e gra v ação .

34
P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


read() Lê um byte do arquivo int read()
read() Lê um array de bytes de um arquivo int read(byte[] x)
read() Lê x bytes colocando em um array a partir de ind int read(byte[] x, int ind, int quant)
readLine() Lê uma linha de caracteres do arquivo String readLine()
skipBytes() Descarta x bytes da entrada void skipBytes(long x)
seek() Posiciona o cursor no arquivo na posição x seek(long x)
length() Retorna o tamanho do arquivo long length()
write() Escreve um array de bytes no arquivo void write(byte[] dados)
close() Fecha o arquivo void close
readBoolean() Lê um boolean do arquivo boolean readBoolean()
readInt() Lê um int do arquivo int readInt()
ReadLong() Lê um long do arquivo long readLong()
readDouble() Lê um double do arquivo double readDouble()
ReadChar() Lê um char do arquivo char readChar()
readByte() Lê um byte do arquivo byte readByte()
ReadFloat() Lê um float do arquivo float readFloat()
WriteBoolean() Grava um boolean no arquivo void writeBoolean(boolean x)
writeInt() Grava um int no arquivo void writeInt(int x)
WriteLong() Grava um long no arquivo void writeLong(long x)
writeDouble() Grava um double no arquivo void writeDouble(double x)
WriteChar() Grava um char no arquivo void writeChar(char x)
writeByte() Grava um byte no arquivo void writeByte(byte x)
WriteFloat() Grava um float no arquivo void writeFloat(byte x)

Exemplo 1 – Utilizando FileInputStream e FileOutputStream para copiar arquivos.


import java.io.*;
public class TesteStream {
public static void main(String[] args) throws IOException {
FileInputStream entrada = null;
FileOutputStream saida = null;
try {
entrada = new FileInputStream("dados.txt");
saida = new FileOutputStream("resultado.txt");
int c;
while ((c = entrada.read()) != -1) {

saida.write(c);
}
} finally {
if (entrada != null) {
entrada.close();
}
if (saida != null) {
saida.close();
}
}
}
}

35
Exemplo 2 – Utilizando FileReader e FileWriter para copiar arquivos
import java.io.*;
public class TesteReaderWriter {
public static void main(String[] args) throws IOException {
FileReader entrada = null;
FileWriter saida = null;
try {
entrada = new FileReader("Dados.txt");
saida = new FileWriter("Resultado.txt");
int c;
while ((c = entrada.read()) != -1) {
saida.write(c);
}
} finally {
if (entrada != null) {
entrada.close();
}
if (saida != null) {
saida.close();
}
}
}
}

I NTERFACE G RÁFICA
S WING
O JFC /Sw in g é o p aco te padr ão de cons truç ão de in te rfaces grá fica e m Ja va . Ele é a
e xtensã o do an tigo paco te aw t, utiliza do n as vers ões a n ter ior es .
Par a q ue poss amos utiliza r o swing é n ecessá rio impo rtar mos as c lasses dos pac otes
java x.sw ing.

T AB E L A 1.1 C L AS S E S AWT E S W I N G

36
C OMPONENTES V ISUAIS
Ver emos ag ora os pr inc ip ais c ompo nen tes Sw ing :

JC OMPONENT
JCo mp onen t é a su perc lass e de to dos os co mp one n tes visua is .

P R I N C I P AI S M É T O D O S

Comando Descrição Assinatura


setBackground() Muda a cor de fundo do componente void setBackground(Color cor)
setEnabled() habilita ou desabilita um componente void setEnabled(boolean habilitado)
setFont() Muda a fonte do componente void setFont(Font fonte)
setVisible() Deixa visível ou invisível um componente void setVisible(boolean visivel)
setToolTipText() Adiciona dica a um componente void setToolTipText(String dica)

JF RAME
J F r am e é o c om po nen t e q ue im p lem en ta u ma j ane la . E le é c om pos t o po r u ma ba r r a
d e menus (o pciona l) , e um co n ten tPane ( áre a ú til da ja ne la)

P R I N C I P AI S C O N S T R U T O R E S

JFrame();

JFrame(String Titulo);

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


setDefaultCloseOperation() Configura a opção de fechar setDefaultCloseOperation(int modo)
getContentPane() Retorna o painel de conteúdo Int getContentPane()
setLayout() Muda o Layout do componente void Layout(LayoutManager lm)
setVisible() Configura a visibilidade do componente void setVisible(v boolean)
setSize() Altera o tamanho do componente void setSize( int x, int y)
setTitle() Muda o título do componente void setTitle(String Titulo)

37
Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJFrame {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame();
tela.setTitle("Janela");
tela.setSize(800,600);
tela.setVisible(true);
tela.getContentPane().setBackground(Color.RED);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

JP ANEL
A classe JPa in el imple me n ta um con tainer , ou se ja , co mp one n te grá fico qu e forn ece
o esp aço pa ra c olocarmos ou tros c ompon entes e m se u in ter ior . Uma vez cr ia do e le deve
se r ad ic iona do a um ob je to JFr ame o u s i milar .

P R I N C I P AI S C O N S T R U T O R E S

JPanel()

JPanel(LayoutManager lm)

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


setVisible() Configura a visibilidade do componente void setVisible(v boolean)
setSize() Altera o tamanho do componente void setSize( int x, int y)
setBounds() Altera posição e a altura e lagura do componente Void setBounds(int x, int y, int a int l)
setlocation() Altera a localização do componente void setLocation(int x, int y)
setBorder() Configura a borda do componente

38
Exemplo de Código:
import javax.swing.*;
import java.awt.*;
public class TesteJPanel {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JPanel");
tela.setSize(800,600);
tela.setVisible(true);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JPanel painel = new JPanel();
painel.setBorder(BorderFactory.createEtchedBorder());
tela.getContentPane().add(painel);
painel.setBounds(250,160,240,240);
}
}

JL ABEL
É o c o mp on en te Sw ing que s er ve par a e x ibi r m os u m te x t o , um a im ag em o u a mb os .
O te xto p od e con ter có digos H TML e a imag em s upor ta os for ma tos jp eg , g i f o u pn g .

P R I N C I P AI S C O N S T R U T O R E S

JLabel()

JLabel(String Texto)

JLabel( Icon Imagem)

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


getText() Retorna o texto do rótulo String getText()
setText() Modifica o texto do rótulo void setText(String Texto)
setIcon() Modifica o ícone do rótulo void setIcon(icon icone)
setDisabledIcon() Modifica o ícone do rótulo quando este estiver void setDisabledIcon(icon icone)
desabilitado

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJLabel {
public static void main(String[] args) {
JFrame tela = new JFrame("Teste JLabel");
JLabel rotulo = new JLabel();
JLabel rotuloAux = new JLabel("SENAC");
tela.setLayout(null);
tela.getContentPane().setBackground(Color.WHITE);
tela.add(rotulo);
tela.add(rotuloAux);
tela.setSize(800,600);
tela.setVisible(true);

39
tela.add(rotulo);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
rotulo.setSize(200,150);
rotulo.setBackground(Color.RED);
rotulo.setForeground(Color.WHITE);
rotuloAux.setSize(150,50);
Icon icone = new ImageIcon("1.jpg");
rotulo.setIcon(icone);
rotuloAux.setText("Teste");
rotulo.setLocation(250,180);
rotuloAux.setLocation(10,100);
}
}

JB UTTON
O Jb u ttom ass i m co mo o Jlab el co mp or ta e e xib ição de te xto e imag em. O d i fe renc ia l
é que es te é u tilizad o q uan do d eve mos to ma r a lgu ma aç ão a tra vés de u m co ma ndo .

P R I N C I P AI S C O N S T R U T O R E S

JButton()

JButton(String Texto)

JButton(Icon Imagem)

P R I N C I P AI S M É T O D O S

Comando Descrição Assinatura


getText Retorna o texto do botão String getText()
setText Modifica o texto do botão Void setText(String Texto)
setIcon Modifica o ícone do botão void setIcon(icon icone)
setDisabledIcon Modifica o ícone do botão quando este estiver void setDisabledIcon(icon icone)
desabilitado

40
Exemplo de código
import javax.swing.*;
import java.awt.*;
public class TesteJButton {
public static void main(String[] args) {
JFrame tela;
JButton botao;
JButton botaoAux;
tela = new JFrame();
botao = new JButton();
botaoAux = new JButton();
tela.setLayout(null);
tela.setTitle("Este \u00E9 o T\u00EDtulo da Janela");
tela.getContentPane().setBackground(Color.GREEN);
tela.add(botao);
tela.add(botaoAux);
tela.setSize(800,600);
tela.setVisible(true);
tela.getContentPane().add(botao);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.setSize(200,150);
botao.setBackground(Color.RED);
botao.setForeground(Color.WHITE);
botaoAux.setSize(150,50);
botaoAux.setToolTipText("Este \u00E9 um bot\u00E3o criado com o
Java!!");
botao.setToolTipText("Este \u00E9 um bot\u00E3o colorado!!");
botao.setText("Bot\u00e3o Vermelho");
Icon icone = new ImageIcon("1.png");
botao.setIcon(icone);
botaoAux.setText("Bot\u00e3o de Teste");
botao.setLocation(250,180);
botaoAux.setLocation(10,100);
}

JT OGGLE B UTTON
C lasse que re pres en ta um b o tã o d e do is esta dos : pr ess ion ado ou n ão p ress io nad o .

P R I N C I P AI S C O N S T R U T O R E S

JToggleButton()

JToggleButton(String Texto)

JToggleButton(Icon Imagem)

41
JToggleButton(String Texto, Icon Imagem)

P R I N C I P AI S M É T O D O S

Comando Descrição Assinatura


getText() Retorna o texto do botão String getText()
setText() Modifica o texto do botão void setText(String Texto)
setIcon() Modifica o ícone do botão void setIcon(icon icone)
isSelected() Retorna se o botão está pressionado void isSelected()

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJToggleButton {
public static void main(String[] args) {
JFrame tela = new JFrame("Teste JToggleButton");
JToggleButton botao = new JToggleButton();
tela.setLayout(null);
tela.getContentPane().setBackground(Color.WHITE);
tela.add(botao);
tela.setSize(800,600);
tela.setVisible(true);
tela.add(botao);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.setSize(200,150);
botao.setBackground(Color.RED);
botao.setForeground(Color.WHITE);
botao.setLocation(250,180);
}
}

JC HECK B OX
É o compon en te q ue e xib e uma ca ixa e u m ró tulo que u tiliza mos pa ra se lecion ar uma
o pção en tre do is es tad os poss íve is .

P R I N C I P AI S C O N S T R U T O R E S

JCheckBox()

JCheckBox (String Texto)

JCheckBox (Icon Imagem)

JCheckBox (Icon Imagem, boolean isSelected)

42
P R I N C I P AI S M É T O D O S

Comando Descrição Assinatura


setSelected() Configura o botão como selecionado ou não selecionado Boolean setSelected()
setText() Modifica o texto do botão void setText(String Texto)
setIcon() Modifica o ícone do botão void setIcon(icon icone)
isSelected() Retorna se o botão está pressionado void isSelected()

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJCheckBox {
public static void main(String[] args) {
JFrame tela = new JFrame("Teste JCheckBox");
JCheckBox botao = new JCheckBox("Teclado");
JCheckBox botao2 = new JCheckBox("Mouse");
tela.setLayout(null);
tela.getContentPane().setBackground(Color.WHITE);
tela.getContentPane().add(botao);
tela.getContentPane().add(botao2);
tela.setSize(800,600);
tela.setVisible(true);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.setBounds(20,40,100,30);
botao2.setBounds(20,140,100,30);
botao2.setSelected(true);
botao.setBackground(Color.RED);
botao.setForeground(Color.WHITE);
botao2.setBackground(Color.BLUE);
botao2.setForeground(Color.YELLOW);
}
}

JR ADIO B UTTON
E s ta é a s u bcl as s e d e J Tog gle B u tt on que t a mbé m i m p lem enta u m b o tã o d e d ois
es tados .
Es te co mpo nen te de ve s er ass oc iad o a u m co mp one nte Bu ttonGr oup .
C o mp one n te qu e as s oc ia um c o nj un t o d e J R a di o Bu t tons par a s om en t e um b o tã o s er
s e lec io na do por v ez .

P R I N C I P AI S C O N S T R U T O R E S

JRadioButton()

JRadioButton (String Texto)

43
P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


setSelected() Configura o botão como selecionado boolean setSelected()
ou não selecionado
setText() Modifica o texto do botão void setText(String Texto)
setSelectedIcon() Modifica o ícone do botão void setSelectedIcon(icon icone)
selecionado
isSelected() Retorna se o botão está pressionado void isSelected()

Exemplo de Código:
import javax.swing.*;
import java.awt.*;
public class TesteJRadioButton {
public static void main(String[] args) {
JFrame tela = new JFrame("Teste JRadioButton");
JRadioButton botao = new JRadioButton("Teclado");
JRadioButton botao2 = new JRadioButton("Mouse");
ButtonGroup grupo = new ButtonGroup();
JPanel p = new JPanel();
tela.setLayout(null);
tela.getContentPane().setBackground(Color.WHITE);
grupo.add(botao);
grupo.add(botao2);
p.setBorder(BorderFactory.createEtchedBorder());
p.setBounds(250,160,240,240);
p.add(botao);
p.add(botao2);
tela.getContentPane().add(p);
tela.setSize(800,600);
tela.setVisible(true);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.setBackground(Color.RED);
botao.setForeground(Color.GREEN);
botao2.setBackground(Color.BLUE);
botao2.setForeground(Color.YELLOW);
}
}

JC OMBO B OX

C o mp one n te ed i tá ve l o u nã o qu e p er m i te s el ec ion ar i tens em u ma l is t a s us pe ns a

44
P R I N C I P AI S AS S I N AT U R AS :

JComboBox()

JComboBox(Object[] Itens)

P R I N C I P AI S M É T O D O S

Comando Descrição Assinatura


clearSelection Limpa a seleção da lista void clearSelection()
getSelectedIndex Retorna o índice do item selecionado int getSelectedIndex()
Add Adiciona um texto à lista void add(String Texto)
getSelectedItem Retorna o texto selecionado da lista String getSelectedItem()
getItem Retorna o texto do índice especificado String getItem(int indice)
getSelectedIndexes Retorna os índices dos itens selecionados int getSelectedIndexes()
getSelectedItems Retorna os textos selecionados da lista String getSelectedItems()

Exemplo prático:
import javax.swing.*;
import java.awt.*;
public class TesteJComboBox {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JComboBox");
tela.setSize(800,600);
tela.setVisible(true);
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JComboBox cb = new JComboBox();
tela.getContentPane().add(cb);
cb.setBounds(10,10,70,20);
cb.addItem("RS");
cb.addItem("SC");
cb.addItem("PR");
cb.setEditable(true);
}
}

JL IST
Co mp one n te que per mite se lec ion armos u m item ou ma is d e u ma lis ta

45
P R I N C I P AI S C O N S T R U T O R E S

JList()

JLIst(Object[] itens)

P R I N C I P AI S M É T O D O S

Comando Descrição Assinatura


clearSelection() Limpa a seleção da lista void clearSelection()
getSelectedIndex() Retorna o índice do item selecionado int getSelectedIndex()
setSelectionMode() Define se o modo de seleção da lista é void setSelectionMode(ini modo)
simples ou múltipla
getSelectedItem() Retorna o texto selecionado da lista String getSelectedItem()
getItem() Retorna o texto do índice especificado String getItem(int indice)
getSelectedIndexes() Retorna os índices dos itens selecionados int getSelectedIndexes()
getSelectedItems() Retorna os textos selecionados da lista String getSelectedItems()

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJList {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JList");
tela.setSize(800,600);
tela.setVisible(true);
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
String[] lista = {"RS","SC","PR","SP","RJ"};
JList ls = new JList(lista);
tela.getContentPane().add(ls);
ls.setBounds(10,10,30,70);
ls.setSelectionMode(ListSelectionModel.SINGLE_INTERVAL_SELECTION);
}
}

JT EXT F IELD
C a mp oTe x to de s o men t e um a li nh a

46
P R I N C I P AI S C O N S T R U T O R E S

JTextField()

JTextField(String Texto)

P R I N C I P AI S M É T O D O S

Métodos Descrição Assinatura


GetText Retorna o texto do campo String getText()
SetText Modifica o texto do campo void setText(String Texto)

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJTextField {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JTextField");
tela.setSize(800,600);
tela.setVisible(true);
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JTextField tf = new JTextField("Isto é um JTextField");
tela.getContentPane().add(tf);
tf.setBounds(10,10,150,20);
}
}

JO PTION P ANE

Es ta c lasse nos p ermite in tera gir com o usuá rio a tr a vés d e mensag ens . Es tas
mens age ns p ode s er do tip o Con firm, “ Inpu t” o u “Messag e”

P R I N C I P AI S C O N S T R U T O R E S

JOptionPane(Object Texto)

JOptionPane(Object Texto, int TipoDeMensagem)

JOptionPane(Object Texto, int TipoDeMensagem, int TipoDeOpcao)

JOptionPane(Object Texto, int TipoDeMensagem, int TipoDeOpcao,Icon icone)

47
Métodos Descrição Assinatura
static int showConfirmDialog(Component
showConfirmDialog() Exibe uma mensagem de questionamento pai, Object msg, String titulo, int
TipodeOpcao)
showInputDialog() Pergunta por uma entrada do usuário static int showinputDialog(Object msg)
Exibe uma mensagem de informação ao static int showConfirmDialog(Component
showMessageDialog()
usuário pai, Object msg, String titulo, int TipodeMsg)
static int showConfirmDialog(Component
ShowOptionDialog() Mensagem unificando as opções acima pai, Object msg, String titulo, int
TipodeOpcao, int TipodeMsg)

Tipos de Mensagens Descrição Símbolo

ERROR_MESSAGE Mensagens de Erro

INFORMATION_MESSAGE Mensagens informativas

WARNING_MESSAGE Mensagens de aviso

QUESTION_MESSAGE Mensagens Interrogativas

PLAIN_MESSAGE Mensagens sem o ícone

Tipos de Opções Descrição


YES_NO_OPTION Botões Sim Não
YES_NO_CANCEL_OPTION Botões Sim, Não e Cancelar
OK_CANCEL_OPTION Botões OK, Cancelar
DEFAULT_OPTION Botão OK

Tipos de Retorno Descrição


YES_OPTION O usuário retornou Sim
NO_OPTION O usuário retornou Não
CANCEL_OPTION O usuário retornou Cancelar
OK_OPTION O usuário retornou OK

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJOptionPane {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JOptionPane");
tela.setSize(800,600);
tela.setVisible(true);
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JOptionPane j = new JOptionPane();
j.showMessageDialog(tela,"Java Vive!!!","SENAC RS",
JOptionPane.WARNING_MESSAGE);
}
}

48
JT EXT A REA
Es te co mpo nen te nos p ermite e xib irmos te xto em mú ltip las linh as.

P R I N C I P AI S C O N S T R U T O R E S

JTextArea()

JTextArea(String texto)

JTextArea(String texto, int linhas, int colunas)

P R I N C I P AI S M É T O D O S

Métodos Descrição Assinatura


getText() Retorna o texto do campo String getText()
setText() Modifica o texto do campo void setText(String Texto)
append() Insere um texto no final void append (String texto)

Exemplo de Código:
import javax.swing.*;
import java.awt.*;
public class TesteJTextArea {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JTextArea");
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JTextArea ta = new JTextArea("texto um");
ta.setBounds(100,100,200,200);
tela.getContentPane().add(ta);
tela.setSize(800,600);
tela.setVisible(true);
ta.append(" teste");
}
}

49
JT ABBED P ANE

C o mp one n te q ue s er ve p ar a e x ib ir g ui as . O nde c a da gu ia d e vem os ad ic ion ar um


J Pa ne l .

P R I N C I P AI S C O N S T R U T O R E S
JTabbedPane()

JTabbedJPane(int direcao)

P R I N C I P AI S M É T O D O S

Métodos Descrição Assinatura


add() Adiciona um componente com um texto Component add(String texto,
Component componente)
remove() Remove um componente especificado int remove(int indice)
pelo indice
setIconAt() Altera um ícone void setIconAt(int indice, Icon icone)
setSelectedIndex() Configura a guia selecionada void setSelectedIndex(int indice)

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJTabbedPane {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame("Teste JTabbedPane");
tela.setLayout(null);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
JTabbedPane tp = new JTabbedPane(JTabbedPane.LEFT);
tp.setBounds(100,100,200,200);
tela.getContentPane().add(tp);
tp.add("A",new JPanel());
tp.add("B",new JPanel());
tp.add("C",new JPanel());
tela.setSize(800,600);
tela.setVisible(true);
}
}

50
M ENU B AR , J MENU E JM ENU I TEM

A c las s e J M en uBar é u ti l iz ad a, j un t am ente c om J M en u e J M en u It em , p ar a gera r


menus em Java.

P R I N C I P AI S C O N S T R U T O R E S

JMenuBar()

JMenuBar(String texto)

P R I N C I P AI S M É T O D O S

Métodos Descrição Assinatura


add() Adiciona um componente ao menu Component add(Component c)
remove() Remove um componente JMenuItem void remove(JMenuItem item)
Insert() Insere um JMenuitem em uma posição JMenuItem insert(JMenuItem m, int pos)

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJMenuBar {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame();
tela.setTitle("Teste JMenuBar");
JMenuBar barra = new JMenuBar();
JMenu menu1 = new JMenu("Cadastrar");
JMenu menu2 = new JMenu("Consultar");
JMenuItem item1 = new JMenuItem("Clientes");
JMenuItem item2 = new JMenuItem("Fornecedores");
JMenuItem item3 = new JMenuItem("Produtos");
JMenuItem item4 = new JMenuItem("Vendas");
menu1.add(item1);
menu1.add(item2);
menu1.add(item3);
menu2.add(item4);
barra.add(menu1);
barra.add(menu2);
tela.setJMenuBar(barra);

51
tela.setSize(800,600);
tela.setVisible(true);
tela.getContentPane().setBackground(Color.RED);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

JT ABLE

P R I N C I P AI S C O N S T R U T O R E S

JTable(int li, int co)

JTable(Object dados, Object colunas)

Métodos Descrição Assinatura


clearSelection() Limpa a seleção de todas colunas void clearSelection()
getSelectedColumn() Retorna a última coluna selecionada Int getSelectedColumn()
getSelectedRow() Retorna a última linha selecionada Int getSelectedRow()
getSelectedRows() Retorna as linhas selecionadas Int[] getSelectedRows()
getValueAt() Retorna o valor da célula indicada pela Object getValueAt(int linha, in coluna)
linha e coluna
setValueAt() Troca o valor da célula indicada pela Object setValueAt(Object valor, int linha,
linha e coluna int coluna)
setSelectionMode() Configura o modo de seleção da tabela void setSelectionMode(int modo)

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJTable {
public static void main(String[] args) {
JFrame tela = new JFrame("Teste JTable");
tela.getContentPane().setBackground(Color.WHITE);
String[] colunas = new String []{"Nome","Idade"};
String[][] dados = new String [][] {{"Humberto Moura","26"},{"",""}};
JTable tabela = new JTable(dados,colunas);
JScrollPane sp = new JScrollPane(tabela);
tela.getContentPane().add(sp);
tela.pack();
tela.setVisible(true);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}

52
JF ILE C HOOSER

JF ileC hoose r implemen ta uma ca ixa d e d iá lo g o p ara qu e o usuá rio possa se lec io nar
u m ar qu ivo loca l.

P R I N C I P AI S C O N S T R U T O R E S

JFileChooser()

P R I N C I P AI S M É T O D O S

Métodos Descrição Assinatura


showOpenDialog() Exibe a caixa de seleção de arquivo Component int showOpenDialog(Component
pai)

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteJFileChooser {
public static void main(String[] args) {
JFrame tela;
tela = new JFrame();
tela.setTitle("Teste JFileChooser");
tela.setSize(800,600);
tela.setVisible(true);
int ok;
JFileChooser sa = new JFileChooser();
TesteJFileChooser a = new TesteJFileChooser();
ok = sa.showOpenDialog(null);
if (ok == JFileChooser.APPROVE_OPTION) {
System.out.println("Arquivo: " + sa.getSelectedFile().getName());
}
tela.getContentPane().setBackground(Color.RED);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

53
JI N T E R N AL F R AM E
U til iza do em ap l icações de m ú l tip las ja ne las ( md i)

P R I N C I P AI S C O N S T R U T O R E S

JInternalFrame(String titulo, boolean redm, boolean fecha, boolean max, boolean min)

P R I N C I P AI S M É T O D O S

Métodos Descrição Assinatura


show() Exibe o JInternalFrame void show()
d is p ose() f ec ha o j in te r na l fr a me v o id dis pose ( )

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class Mdi {
public static void main(String[] args) {
new Teste();
}

}
class Teste extends JFrame{
JDesktopPane painel= new JDesktopPane();
JInternalFrame i1 = new JInternalFrame("Java",true,true,true,true);
JInternalFrame i2 = new JInternalFrame("Desktop",true,true,true,true);

Teste() {
setTitle("SENAC RS");
getContentPane().add(painel);
painel.add(i1);
painel.add(i2);
painel.setVisible(true);
i1.setSize(270,270);
i2.setSize(270,270);
i1.show();
i2.show();
setSize(800,600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
}

54
L AYOUT
G ERENCIADORES DE L AYOUT
O G ere ncia dor d e layo u t, é um ob je to q ue imp lemen ta a in ter fac e La you tMan ag er
d e ter mi nand o o m od o d e e x ib ição dos c o mp one n tes de n tr o de um c on ta i ner .
P ar a c on f ig urar mos o la yo u t de u m c on ta in er u t il iza mos o mé t odo s e t La y ou t( new
T i poL a you t()) . Se nd o T i p oL a you t s ub titu id o pe la c lass e de layo u t esc o lh id a . Se nã o
q uis ermos u tiliz ar n enh um passamos n ull co mo parâ me tr o a es te mé tod o .

F LOW L AYOUT
O FlowL a yo u t co loca os c ompone n tes e m um flu xo seq üenc ia l na ja ne la , da esqu erd a
p ara dire ita e d e c ima p ara ba ixo , como s e os c ompo nen tes foss em pa la vras sen do
esc ritas em um c ader no .

P R I N C I P AI S C O N S T R U T O R E S

FlowLayout()

FlowLayout(int alinhamento, x, y)

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class Inicio {
public static void main(String[] args) {
new Teste();
}

55
class Teste extends JFrame{
Teste() {
setTitle("SENAC RS");
JButton t1 = new JButton("Teste");
JButton t2 = new JButton("do");
JButton t3 = new JButton("layout");
JButton t4 = new JButton("Flow");
JButton t5 = new JButton("Layout");
getContentPane().add(t1);
getContentPane().add(t2);
getContentPane().add(t3);
getContentPane().add(t4);
getContentPane().add(t5);
setLayout(new FlowLayout());
setSize(800,600);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

}
}

G RID L AYOUT
O G r i dLa yo u t nos p er mi t e d is tr ib ui r os c om po nen t es e m l in has e c o lu nas, c o mo s e
foss e uma g rad e no co n ta ine r . A d is tr ibu ição é fe ita da es que rda pa ra d ire ita e d e cima
p ar a ba i xo .

P R I N C I P AI S C O N S T R U T O R E S

GridLayout()

GridLayout(int linhas, int colunas)

GridLayout(int linhas, int colunas, int horizontal, int vertical)

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteGridLayout {
public static void main(String[] args) {
JFrame tela;
JButton botao1 = new JButton("1");
JButton botao2 = new JButton("2");
JButton botao3 = new JButton("3");
JButton botao4 = new JButton("4");
JButton botao5 = new JButton("5");
JButton botao6 = new JButton("6");

56
tela = new JFrame();
tela.setTitle("Teste GridLayout");
tela.setLayout(new GridLayout(3,3));
tela.getContentPane().add(botao1);
tela.getContentPane().add(botao2);
tela.getContentPane().add(botao3);
tela.getContentPane().add(botao4);
tela.getContentPane().add(botao5);
tela.getContentPane().add(botao6);
tela.pack();
tela.setVisible(true);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

B ORDER L AYOUT
D i vi de o c o n ta ine r em c i nco r eg iõ es i ma gi ná r i as c ha ma das d e “ P AG E_ ST AR T” ( 1 ) ,
“ PAG E_ END” ( 2) “ L INE_ END” ( 3) “ L IN E_ START” (4) e “C EN TER ” ( 5) , se ndo q ue ape nas
u m co mpo ne te po der á oc upa r cad a re gião .

Exemplo de código:
import javax.swing.*;
import java.awt.*;
public class TesteBorderLayout {
public static void main(String[] args) {
JFrame tela;
JButton botao1 = new JButton("1");
JButton botao2 = new JButton("2");
JButton botao3 = new JButton("3");
JButton botao4 = new JButton("4");
JButton botao5 = new JButton("5");
tela = new JFrame();
tela.setTitle("Teste BorderLayout");
tela.setLayout(new BorderLayout());
tela.getContentPane().add(botao1,BorderLayout.PAGE_START);
tela.getContentPane().add(botao2,BorderLayout.PAGE_END);
tela.getContentPane().add(botao3,BorderLayout.LINE_END);
tela.getContentPane().add(botao4,BorderLayout.LINE_START);
tela.getContentPane().add(botao5,BorderLayout.CENTER);
tela.setVisible(true);
tela.pack();
tela.getContentPane().setBackground(Color.RED);
tela.setDefaultCloseOperation(WindowConstants.EXIT_ON_CLOSE);
}
}

57
E VENTOS
O tr a ta mento de e v en tos é fe i to atr a v és d e de le gaçã o de tr a ta mento .
Par a qu e poss amos tra ba lha r com de vemos impor ta r o p aco te ja va .aw t.e ve nt
Par a cad a tipo de e ven to e xis te uma in ter fac e “lis ten er” r esp onsá vel p or es te .
D e v em os , e n tão , s e lec io nar a in t er face c or r e t a p ar a c a da c omp one n te e e ve n to ,
impleme n ta ndo todos os s eus mé todos ou d eixand o-os vaz io s e n ão n ecessá rios .
Q uan to a o c omp on ente qu e q uer emos ma nipu la r os eve n tos , deve mos reg is tra r es ta
in te r face atra vés d o mé to do “a dd ” apr opr iad o .

A CTION E VENT
Sã o ma nipu la dor es de e ven to de ação
Interface Método
Ac tion Lis ten er Ac tion Pe r fo rme d( Ac tio n Even t)

Componentes Método Add


JButton AddActionListener()
JTextField (quando pressionado ENTER)
JList (clique duplo)
JMenuItem

Principais Métodos Descrição Assinatura


getActionCommand() Comando relacionado a ação String getActionCommand()

Exemplo de código:
import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
public class TesteActionEvent implements ActionListener {
public TesteActionEvent() {
JFrame tela;
JButton botao;
JButton botaoAux;
tela = new JFrame();
botao = new JButton();
tela.setLayout(null);
tela.setTitle("Teste ActionEvent");
tela.getContentPane().setBackground(Color.GREEN);
tela.add(botao);
tela.setSize(800,600);
tela.setVisible(true);
tela.getContentPane().add(botao);
tela.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
botao.setSize(200,150);
botao.setText("OK");
botao.setLocation(250,180);
botao.setActionCommand("ok");
botao.addActionListener(this);

58
}
public static void main(String[] args) {
new TesteActionEvent();
}
public void actionPerformed(ActionEvent ae) {
if ("ok".equals(ae.getActionCommand())) {
System.out.println("OK Pressionado!!!");
}
}
}

I TEM E VENT
Sã o ma nipu la dor es de e ven tos d e se leçã o d e itens

Interface Método
ItemListener ItemStateChanged(ItemEvent)

Componentes Método Add


JcheckBox AddItemListener()
List

Principais Métodos Descrição Assinatura


getItem() Retorna o Item Object getItem()
getItemSelectable() Retorna o controle ItemSelectable getItemSelectable()

T EXT E VENT
Sã o ma nipu la dor es de e ven tos d e te xto

Interface Método
TextListener textValueChanged(TextEvent)

Componentes Método Add


JTextArea AddTextListener()
JTextField

Principais Métodos Descrição Assinatura

F OCUS E VENT
Sã o ma nipu la dor es de e ven tos d e foco
Interface Método
FocusListener focusGained(FocusEvent)
FocusLost(FocusEvent)

59
Componentes Método Add
Todos os componentes AddFocusListener()
List

K EY E VENT
Sã o ma nipu la dor es de e ven tos d o tec lad o

Interface Métodos
KeyListener keyPressed(KeyEvent)
KeyReleased(KeyEvent)
KeyTyped(KeyEvent)

Componentes Método Add


Todos os componentes AddItemListener()

Principais Métodos Descrição Assinatura


getKeyChar() Retorna um caracter char getKeyChar()
getKeyCode() Retorna o código do caracter Int getKeyCode()

M OUSE E VENT
Sã o ma nipu la dor es de e ven to do mo use

Interface Método
MouseListener mouseClicked(MouseEvent)
mouseEntered(MouseEvent)
mouseExited(MouseEvent)
mousePressed(MouseEvent)
mouseReleased(MouseEvent)

C o m po ne nt es M ét o do A dd
Todos os componentes addMouseListener()
List

P r i nc i pa is M ét o do s D e sc r içã o A s s in at u ra
getX() Retorna a coordenada x do clique int getX()
getY() Retorna a coordenada y do clique int getY()

60
W INDOW E VENT
Sã o ma nipu la dor es de e ven tos d e jane la

Interface Método
WindowListener WindowActivated(WindowsEvent)
WindowClosed(WindowsEvent)
WindowClosing(WindowsEvent)
WindowDeactivated(WindowsEvent)
WindowDeIconfied(WindowsEvent)
WindowIconfied (WindowsEvent)
WindowOpened (WindowsEvent)

C o m po ne nt es M éto do A dd
JFrame AddWindowListener()

P r i nc i pa is M ét o do s D e sc r içã o A s s in at u ra
getWindow() Retorna a janela Window getWindow

C LASSES A DAPTER
Sã o c lass es qu e u tiliza mos p ara o tra tamen to de e ven tos . A van tage m de se u tiliza r
u ma classe Ad ap ter es tá no fa to d e que só p rec isa mos escre ver os mé tod os que iremos
r ea lme n te u tiliz ar , nos po upa ndo d e esc reve r to dos os mé todos o br iga tórios da in ter fac e
L is te ner .

C la sse A da pt e r I n t er f ac e L i ste ne r
FocusAdapter FocusListener
KeyAdapter KeyListener
MouseAdapter MouseListener
WindowAdapter WindowListener

61
P ROGRAMAÇÃO M ULTITAREFA EM J AVA
T HREADS
T hre ads sã o lin has e m e xec uçã o de u m pr ogr ama .T ecn ica men te , um thr ead é um
ú nic o flu xo s eq üencia l d e e xecuç ão . A ling uag em Ja va p ermite q ue s eu ap lica tivo
e x ecu te ma is d e uma l inh a s im u l tan eame n te e m s is te mas o pe r ac ion ais q ue pe r mi t a m
m u l ti t a r e fa .
Po demos cr iar u ma th rea d pa ra c ada o per ação q ue necess i ta mos , des ta for ma
ter íamos es tas ope raçõ es sen do vir tu almente e xecu tad as ao mesmo te mpo.
Se em nosso ap lica tivo prec is ásse mos faze r d i fer entes cá lcu los c om in for maçõ es de
b anco de d ados r emo tas de d ive rsas loca lida des do mun do , se ndo que qu ere mos o
r esu ltad o d es tas o ma is r áp ido p oss íve l , como po de ríamos proc ede r de ta l for ma q ue
u ma qua n tid ade ma ior d e c á lcu los s e ja c oncl u íd a e m me nos te mpo poss í ve l?
U ma p os s íve l s o luç ão p ode r i a s er a l ocar u ma t hr e ad a c a da r o ti na d e c á lcu lo.

A CLASSE T HREAD
A c l as s a jav a . la ng . Thr e ad é r es po ns á ve l p el a p r ogr amaç ão mu l ti ta r e fa em jav a .

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


start() Inicia execução da thread void start()
yeld() Pausa a thread passando a vez para a próxima de mesma static void yeld()
prioridade que a atual
sleep() Pausa a tread passando a vez para a próxima static void sleep(long ms)
run() Método conter o código da thread void run()
join() Adiciona a thread em execução ao final da thead que executou o void join()
método
wait() Pausa a thread em execução até ser notificada void wait()
notify() Notifica a thread que foi pausada por wait() void notify()
notifyAll() Notifica todas as threads que foram pausadas com wait() void notifyAll()
setPriority() Configura a prioridade void setPriority(int p)
setName() Configura um nome a uma thread Void setName(String nome)

C RIANDO T HREADS EM J AVA


Existem duas formas d e cru ar thr eads em ja va
Es te nder a c lasse Thre ad
Imp lemen ta r a in ter face R unn amb le
Cr ia ndo The ads es tend end o de ja va .lang .Th ead
E s ta é a ma ne ira ma is s im pl es de c r i ar m os u ma th r ea d:
De vemos es te nde r da c lasse Th ea d e d epo is su bscre ve r o mé todo r un( )

Exemplo:
public class TesteThreads {
public void executa() {

Linha l = new Linha();


Linha2 l2 = new Linha2();
l.start();
l2.start();

62
}
public static void main(String[] args) {
new TesteThreads().executa();
}
}
class Linha extends Thread {
public void run() {
for(int x=0;x<200;x++) {
System.out.println("1");
}
}
}
class Linha2 extends Thread {
public void run() {
for(int x=0;x<200;x++) {
System.out.println("2");
}
} }

C RIANDO T HEADS IMPLEMENTANDO R UNNAMBLE


E s ta a bor da ge m é m ai s tra ba lhosa , mas n os d á um ma io r c on tr ol e s o bre as t hr ea ds
Imp lemen ta ndo R unna mb le , p ode mos es ten der d e qua lq uer c lasse , a lé m de d e finir o
c o mp or ta me n to q ue s e r á e x ecu ta do p or u m t hr ea d s epa r ad o .

Exemplo
public class TesteThreads2 {
public void executa() {
Linha l = new Linha();
Linha2 l2 = new Linha2();
Thread t = new Thread(l);
Thread t2 = new Thread(l2);
t.setName("um");
t2.setName("dois");
t.start();
t2.start();
}
public static void main(String[] args) {
new TesteThreads2().executa();
}
}
class Linha implements Runnable {
public void run() {
for(int x=0;x<2;x++) {
System.out.println("1 " + Thread.currentThread().getName());
}
}
}
class Linha2 implements Runnable {
public void run() {
for(int x=0;x<2;x++) {
System.out.println("2 " + Thread.currentThread().getName());
}
}
}

63
E STADOS DE UMA T HREAD
O thea d pod e es ta r em c i nco esta dos :

NOVO
S i gn i f ica qu e o t hr ead f o i ins t anc ia do , mas ai nd a n ão f o i e xecuta do o mé to do s t ar t() .
E l e é c ons id era do ina ti v o

EXECUTÁVEL
Es te es tado é q uan do a thr ea d es tá es pe ran do p ara s er e xecu tada pe la J VM. A
p r i me ir a v ez q ue e n tr a n es te es t ad o é n a c ha ma da a o m é to do s tar t() .

EXECUÇÃO
Es te es ta do é qua ndo o thre ad e s tá s endo e xec u tado . Somen te o age nda dor po de
e fe tivamente c olocá- lo nes te es ta do .

ESPERA/BLOQUEIO/SUSPENSÃO
Aind a nã o es tá no es ta do e xecu tá vel, mas p ode ra oc orr er e m br eve .

I N AT I V O
U m thre ad es tá ina tivo qua ndo o se u mé todo r un( ) fo i co ncluido .

I MPEDINDO A EXECUÇÃO DE UMA THREAD


M É T O D O S L E E P ()
P o dem os uti l iz a r o mé t odo es tát i c o s lee p ( lo ng n ) pa r a p ausa r a e xec uçã o d e um a
thr ea d por n milise gu ndos . U tiliza mos es te mé tod o q uan do que remos desac elerar a
e xecuçã o de uma threa d .
Thread.sleep(1000)

Exemplo:
public class TesteThreads3 {
public void executa() {
Linha l = new Linha();
Linha2 l2 = new Linha2();
Thread t = new Thread(l);
Thread t2 = new Thread(l2);
t.setName("um");
t2.setName("dois");
t.start();
t2.start();
}
public static void main(String[] args) {

64
new TesteThreads3().executa();
}
}
class Linha implements Runnable {
public void run(){
for(int x=0;x<200;x++) {
System.out.println("1 " + Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch( InterruptedException e ) { }
}
}
}
class Linha2 implements Runnable {
public void run() {
for(int x=0;x<200;x++) {
System.out.println("2 " + Thread.currentThread().getName());
try {
Thread.sleep(1000);
} catch( InterruptedException e ) { }
}
}
}

M É T O D O Y E L D ()
O mé t odo y e ld é uti l iz a do para d ar a v ez n a e x ecuçã o p ar a um a th r ea d c o m a mes ma
p r i or i dad e . P a r a c on f ig urar mos a p r i or id ade d e u ma t hr e ad u t il iza mos o mé to do
se t Pr io ri t y()

M É T O D O S E T P R I O R I T Y ()
Ajus ta a pro pr ied ade d e e xec ução de u ma th rea d()
As thr ea ds pod em te r pr ior id ad es d e e xec ução entre Th rea d.MIN _ PR IOR IT Y a té
MAX_PR IOR IT Y. Ge ralmen te es tes n úme ros var ia m de 1 a 10 , de ac ordo co m a J VM e m
us o .

Exemplo:
t = new Thread();
t.setPriority(8);

O M É T O D O J O I N ()
O mé to do jo in() per mite a dic io na rmos uma thr ead ao fina l d e ou tr a . Seu us o es tá
ass ociado a poss ib ilid ade de te rmos que es per ar o fina l d e uma threa d X p ara só entã o
i n ici ar m os u ma th r ea d Y .

Exemplo:
Thread t = new Thread();
t.start();
t.join();
O c ód igo ac ima pe ga a thea d que es tá e m e xecuçã o e a dic io na ao fin al da th rea d t.

S I N C R O N I Z AÇ Ã O
O uso d e th r ea ds nos p er m i te a e x ecuçã o de t ar e fas s im u l tan eame n te .
M as , m u i tas v ez es , e x is t em t ar e fas que nã o que r em os q ue s e jam e x ecu ta das
s imultane amen te.
Par a de fin ir qu e do is o u ma is mé todos o u b loc os de có digo nã o de vem ser e xec u tad os
a o m es mo t e mp o pe lo m es m o obj e to , u ti l iz an do a pa lav r a c ha v e s ync r on iz ed .

65
Exemplo:
syncronized void beber() {
int cerveja;
int boca;
cerveja = 24;
boca = cerveja;
}
syncronized void dirigir() {
ligarVeiculo();
engatarMarcha();
largarEmbreagem();
acelerar();
try{
ultrapassar();
}
catch(Acidente e) {}
}

I NTERAÇÃO COM AS T HREADS


Os mé todos w ait( ) , no tify() e no tifyAll( ) pe rmite- nos te r co n trole s obr e a s uspe nsão
d as th r ea ds que es t ão e m e x ecuç ão . D e ve m s ome n te s er u t il iza dos de n tr o de m é tod os
o u b locos d e c ód ig o “ s ync hr o niz e d” .

M É T O D O W AI T ()
I n dic a qu e o t hr e ad a ti v o d e ve esp er ar a té q ue o mes m o s e ja noti f ic ado .

M É T O D O N O T I F Y ()
No tifica o th rea d qu e fo i sus penso pó wa it() co locan do -o e m es ta do e xecu tá vel.

M É T O D O N O T I F Y A L L ()
No tifica tod os os thr ea ds qu e fora m sus pensos c olocan do- os em es tado e xecu tá ve l .

Exemplo:
public class A {
public static void main(String [] args) {
B b = new B();
b.start();
synchronized(b) {
try {
System.out.println("Esperando b terminar");
b.wait();
} catch(InterruptedException e) {}
System.out.println("Total: " + b.total);
}
}
}
class B extends Thread {
int total;
public void run() {
synchronized(this) {

for(int i=0;i<100;i++) {

66
total += i;
}
notify();
}
}
}
Tipo Enumerados

C OLEÇÕES
As pr inc ip ais in ter faces q ue imple me n tam co leç ões são :

LIST
É u m con jun to qu e admite e lemen tos re pe tid os

P R I N C I P AI S M É T O D O S

Método Descrição Assinatura


add() Adiciona um objeto a lista void add()
get() Retorna o objeto da lista pelo índice object get(int indice)
remove() Remove um objeto da lista pelo índice void remove(int indice)
indexOf() procura um objeto na lista int indexOv(Object o)

Exemplo:
import java.util.*;
import java.util.Collections;
public class TesteList{
public static void main(String[] args){
List<String> lista;// repeticoes permitidas e ordenadas
lista = new ArrayList<String>();
lista.add("1");
lista.add("4");
lista.add("3");
lista.add("2");
System.out.println(lista.get(1));
System.out.println(lista);
Collections.sort(lista);
System.out.println(lista);

}
}

67
SET
Co njun to qu e nã o admite e lemen tos re pe tid os

Método Descrição Assinatura


add() Adiciona um objeto no conjunto void add()
contains() Procura no conjunto boolean contains(Object e)
remove() Remove um objeto do conjunto pelo índice void remove(int indice)
clear() Limpa o conjunto void clear()

Exemplo:
import java.util.*;
import java.util.Collections;
public class TesteSet{
public static void main(String[] args){

TreeSet<String> conj;
conj = new TreeSet<String>();
conj.add("1");
conj.add("4");
conj.add("1"); // nao adiciona, pois ja existe
conj.add("3");
conj.add("2");
System.out.println(conj.contains("3"));
System.out.println(conj.headSet("3"));
System.out.println(conj.tailSet("3"));
System.out.println(conj.contains("9"));
System.out.println(conj);

}
}

M AP
Map é um co njun to de par es cha ve /va lor .
Método Descrição Assinatura
put() Insere um par chave-valor void put(K chave,V Valor)
get() Retorna o valor da chave associada V get(K chave)
containsKey() Retorna true se contém a chave boolean containsKey(Object chave)
containsValue() Retorna true se contém o valor boolean containsValue(Object valor)

Exemplo:
import java.util.*;
import java.util.Collections;
public class TesteMap{
public static void main(String[] args){

Map<String,Integer> mapa;
mapa = new TreeMap<String,Integer>();
mapa.put("um",1);
mapa.put("dois",2);
mapa.put("tres",3);

68
mapa.put("quatro",4);
System.out.println(mapa.get("tres"));
System.out.println(mapa.get("um"));
System.out.println(mapa);

}
}

69

Você também pode gostar