Linguagem Java
Linguagem Java
LINGUAGEM JAVA
Elaboração e Edição
Linguagem Java
1ª edição
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)
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
Exemplos:
javax.swing
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
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 :
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
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 .
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 ) .
F L O AT
DOUBLE
Exemplos:
a) 354335.65678765
b) 65.9998764367676
C H AR
Exemplos:
a) ‘a’
b) ‘d’
c) 654
11
T IPO L ÓGICO
B O O L E AN
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 .
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
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 .
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 (&&)
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 (||)
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 (^)
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 (!)
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;
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”);
}
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;
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.
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
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;
}
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;
}
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!");
}
}
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
P R I N C I P AI S C O N S T R U T O R E S
P R I N C I P AI S M É T O D O S
P R I N C I P AI S C O N S T R U T O R E S
26
P R I N C I P AI S M É T O D O S
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)
P R I N C I P AI S M É T O D O S
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
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
P R I N C I P AI S C O N S T R U T O R E S
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
P R I N C I P AI S M É T O D O S
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
P R I N C I P AI S M É T O D O S
P R I N C I P AI S C O N S T R U T O R E S
BufferedOutputStream(OutputStream saida)
P R I N C I P AI S M É T O D O S
P R I N C I P AI S C O N S T R U T O R E S
DataOutputStream(OutputStream saida)
29
P R I N C I P AI S M É T O D O S
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
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)
30
BufferedReader (Reader r, int tamanho)
P R I N C I P AI S M É T O D O S
P R I N C I P AI S C O N S T R U T O R E S
LineNumberReader (Reader r)
P R I N C I P AI S M É T O D O S
P R I N C I P AI S C O N S T R U T O R E S
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
P R I N C I P AI S C O N S T R U T O R E S
P R I N C I P AI S M É T O D O S
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
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)
P R I N C I P AI S M É T O D O S
P R I N C I P AI S C O N S T R U T O R E S
P R I N C I P AI S M É T O D O S
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)
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
P R I N C I P AI S M É T O D O S
34
P R I N C I P AI S M É T O D O S
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
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
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
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)
P R I N C I P AI S M É T O D O S
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
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
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()
42
P R I N C I P AI S M É T O D O S
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()
43
P R I N C I P AI S M É T O D O S
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
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
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
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
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)
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)
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)
P R I N C I P AI S M É T O D O S
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
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
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
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
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
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
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
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()
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)
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)
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)
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)
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
Exemplo:
public class TesteThreads {
public void executa() {
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");
}
} }
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 .
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) {}
}
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
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
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