Você está na página 1de 12

Por

Antnio Arajo de Oliveira


Escola Secundria de Barcelos
2000/2001
2 JAVA
1 Introduo
Sendo a World Wide Web o maior sistema de informao do mundo esta comeou !or ser esttica
ou se"a a informao era a!resentada tal com num li#ro im!ressa e definiti#a$ As !%inas
desen#ol#idas na lin%ua%em tradicional o &'() t*m limita+es decorrentes da !r,!ria nature-a
da lin%ua%em .ue no est #ocacionada !ara a!lica+es .ue incluam animao multim/dia e
formas e#olu0das de interaco entre o utili-ador e e#entuais a!lica+es residentes no ser#idor de
1nternet$
2 JAVA introdu-iu na WWW a !ossibilidade de inte%rar #erdadeira interacti#idade nas !%inas
atra#/s da utili-ao de !e.uenas a!lica+es denominadas applets .ue !odem ser directamente
inte%radas no c,di%o &'() e assim tornar acess0#el a uma !%ina tudo a.uilo .ue normalmente se
conse%ue obter de um !ro%rama desen#ol#ido em .ual.uer das outras lin%ua%ens de !ro%ramao$
Ao contrrio do &'() !raticamente acess0#el a .ual.uer !essoa mesmo sem .uais.uer
con3ecimentos ou e4!eri*ncia de !ro%ramao o JAVA / uma #erdadeira lin%ua%em de
!ro%ramao com todas as dificuldades de a!rendi-a%em inerentes 5 com!le4idade da mesma !or
mais sim!les .ue se"a a lin%ua%em JAVA$
Resenha Histrica
2 JAVA comeou !or c3amar6se 2A7 de#ido 5 r#ore .ue crescia !erto do escrit,rio do seu
!rinci!al criador James 8oslin%$ Ele descobriu toda#ia .ue " e4istia uma lin%ua%em de
!ro%ramao denominada 2A7$ Sendo assim a e.ui!a te#e de !rocurar um no#o nome$ Eles
com!ra#am o caf/ .ue consumiam numa lo"a !r,4ima e um dos ti!os de caf/ com!rado era Ja#a$
Portanto foi este o nome escol3ido$
2 JAVA foi desen3ado !or uma e.ui!a da Sun (icros9stems na :alif,rnia E$;$A$ Este a!areceu
da necessidade de construir software !ara electrodom/sticos < tele#is+es telefones !a%ers e tal#e-
=um dia> torradeiras$ As lin%ua%ens ,b#ias na altura : e :?? tin3am des#anta%ens < no era fcil
trans!ortar o software !ara um no#o !rocessador$ Portanto o JAVA nasceu com os ob"ecti#os de
criar !ro%ramas !e.uenos r!idos e trans!ort#eis$
O que o JAVA
2 JAVA / !ro#a#elmente uma das mel3ores lin%ua%ens de !ro%ramao !ara a!render e usar no
fim do s/culo @@ de#ido 5s se%uintes caracter0sticasA
O JAVA pequeno e agradvel
2s criadores do JAVA dei4aram deliberadamente de fora todas as caracter0sticas su!/rfluas das
lin%ua%ens de !ro%ramao$ 2 resultado / uma lin%ua%em .ue !ossui todos os caracter0sticas
necessrias combinadas de uma maneira ele%ante e l,%ica$ 2 JAVA / fcil de a!render e !oderoso$
O JAVA orientado a objectos
As lin%ua%ens orientadas a ob"ectos so o Bltimo %rito na !ro%ramao$ A !ro%ramao orientada a
ob"ectos / a mais !o!ular forma de !ro%ramao no fim da d/cada 1CC062000 e no in0cio do no#o
mil/nio$ 2 JAVA / com!letamente orientado a ob"ectos desde a base at/ ao to!o$ Do / uma
lin%ua%em em .ue a orientao a ob"ectos foi acrescentada !or cima de uma estrutura clssica de
lin%ua%em de !ro%ramao$
E2001 !or Ant,nio AraB"o de 2li#eira
JAVA F
O JAVA suporta a Internet
A !rinci!al moti#ao !ara a utili-ao do JAVA / !ermitir aos utili-adores desen#ol#erem
!ro%ramas .ue usam a 1nternet e a World Wide Web$ 2s !ro%ramas em JAVA !odem ser facilmente
in#ocados a !artir de broGsers como o Internet Explorer ou o Netscape Navigator !ara obter mais
#alias em facilidades e es!ectacularidade$ Ainda os !ro%ramas em JAVA !odem ser facilmente
transmitidos !ela 1nternet e ser e4ecutados em .ual.uer com!utador$
O JAVA uma linguagem de propsitos gerais
Embora desen3ado !ara desen#ol#er a!lica+es !ara a Wold Wide Web o JAVA / realmente uma
lin%ua%em de !ro!,sitos %erais$ Hual.uer coisa .ue :?? Ada etc$ !odem fa-er tamb/m o JAVA
!ode$
O JAVA independente da plataforma
2s !ro%ramas JAVA correm em !raticamente todos os com!utadores < sem .ual.uer alteraoI
Den3uma outra lin%ua%em o !ermite$ 1sto fica resumido no slo%an Jescrito uma #e- < corre em
todo o ladoK$
O JAVA robusto
Se um !ro%rama em JAVA cont/m erros =todos os !ro%ramas t*m esta tend*ncia> este no criar
!roblemas ou resultados im!re#istos no sistema onde corre$ 2s !ro%ramas JAVA correm dentro de
uma Lcai4aM de !roteco os efeitos de .ual.uer erros esto limitados e controlados$ 2s !ro%ramas
JAVA esto ainda !rote%idos contra a infiltrao de #0rus$
O JAVA usa bibliotecas ( libraries )
Pelo facto de o JAVA ser uma lin%ua%em !e.uena a maioria da sua funcionalidade / fornecida !or
!artes de !ro%ramas mantidos em bibliotecas$ 'oda uma %ama de bibliotecas de softGare esto
dis!onibili-adas !ara lidar com %rficos acesso 5 1nternet e su!orte !ara interfaces %rficos com o
utili-ador =8;1> < assim como !ara as coisas .ue as lin%ua%ens de !ro%ramao clssicas fa-em$
Programas em JAVA
& #rios ti!os diferentes de !ro%ramaoA !rocedimental l,%ica funcional fol3a de clculo
#isual e orientada a ob"ectos$ Em JAVA fa-emos !ro%ramao orientada a ob"ectos assim como em
lin%ua%ens como Ada :?? Eiffel e SmalltalN$
2 JAVA / uma lin%ua%em standard sem #aria+es ou dialectos e cu"o desen#ol#imento e
manuteno / da res!onsabilidade da Sun Microsystems$ 2 JAVA est em desen#ol#imento embora
a%rada#elmente de#a%ar$ A !rimeira %rande #erso foi denominada 1$0 e a se%unda 1$1$ a !artir da0
a #erso 1$2 forneceu bibliotecas adicionais mas a lin%ua%em em si no mudou$
Em de-embro de 1CCO a Sun decidiu mudar o nome de JAVA 1$2 !ara JAVA 2$
;m !ro%rama em JAVA !ode ser e4ecutado de duas formas diferentesA
como um !ro%rama distinto e inde!endente =c3amado aplica!o>P
a !artir de um broGser WWW =c3amado applet>
Programao orientada a objectos (OOP)
A maioria dos !ro%ramas .ue se desen#ol#em numa escola so !e.uenos mas os !ro%ramas .ue
usamos diariamente na sua maioria no o so$ Por e4em!lo o !rocessador de te4to Word da
(icrosoft cont*m cerca de Q00 000 lin3as de c,di%o fonte$ A Q0 lin3as !or !%ina so 10 000
E2001 !or Ant,nio AraB"o de 2li#eira
Q JAVA
!%inas ou cerca de Q0 li#ros$ 2 !roblema !rinci!al no est na dimenso mas sim na
com!le4idade$ ;m !ro%rama no / como um romance .ue se !ode com!reender lendo6o
se.uencialmente do in0cio !ara o fimP / mais !arecido com mil3+es de !%inas na 1nternet
directamente li%adas entre si atra#/s de 3i!erli%a+es$
:om #ista a mel3or lidar com a com!le4idade os !ro%ramadores !rocuraram formas de !artir
!ro%ramas em !artes mais !e.uenas e mane"#eis$ 'ais !artes so normalmente c3amadas m,dulos$
Ri#idindo 10 000 !%inas em Q0 li#ros !ode ser criar m,dulos$ Em cada li#ro !odemos criar
di%amos 20 ca!0tulos os .uais tornaro o todo ainda mais di%er0#el$ Em cada ca!0tulo !odemos
ainda criar sec+es$ 2b#iamente no #amos a se!arao do te4to aleatoriamente < de#emos fa-er
di#is+es naturais e a!ro!riadas aos conteBdos$
2s !ro%ramas orientados a ob"ectos so constru0dos a !artir de m,dulos c3amados ob"ectos$ Estes
so os ti"olos .ue !ermitem a construo de !ro%ramas com!le4os$ (esmo os !e.uenos !ro%ramas
beneficiam !elo facto de terem sido criados a !artir de ob"ectos$ 2 JAVA / considerado uma
lin%ua%em orientada a ob"ectos !or.ue !ermite criar !ro%ramas a !artir da utili-ao de ob"ectos$
OBJECTOS
2 conceito de ob"ecto / essencial !ara a com!reenso da tecnolo%ia de orientao a ob"ectos$
Podemos ol3ar 5 nossa #olta e #er e con3ecer muitos e4em!los de ob"ectosA o nosso co a nossa
mesa a nossa tele#iso a nossa bicicleta$ 'odos estes ob"ectos do mundo real !artil3am duas
caracter0sticasA todos !ossuem um estado ou condi!o e um comportamento$ Por e4em!lo um co
tem um estado =nome cor raa fome> e um com!ortamento =ladrar fare"ar e abanar a cauda>$ As
bicicletas !ossuem um estado =!edaleira actual cad*ncia da !edaleira duas rodas nBmero de
!edaleiras> e um com!ortamento =tra#ar acelerar !arar mudar #elocidade>P notar .ue com
!edaleira .ueremos di-er uma das rodas dentadas .ue com!+e o sistema de mudanas da bicicleta$
;m ob"ecto / o a%ru!amento de al%uns dados com as instru+es .ue actuam sobre esses dados$ A
seleco de dados e ac+es no / arbitrria < os dados e as ac+es de#em estar fortemente
relacionados tal .ue o ob"ecto se"a al%o com si%nificado$
2s ob"ectos de software so modelados se%undo os ob"ectos do mundo real !ossuindo tamb/m um
estado e um com!ortamento$ 2 estado de um ob"ecto de software / dado !or um con"unto de
atributos$ :ada atributo desse ob"ecto / re!resentado !or uma varivel =item de dados referido
atra#/s de um identificador>$ ;m ob"ecto de software im!lementa o seu com!ortamento atra#/s de
m/todos$ ;m mtodo / uma funo =subrotina> associada ao ob"ecto$
RefinioA um objecto / um !acote de software com!osto !or #ari#eis e m/todos associados$
2 mundo real !ode ser re!resentado modelado ou simulado !ela utili-ao de ob"ectos de software$
Podemos re!resentar !or e4em!lo ces como ob"ectos de software num !ro%rama de animao ou
uma bicicleta como um ob"ecto de software num !ro%rama .ue controla uma bicicleta de %instica
electr,nica$ Podemos ainda ob"ectos de software !ara modelar conceitos abstractos$ Por e4em!lo
um evento / um ob"ecto comum usado em 1nterfaces com o utili-ador baseados em "anelas =8;1>
!ara re!resentar a aco de um utili-ador .uando !ressiona o boto dum rato ou a tecla de um
teclado$ ;m ob"ecto !ode ser re!resentado #isualmente !orA
E2001 !or Ant,nio AraB"o de 2li#eira
Vari#eis
=estado>
(/todos
=com!ortamento>
JAVA S
'udo .ue o ob"ecto de software con3ece =estado> e !ode fa-er =com!ortamento> / e4!resso !elas
#ari#eis e m/todos dentro do ob"ecto$ ;m ob"ecto de softGare .ue modele uma bicicleta teria
#ari#eis .ue indicam o estado actual da bicicletaA a sua #elocidade / 20 Nm !or 3ora a cad*ncia da
!edaleira / de C0 rota+es !or minuto e a !edaleira actual / S$T$ Estas #ari#eis so formalmente
denominadas variveis de inst"ncia !or.ue cont*m o estado !ara um ob"ecto bicicleta em
!articular e na terminolo%ia da !ro%ramao orientada a ob"ectos um ob"ecto em !articular /
c3amado uma inst"ncia$
A fi%ura se%uinte ilustra uma bicicleta modelada como um ob"ecto de softwareA
Al/m das suas #ari#eis a bicicleta de softGare de#e ter tamb/m m/todos !ara tra#ar mudar a
cad*ncia da !edaleira e mudar de !edaleira$ A #elocidade da bicicleta em mo#imento / um efeito
secundrio da !edaleira em .ue est e da #elocidade com .ue o ciclista !edala da !osio dos
tra#+es e de .uanto a colina / inclinada$ Estes m/todos so con3ecidos como mtodos de
inst"ncia !or.ue eles ins!eccionam ou alteram o estado de uma instUncia !articular de uma
bicicleta$
2 dia%rama do ob"ecto mostra .ue as #ari#eis do ob"ecto constituem o centro ou nBcleo do
ob"ecto$ 2s m/todos rodeiam e escondem o nBcleo do ob"ecto de outros ob"ectos no !ro%rama$
Em!acotar as #ari#eis de um ob"ecto sob a cust,dia !rotectora dos seus m/todos / denominada
encapsula!o$ Esta ima%em conce!tual de um ob"ecto < um nBcleo de #ari#eis em!acotados
dentro de uma membrana !rotectora de m/todos < / uma re!resentao ideal de um ob"ecto e / o
ideal .ue os criadores de sistemas orientados a ob"ectos !rocuram alcanar$ 'oda#ia a 3ist,ria no
acaba a.ui$ Vre.uentemente !or ra-+es !rticas um ob"ecto !ode dese"ar e4!or al%umas das suas
#ari#eis ou esconder al%uns dos seus m/todos$ Da lin%ua%em JAVA um ob"ecto !ode es!ecificar
um de .uatro n0#eis de acesso !ara cada uma das suas #ari#eis e m/todos$ 2 n0#el de acesso
determina .ue outros ob"ectos e classes !odem aceder esta #ari#el ou m/todo$ 2 enca!sulamento
de #ari#eis e m/todos relacionados num !acote bem definido de softGare / uma ideia sim!les e
!oderosa .ue !ro#idencia dois benef0cios !rimrios !ara os !ro%ramadoresA
#odularidadeA 2 c,di%o fonte !ara um ob"ecto !ode ser escrito e mantido inde!endentemente
do c,di%o fonte de outros ob"ectos$ Ainda um ob"ecto !ode ser facilmente reutili-ado !or
outros no sistema =!ode dar a sua bicicleta a outra !essoa e ela continua a funcionar>$
Ocultar informa!oA ;m ob"ecto tem um interface !Bblico .ue outros ob"ectos !odem utili-ar
!ara comunicar com este$ 2 ob"ecto !ode manter informao !ri#ada e m/todos .ue !odem ser
alterados em .ual.uer altura sem afectar os outros ob"ectos .ue de!endem deste =no /
necessrio con3ecer o mecanismo de mudanas da bicicleta !ara a usar>$
2utro benef0cio tamb/m im!ortante / a simulao < uma ideia !oderosa !ara modelar os !roblemas
do mundo real$
E2001 !or Ant,nio AraB"o de 2li#eira
(udar
!edaleira
(udar
cad*ncia
'ra#ar
20 Nm/3
C0 r!m
S$T #el$
W JAVA
CLASSES
Do mundo real temos fre.uentemente #rios ob"ectos do mesmo ti!o$ Por e4em!lo a sua bicicleta
/ s, uma de muitas bicicletas no mundo$ ;sando a terminolo%ia da !ro%ramao orientada a
ob"ectos di-emos .ue o ob"ecto da sua bicicleta / uma inst"ncia da classe de ob"ectos con3ecida
como bicicletas$ As bicicletas !ossuem um con"unto de atributos =!edaleira actual cad*ncia actual
duas rodas> e com!ortamento =mudar de !edaleira tra#ar> em comum$ 'oda#ia o estado de cada
bicicleta / inde!endente e !ode ser diferente do de outras bicicletas$
Huando constru0mos bicicletas os construtores tiram #anta%ens do facto de as bicicletas
!artil3arem caracter0sticas construindo muitas bicicletas a !artir do mesmo desen3o/!ro"ecto$ Seria
muito ineficiente !rodu-ir um no#o desen3o/!ro"ecto !ara cada bicicleta manufacturada$
Em softGare orientado a ob"ectos / tamb/m !oss0#el ter muitos ob"ectos do mesmo ti!o .ue
!artil3am caracter0sticasA rectUn%ulos re%istos de funcionrios temas musicais etc$ 'al como o
construtor de bicicletas !odemos tirar #anta%em do facto de os ob"ectos do mesmo ti!o so
semel3antes e !odemos criar um modelo !ara estes ob"ectos$ Em softGare um modelo !ara
ob"ectos / c3amado uma classe$
RefinioA uma classe / um modelo ou !rot,ti!o .ue define as #ari#eis e m/todos comuns a todos
os ob"ectos de um certo ti!o$ :ada ob"ecto / uma instUncia de uma dada classe$
A classe !ara o nosso e4em!lo da bicicleta de#eria declarar as #ari#eis de instUncia necessrias
!ara conter a !edaleira actual a cad*ncia actual e os demais atributos de cada ob"ecto bicicleta$ A
classe de#eria ainda declarar e fornecer im!lementa+es !ara os m/todos de instUncia .ue !ermitem
ao ciclista mudar de !edaleira tra#ar e mudar a cad*ncia com .ue !edala como !odemos #er na
fi%ura se%uinteA
Re!ois de criada a classe bicicleta !odemos criar .ual.uer nBmero de ob"ectos bicicleta a !artir da
classe bicicletas$ Huando criamos uma instUncia de uma classe o sistema aloca mem,ria suficiente
!ara o ob"ecto e todas as suas #ari#eis de instUncia$ :ada instUncia obt/m a sua !r,!ria c,!ia de
todas as #ari#eis de instUncia definidas na classe$ As classes fornecem ao !ro%ramador
%eneralidade a !ossibilidade de definir .ual.uer coisa uma #e- e de!ois fa-er montes de c,!ias$
Al/m das #ari#eis de instUncia as classes !odem definir #ari#eis de classe$ ;ma varivel de
classe cont/m informao .ue / !artil3ada !or todas as instUncias da classe$ Por e4em!lo #amos
E2001 !or Ant,nio AraB"o de 2li#eira
Pri#ado
=detal3es de im!lementao>
PBblico
=AP1>
(udar
!edaleira
(udar
cad*ncia
'ra#ar
#elocidade
cad*ncia
!edaleira
Sistema de Pedaleiras
=im!lementao>
JAVA X
su!or .ue todas as bicicletas !ossuem o mesmo nBmero de !edaleiras =rodas dentadas>$ Deste caso
definindo uma #ari#el de instUncia !ara %uardar o nBmero de !edaleiras / ineficienteP cada
instUncia teria a sua !r,!ria c,!ia da #ari#el mas o #alor seria o mesmo !ara todas as #ari#eis$
Em tais situa+es !odemos definir uma #ari#el de classe .ue conten3a o nBmero de !edaleiras$
'odas as instUncias !artil3am esta #ari#el$ Se um ob"ecto altera a #ari#el esta muda !ara todos os
ob"ectos deste ti!o$ ;ma classe !ode ainda declarar m/todos de classe$ ;m m/todo de classe !ode
ser in#ocado directamente da classe #isto .ue estes de#em ser in#ocados numa instUncia em
!articular$
$lasse Inst"ncia da $lasse
HERANA
2 Bltimo dos conceitos .ue #amos estudar / c3amado 3erana$ Huando as !essoas comeam a
!ensar acerca de classes !ensam em es.uemas de classificao$ 2 e4em!lo mais comum / o dos
seres #i#os$ ;m sistema de classifica+es !arece6se com o se%uinteA
Este dia%rama si%nifica .ue cada classe !artil3a al%umas caracter0sticas com a classe
imediatamente acima desta a superclasse$ Por e4em!lo todos os !ssaros t*m es.ueletos$
Ri-emos .ue a classe 3erdou as caracter0sticas de todas as classes acima desta na r#ore
3ierr.uica$ Por e4em!lo todos os !ssaros so seres #i#os$
Acontece o mesmo !ara os ob"ectos criados !elo 3omem$ Por e4em!lo todas as m.uinas de la#ar
!artil3am caracter0sticas comuns tais como um cilindro e um com!artimento !ara o deter%ente$ Das
lin%ua%ens orientadas a ob"ectos tamb/m temos muitas #e-es classes relacionadas com outras
classes de uma maneira similar$ As classes 3erdam certas caracter0sticas =dados e/ou m/todos> das
suas su!erclasses mas estas !ossuem as suas !r,!rias caracter0sticas adicionais$
E2001 !or Ant,nio AraB"o de 2li#eira
(udar
!edaleira
(udar
cad*ncia
'ra#ar
#elocidadeY20
cad*nciaYC0
!edaleiraY2
DumPedaleirasYS
NumPedaleirasYS
(udar
!edaleira
'ra#ar
(udar
cad*ncia
Seres #i#os
Plantas Vun%os
1n#ertebrados Vertebrados
Pei4es Anf0bios Z/!teis (am0feros Pssaros
O JAVA
:ada classe tem uma su!erclasse =acima na 3ierar.uia> e e#entualmente subclasses .ue 3erdam as
suas caracter0sticas$ A subclasse 3erda o estado da su!erclasse =na forma de #ari#eis declaradas> e
os seus com!ortamentos atra#/s dos m/todos declarados na su!erclasse$ As subclasses !odem
tamb/m redefinir =override>os m/todos 3erdados e fornecer im!lementa+es es!eciali-adas !ara
estes m/todos$ Por e4em!lo se temos uma bicicleta de montan3a com um con"unto e4tra de
!edaleiras !odemos redefinir o m/todo [mudar !edaleira\ de maneira a .ue o ciclista !ossa usar as
no#as !edaleiras$
Do 3 limite !ara os n0#eis de 3erana$ A r#ore de 3erana ou %ierarquia de classes !ode ser to
e4tensa .uanto necessrio$ 2s m/todos e as #ari#eis so 3erdadas em ordem descendente atra#/s
dos #rios n0#eis$ Em %eral .uanto mais abai4o est uma classe na 3ierar.uia mais es!eciali-ado /
o seu com!ortamento$
A mais #alia .ue a 3erana tra- ao !ro%ramador / a !ossibilidade de reutili-aoP o !ro%ramador
!ode criar no#as classes .ue utili-am as facilidades de classes " e4istentes estendendo estas
facilidades tanto .uanto se"a necessrio$ As su!erclasses so tamb/m denominadas classes
abstractas .ue definem com!ortamentos %en/ricos$
OBJECTOS VS. CLASSES
Pro#a#elmente notou .ue as ilustra+es de ob"ectos e classes !arecem muito semel3antes$ E de
facto a diferena entre classes e ob"ectos / muitas #e-es a fonte de al%uma confuso$ Do mundo
real / ,b#io .ue as classes no so elas mesmas os ob"ectos .ue descre#em$ 2 modelo/!ro"ecto de
uma bicicleta no / a bicicleta$ 'oda#ia / um !ouco mais dif0cil de diferenciar classes e ob"ectos
em software$ 1sto acontece !or.ue os ob"ectos de software so meros modelos electr,nicos de
ob"ectos do mundo real ou de conceitos abstractos$ Acontece tamb/m !or.ue o termo [ob"ecto\ /
al%umas #e-es utili-ado !ara referir tanto classes como instUncias$
Das fi%uras acima a classe / re!resentada sem !reenc3imento !or.ue esta re!resenta um modelo
de um ob"ecto e no o ob"ecto em si$ Em contra!artida um ob"ecto / !reenc3ido indicando .ue o
ob"ecto e4iste e !ode ser usado$
2 O primeiro pror!m! em JAVA
Su!ondo .ue o leitor " con3ece outras lin%ua%ens de !ro%ramao muitos dos conceitos inerentes
ao acto de !ro%ramar no sero no#os !ortanto iremos abordar os conceitos conforme estes forem
utili-ados nos nossos e4em!los$
A!ica"es e A!ets
;m !ro%rama / uma coleco de instru+es !ara um com!utador$ Pro%ramas de com!utador so
#ul%armente con3ecidos como software e 3 muitos ti!os diferentes de software$ JAVA / uma de
muitas lin%ua%ens destinadas a comandar com!utadores$ 2s !ro%ramas JAVA so de dois ti!os
distintosA a!lica+es e applets$ Ambos os ti!os so !ro%ramas$ A diferena est no facto de .ue uma
a!licao / um !ro%rama com!letamente aut,nomo < no fa- !arte nem !recisa de nen3um outro
!ro%rama !ara correr$ :ontrariamente uma applet / in#ocada como !arte de uma !%ina Web e
!ortanto necessita de um browser ou de um #isuali-ador de applets !ara a in#ocar$ & diferenas
im!ortantes entre a maneira como uma applet e uma a!licao so escritas em JAVA$ A.ui iremos
abordar essencialmente a escrita de applets !ois actualmente / esta a !rinci!al forma de utili-ao
do JAVA na !rtica$
E2001 !or Ant,nio AraB"o de 2li#eira
JAVA C
Prearao de um rograma em JAVA
Para escre#er um !ro%rama em JAVA necessitamos de um editor de te4to$ Para isso !odemos
recorrer a .ual.uer editor de te4to corrente como o ER1' do (s6Ros o Dote!ad do WindoGs o Vi
do ;ni4 ou )inu4 ou recorrer a al%um !acote de desen#ol#imento inte%rado os .uais
dis!onibili-am recursos !ara resol#er todos os !assos de criao com!ilao li%ao e
#isuali-ao de um !ro%rama =!or e4em!lo o VisualA%e da 1B(>$
Portanto !ara a criao de um !ro%rama em JAVA !recisamos dos se%uintes recursos/!ro%ramasA
1$ Editor de te4toP
2$ :om!iladorP
F$ )inNerP
Q$ A!!let #ieGer ou broGser$
2 !rimeiro !asso consiste ento na di%itao do c,di%o !ela utili-ao de um editor de te4to$ 2
nosso !rimeiro !ro%rama ter o se%uinte as!ectoA
Re!ois de introdu-ido o te4to acima num editor de te4to de#emos %ra#6lo em disco num fic3eiro
com o nome da classe criada ou se"a &audacao e com e4tenso java o .ue d &audacao'java$
Re#e6se ter em conta .ue o JAVA distin%ue maiBsculas e minBsculas$
2 !asso se%uinte !assa !ela com!ilao do !ro%rama$ Para isso iremos usar o com!ilador de JAVA
o "a#ac di%itando na lin3a de comando o se%uinteA
javac Saudacao.java
A!,s a com!ilao se no 3ou#er erros ser %erado o fic3eiro binrio cu"o nome est li%ado ao
nome da classe definida no c,di%oA
Saudacao.class
Por Bltimo resta e4ecutar o !ro%rama$ Ao contrrio de outras lin%ua%ens o JAVA no %era um
fic3eiro binrio e4ecut#el directamente !elo sistema o!erati#o =c,di%o m.uina>$ Este %era c,di%o
!ara uma m.uina #irtual denominado byte code .ue / inter!retado localmente em cada m.uina
es!ec0fica !or um !ro%rama c3amado Java Virtual Macine =(.uina Virtual Ja#a>$ Para e4ecutar
o !ro%rama usamos o se%uinte comandoA
java &audacao'class
Prearao de uma A!et
Para escre#er a a!!let usamos o mesmo ti!o de editores referido !ara os !ro%ramas JAVA na seco
anterior$
E2001 !or Ant,nio AraB"o de 2li#eira
class Saudacao {
public static void main(String args[]) {
System.out.println(Ola!);
}
}
10 JAVA
A nossa !rimeira a!!let ter o se%uinte as!ectoA
Re!ois de introdu-ido o te4to acima num editor de te4to de#emos %ra#6lo em disco num fic3eiro
com o nome da classe criada ou se"a &audacao e com e4tenso java o .ue d &audacao'java$
Re#e6se ter tamb/m em conta .ue o JAVA distin%ue maiBsculas e minBsculas$
2 !asso se%uinte !assa !ela com!ilao do !ro%rama$ Para isso iremos usar o mesmo com!ilador
de JAVA .ue anteriormente o "a#ac di%itando na lin3a de comando o se%uinteA
javac Saudacao.java
A!,s a com!ilao se no 3ou#er erros ser %erado o fic3eiro binrio cu"o nome est li%ado ao
nome da classe definida no c,di%oA
Saudacao.class
Por Bltimo resta inserir a classe num fic3eiro &'() e abri6lo com um broGser .ue inter!rete
JAVA$ Para isso de#emos comear !or fa-er a incluso num fic3eiro &'() da se%uinte maneiraA
Re!ois de introdu-ido o te4to acima num editor de te4to de#emos %ra#6lo em disco num fic3eiro
com o nome &audacao'%tml o .ual de#er ser aberto !or um broGser ou utili-ando o appletviewer
como se se%ueA
appletvie(er &audacao'%tml
E2001 !or Ant,nio AraB"o de 2li#eira
import java.awt.*;
import java.applet.Applet;
public class Saudacao extends Applet{
public void paint(Graphics g) {
g.drawString(Ola!, 50, 50);
}
}
<html>
<header>
<title>O primeiro apple</title>
</header>
<body>
<applet code!Saudacao.cla"" width!#00 height!$00> </applet>
</body>
</html>
}
JAVA 11
2 resultado da applet ser e4ibido numa "anela %rfica .ue ter o se%uinte as!ectoA
E2001 !or Ant,nio AraB"o de 2li#eira
impor %a&a.a'.*;
impor %a&a.apple.(pple;
pu)lic cla"" Saudacao e*e+d" (pple {
pu)lic &oid pai+ (,rap-ic" g) {
g.dra'"ri+g(Ola, 50, 50);
}
}
12 JAVA
ndice
) Introdu!o''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''*
Zesen3a &ist,rica$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$2
2 .ue / o JAVA$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$2
Pro%ramas em JAVA$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$F
Pro%ramao orientada a ob"ectos =22P>$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$F
!b"ectos#####################################################################################################################################################################$
%lasses#######################################################################################################################################################################&
'eran(a#####################################################################################################################################################################)
!b"ectos vs# %lasses###################################################################################################################################################*
* O primeiro programa em JAVA'''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''+
A!lica+es e A!!lets$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$O
Pre!arao de um !ro%rama em JAVA$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$C
Pre!arao de uma A!!let$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$10
E2001 !or Ant,nio AraB"o de 2li#eira