You are on page 1of 703
para iniciantes Javar 6? edicao Crie, compile e execute programas Java rapidamente q Herbert Schildt Q O autor (0 autor de best-sellers Herbert Sehildteserove incansavelmente sobre programagio hai quase tr décadas ¢ uma das principus utoridades na inguagem Java. Seus livros de programasdo venderam milhies de cps no mundo intio ¢ foram t- ‘duridos par diversos idiomas. E autor de virion livtos sobs Java, incluindo Java: ‘The Complete Reference, Herb Schld's Java Programming Cookbook e Swing’ A Beginners Guide. Ee também eseroveu sobre C, C++ ¢ CH. Emboratenha ineresse cm todas as drcas da computa, seu foco priacpal slo as linguagens de progra- ‘magio, ineluindo compiladores,interpretadores e Tinguagens de conto robe. Tambem tem grande inlerese na palronizagio de Tinguapens. chil tem gradua 0. poe-gradoag pola Universidade de Ilincis, Seu site ¢ wer HerSchildt.com. 0 editor técnico Dr. Danny Coward trabalhou em oss as edges da pataforma Java Ele eonduziu defini dos Java Servlets para primeira versio da plataforma fava BE © para fem dela, os servigos weh para a plataforma Java ME, ea estratgi plaejemento de Java SE 7. Fundos a tenologia JavaFX e, mais rcentements, projeton 9 maior scréscim feito ao pao lava EE 7, « APLJava WebSocket Da codificagio em ava 30 projeto de APL com especialistas da indistia ea trabalho por viios anos como txceutivo do Java Community Process, ele aun uma perspectvasingularmeate tampa de virios aspectos da tecnologia Java. Além disso, € autor de Java¥ehso ‘ket Programming de um livto ainda asec publicado sobre Java EE. Dr. Coward tem graduasio, mestrdo e doutordo em Matematica pela Universidade de Oxfor. oe, ’Bx Se ‘av par incites: ci, comple e execute programas Ja npidanente [recuse elewonico| Hester Sculdt, ‘tate: Ai José Coelho Céad Siva tevido ‘een Mara Livia lank Lishs, 6. Peta Alegre oaks, 2015 aid como iv impress em 205, ISBN OTE 85 4200357-6 1. Lingugem de programagno fav Tao, eDU ODL ‘Geialogazao ma pblcago: Poiana Sanchez de Avaujo CRB 102008 Herbert Schildt 6 edigao Crie, compile e execute programas Java rapidamente “Tradogé: lit José Coelho Corns da Siva Revisio tecnica: Maria Lica Blanck Lisa putes rm Cacia da Computaco pela UERGS Profesor do lasts de lfomiica da UFRGS Verso impressa desta obra 2013 2015 ‘Ova riginaiente pobica sob oul Jana A Nepnners Guide, hen ISBN OT IH09252/978-0.07-180025-2 [igi orga 02014, The Mera 4 Gaal Faseation Holdings, LLC, New York, New Yank {00 inl parx agua portugues ©2015, Hookmaa Compania ior Lida, una empresa do (Grupo 4 Fatencio S.A. Too sis reservados. Geren tra: Arysinha Jaoques Aon ‘Colborne eto: dor Aten Hella Prepare origins: Bien Rae Letra ina: ava Sines Pes ‘Caps Kale Fnotondo Heir tesobre cae xg rac lta Techooks Reservas dono ditelios de pablo, m ag portage, 2 [ROOKMAN EDITORA ETDA._ uma empresa do GRUPO A EDUCACAO S.A Av. Jerome de Ornelas, 670 Santana ‘900-340 Porto Aesre RS ne: (51) 3027-7000 Fox: (51) 3027-7070, prota a dupicagto ou reproduto deste Yume ow oven pate, sb quaiguee fiasco pr quar mes etn, cin, raga, fotos, dba m2 Web ‘cout, sem prise expsa da tor, nde Sto Pato [vn Maced Soues, 10738 Paya 5 Con Espace Cte ia Anasico ~05095-038~Sa0 Paulo SP Fone: (11) 3665-1100 Fax: (1D) 67-1333 SSAC 0800 703-3444 — wa grape co be IMPRESSO.NO BRASIL, PRINTED IN BRAZIL Origen da inguager Jase ‘Qual arelagao ene Java, Ce CH Qual a elagioente Jae OPP CContfuides da tinpuagem Iva pan a Inter ‘Applets so Segurancs Porat Co (O sepredo ds inguagem Java: o bytecode 0 ang $0 enema rogramacao orcad objtoe CObtendoo lava Developmen Kit Um primeir programa simples. Inserindoo programs... - Compan progam Primei exemple de programa ‘Tratando eros de sins {Um segundo programa sings ut tipo de dad w Sumario ‘Tente Isto 1-1 Converta gales em litres, ‘Duss instragoes de coal ‘A instgso Otago for Cre bioes de eg. nn Fone vig: psonanea Prticas de rest = “Tele Lte 12. Metbere 0 conve emnnvnnennnrnnenmemenn ‘As pulveaschave Java a emtiteadores er av. Sunn Asibliotcas de clases lava 2 “este do Capto Introdusao a tipos de dads € operadores nevi Por ques tipos de datos so importants ‘Tes ros dingo “Teate Ito 2-1 Qual 6a distancia do relampage? Liters = “Liters hexadecimal, acta bine = Sequins de escape de ericteres “ Liters de rings. so Um exame mas detalhado dss varies. Inland uma varie, Iniitizageo dni scope e tempo devia ds varves. Operator nnn ‘Operaiones artnticos " Torementnedecremento.- 7 ‘Operas eiciemas gion ‘Operators lpios de cao-ceeile (© opecaor de aibuiga. Atebaioesabreviads = = ‘Conversio de ips em atrbugbes. nn sie ‘Convertenda pos incampaties - “ Preceséncia de operadores. coo “eet eto 22. Taleo por ow operas bgitenee Expresses, a = ‘Convero de upos em expresses - oi Espagameatoe partes, “este do Capito. Sumario vil a “ : ot Ws aninhaos. ~ oe a) Aexcala feet co Clic o ‘A insueao switch, = = ee Instragies switch ania. Tene slo 31 Consiroa um sistem deat Jains TB 0 0 - Co 1 ‘texas ving g - 16 Panes ausents i ” O lgo init 1% Lagos sn cone 1” DDeclarundovariveis de contole de lago deat G0 ago ft snes 1D » wo a 3 O Lago for melborado Sn ago While nnn aba Otago do-it ‘Tente Isto 3-2 Methore o sistema de ajuda Java an Use beak pra sir de um Leo ° ‘Use break come wm forma de 10 - Introdugio u classes, objetos ¢ métodas, Fndamentos das les Forma geval de uma classe oo a Detinitd ua cass Como os objets so crises. Av varied de efereni Meteo ‘Ailend um método& cise Veil. Retormando de 1 MEOE0 Reta mwa sando pares... - "Adiionando um mdi paratizad Veblen vrvsrssosnnneen 1H ‘Tente fo 4-1 Crie ums clase de ajuds Consors. = ~ a CConsruores parametizados. Ln " ‘Adiconando um consrutor case Vehicle m Ooperadoe new fvsitAb0 evs Clea de xa “ “ O metodo finalize} vill Sumario Tene be 42. Dement sen deo ag. A palavrchave this... co “Teste do Capito. a mene Mais tipos de dadas € operadores women 132 Arrays. " : “Arrays unidimcnsionals. ‘Tente sto 5-1 Classfique um array. Araysmuldimensionas "Aeniysbidimersonsis Araysirepulas.. “Arrays des ou mals dimensdas Inicilizando arays mulidimensionais Sloane sera pr a delaras de rays 2 iret ' 43 144 “Tente lta 5-2. Uma clawe Quede. 146 (0 ag fr dees for 2ath 150 rand po arrays mulimensionss - 155, pind lao ferme - 154 Swings ns ecemttreertrcennune: 128 Consrindo sings ae saan: 13 Operando 0m stn. | “Amys de rng “ 158 Stings no pir er alters Comune 188 ‘Usando um sing par somtole um instr switch von 160 Usando arguments de ina de COMIN. nsnesssnninnnnnsnnsns WL Os opaaderes bis 162 ‘Os operadores bitwise AND, OR, XOK e NOT 163 (5 operadores de deslocament aan 1 Arbuigesaeviadas bitwise ” “Fente sto 5-3. Ui clase Show Bits nvnsennnnnnnnnnnnmninnnnnene 169 © opeaon - “este do Capito an ‘Verifleaso minuclosa dos métodas ¢ classes... ‘Contolando 0 acesso a membros de cast. ‘Masifeaderes de acess ds linguager Ja. “Tente lta 6-1 Melhore a clase Queve.. Passe objets para 0s métodas ‘Como or argumentoe x50 pasado Retornando jets Sobnecarg de mins one Sobrcarepando consrwoees ‘ise i6 arecmmemo cantina i urn RECUEBO ven : atendendo or membros enteos ‘locos erios. Tente Isto 63. A classiiagioripida Introdugo 3 lasses ainda itera. ‘Varars arguments em quantdade vail ‘Aspecosbiscos dos vara. . Sobrecaregando mdtados args ‘arars ambigvidde, . Teste do Capitulo 6 2 Horanga.. Aspton seo de beri [Aceswo a membros ea her Conse ering. Usando super para chammarconstruores d superclass. an Usando super pra cesta membros da supeelsse a ‘Tente Isto 7-1. Estenda a clase Vehicle. Ciando uma hierargus de véros nes. ‘Quando os consrtores So chamados?.cnrnnnnnen Referéncias da superclass abjcos da subclass. a 9 Sobreposigao de mes... ramones OS “Método scbtepostos do supote 20 politi. 26 Porque sbrepor meds? (mann 248 ‘pcan aceon emo TS =e oe 208 Usando classes abs anc sand fina 256 A pilarachave final inpede a sObrepOIG0 ono nnonnnennnnnne 25 ‘A palave-chave final impede a herangavcacccncennnsnennnnnan 256 ‘Usando final com membros de dads Alas Objet. “este do Capito 7 Pacotes ¢Interfacsmnseinininnnininnnninirnnnmnnnnne 260 Prodi isssascicstics mAnC AST Define um past "Encorranopacates € CLASSPATH. Exempla breve de aot Pacotes eo acento a memo Exempla de acesso a pacote Emendendo or memos poteidoe Inport acces Biblioteca de classes Java ica comlda em pots, Inerfaces Implemeatandointeriaces Used efertcis de tetas FFunimenios ds moos odio. a ‘Un exemplo mais pico de wm metodo padi. nreoa Problema da rang rtipl. nore Use mst sttc em uma interface s-sovsevnononn ‘Considrages nai soe os pete e nterace, “este do Capt 8 nn ‘Tratamento de excegdes ierarguia de exceges FFundamens do tratamiento de exc ssn snd ye etch ~ “ Bxemp de exceg sips aaa ‘Consequénias de uma exceg40 nia captada ones ‘Bceghespemitem que we aero nomen Usandovirias nstruges cath Capturand excegoes de sobelsses, locos ty podem ser aniahades [angando uma excegae Relonando uma exec xame mais detathido de Throwable Used fay a Usando throws “Tres recusos das excegiesadiclonadonecenemente Brcoges inter da linger lava. ‘Crna subclones de excep WO Java baseado em faxes. Fluxos de bytes e fluxes de earacteres accanaiasumansiaan 2S ‘Chasse de luxor de bytes. = ‘Cases de us de eaitoes. Fiuxospredefinios. “ sano os fanos de bytes. Lemdpacrirda Go conole uiciundiidinsiin diate Grivando asda do comole Semana a endo ¢ gravandoarqives usando faxos de bytes. 38 ‘Gedo eres em GHD atcantteionnenny A (Geavando em wm argv eae 382 Feehan antoaticamente um argues ana 384 endo ¢ sravando dados bins. ns) a ‘Tente Isto 10-1 Utlitévio de comparagio de arquives. Arquivos de acesoaleatrio.. Used ion basen em earctres danger lava, Entrada do console com o usa de fuxos de carter. Sai do console com o uso de Naxos de carter. Wo de arquivo com ous0 de uxos de arctan ‘Usa om FHEWite nn a ‘Usando um FileReader a ‘Usados enapsuladores de ips da Ingseen a0 “Teste do Capitulo 10. teeters 3 Programagio com Vtias threads wwusnnnnnninsnnnnnnnnns MOD Fundamentos do uso de wii treads. ‘Xcasse Thread ea nerace Runnable. (Chandu 8 “Algamis melhoras simples ‘Tente Isto 11-1 Estendondo Thread. Cian vias threats. vo 7 7 DDeterinande quando una ead teri cvnrwsnensnsnennewncn 318 Proidades das head e a ame 381 3a A nstrgiosyehronize ono 38 Cement ted com eo), wale). moon SP -emplo que usa vat) notify). : siamese SEE Suspendendn reomande «encerando threads 0 ‘Tente Isto 11-2 Use thread principal. Teste do Capito Meee EnumerugSes, autoboxlng, Importagio esiticn € anotagBes.. mumerages. undamentos da enumera...n oo [As eaumeragdes Java Sto ips de ase Maho valus()evalusO4() CConstrutores,métodos, vardeis de insnciae eaumeragies. Das resrgSes importantes, Son Emumeragées beam Enum... Co Tete Iso 12-1 Serr ota por mpd mn secre $09 Auton ot — le Encapuladores de pn au Fundamentos do autobonng.vesessssrsnmnnmnnnnnnninninnonnnnnan 417 Autoboxing © os metodes. a ‘Auloboxing/unboxing acme em expestOE cnn moan AD ‘Aadvertnca ss oe 420 xl 43 44 Sumario Import ett nnn ii Aa Anotagoes(metadados). vnnnrnnennenns ABM ‘Taste do Capilo 12 - I a6 “Tipo genéricos Fandaneno os tos pens. Exemplo simples de gensrico co ‘Genéricos funciona com ios de retertcia. ae ‘Tipos gencticosdferem de acordo com seus argurentes depo oven 484 Classe gendica com dos parimet Os 8 P0489 fom gr ums ese esa. fe 836 “ipos limita. oonsmnnnnnnnnennnnnnsn SOI ase Usandoarpomenios cling nee vnnennsonnenncnn, 40 Caring LiMit$ an anonsniennennnn on 48 Metodos genéscos as ‘Constrtres genic. a8 Inrtacesgonsrics. a8 “Tente Isto 131 Cri wm - 481 “pos bates eigen ernie vo ASS Infertacia de ios com 9 operado osang0 nnn 48 Eras se : "hitman 459 Fars de ambigoidads — 460 Algumas resis dos pearios. fascia ABl aries de ips eo pom se insta, = 461 ‘Restriges aos membros esis. estrioes aos arays penis. “ ast estrigoes a excepoes genes 46 ‘Contiuando sex estuda sate penricon Sandel “Teste do Capt 13s Expresses lambda ¢ referénclas de método... Tivodugso is expresses lamba... Fundumento das expends lambs Interfaces funciona. As expresses lambda em ig0.0. Expresses lambda de loco. Interfaces funcional pendent “Tente Isto 14-1 Passe uma expresso lambda como argumento [Expresses lambda ea captura de varies... [Lance uma exceydo de dentro de uma expresso laa Referéncias de metodo a Referencias amd sieves ic A Referéncias «mods de instil 288 Referéncins de constr. an Interfaces funconas predefiidas. 495 “Teste do Capitulo 14 — 496 Sumério _xill 15. Applets, eventos topleos divers. Aspsctos isos do pe ss Organi cements escnis Jos ait “Argue do apps xquelto de applet completo Inatesoeencemamens So ie. Solita ‘Meéiedo update) Tete Isto 15-1 Ale debian sine Usando ajanela de stats. Passandoparimetrs pars apps. classe APE nnn ‘Tratameno de eventos Modelo de delezagto de events. Eventos fv Fontes de even nat nn 316 Ouvints de eventos S16 (Classes de eventos nuance $16 Interfaces de ovis de eventos vnsnnnvnvnnnnvennnnnnnen 317 ‘Usando o modelo de deegago de evens... = Sooo 18 "Trandocvents co mouree de seus mvimenion. vss S19 Applet de evento dé mouse SIMPL ener, $19) Mats paavens-chave B¥- a ST se Mouificadores transient Ola. snssncnncnnnsennnennnn 329 n6n920f eee sit ann Métados natives. ‘Teste do Capito 15. 16 Introdugio & Swing non (Origen ilosota do desin de Swing. nitrites Componentes contineses. “ Compeneates Contineres Pines do coniine de nivel superior oo CGerenciadores de lite - ‘Um primo programa Swing simples. ii Fens ctpl de Sting iit ia ann Use Baton, ee maaan Trabae com FTextFild Chie tm SCHEKBOE....svvsvnnsnnvnnnnnnnnnnnnnnnone Trae som Sisk. : “Tenteleto 161 Uilitdrie de comparnsSo de arguivs bascado can Sn Use clases intermasannimas ou expesses lambda para trata evenos. Chie um apples Sing. - no = “Teste do Capitulo 16. xv AT Introdulo a JavaFX, Sumario ‘Conccitos Bisco de JavaFX. (pcos Java. 7 AS classes Stage e Scene - Nose grates de cena. Laine = ‘A clase Application eos metodo de cel Yl Iniciando um aplicatvo avaFX 2 squeleto de pleat J2¥AFX we ‘Compilandseexecuando un programa fava A thread do aplicaivo Un contole JavaFX smpes: orl. Usandoboldese eventos Aspectoshiscos de Eee = Introdugao a0 contol de Bota. a Demonsiando otitameto de eventos € both avs Mais sconces JavaFX 7 Checkon.. “Tene bt 17-1 Use oestde indeterminado de Checkbox. LinvVew.. ‘Tented. Tnurodugzo ans fets e wagsformagoes. Efe i “Trasformayoes.. oo emonsiand os efion ernst © quehi mas? “Tete do Capitulo 17 Respostas dos UsteSniminnnninninennnnnninnnninnnannn 1 Capita: Funlamentos da lingsager fv. sac ‘Captao 2:Introduo as tipos de dos © operadores nn ‘Capito 3: Inrugtes de contoe de programa - (Capt 4: Inrdugi is clases, objets metoos ‘Capito 5: Mais tipos de dao € operadores jaaaroan ‘Captlo 6: Veriicagao miauciosa ds métedos¢ classes. Capt: Herangs : (Capito 8: Pacoteseiterfaes ‘Cape 9 Tratamenta de exces. ‘Capito 10: Usundo UO. ‘Capita 11 Programe com vrs thea. ‘Capita 12: Equmeracoes, sncbecn, inpatients. ‘Captlo 13: Tipos genios.. i ‘Capita 14 Expresso lambda reericia de mato, Capitulo 15: Applets, evento epicos vers, (Captuo 16: Ineducao a Swing. ‘Capitulo 17 Inoue a val, Suméio xv 8 Usando coments de documenta da ngage Ja, exception. (inkertDoe| (ink on [ @linkplaa (value) = : @ version Forma geral de un coment de documenting (que javadoe gerbe Fiemplo que uss coments de documento Indice. Ovete deste livro éensinar os Fundamentos da programayao Java, Ele wsa uma sbordagem paseo a pass complementada por vriosexemplos, ees © proje- tos, emo exigeexpergnca prévia em programasio.O livre comesa comosaspectos basic, como a compilagioe execu de wm program lava e, em seeds, disete as palavra-chave, os recursos e a extrtis que Formam @ miclen da inguagem. ‘Yoo’ também encontrar alguns dos recursos mais svangados de Java incisive & programagio com vias threads eos por genicns. ma intodiso 0 fan tmentos de Swing Java conc o liv. AD terminar, woe ter uma compreensS0 ‘lida dos prineipios bisicos da progrimasio ava "Antes de comecarmos.¢ importante mencionar que ese livro€ apenas um po to deporte, Java mais da que apenas os elementos que dafinem a inguagem ~ela também inclu biblioteease ferramenta extensas que ajudam no desenvolvimento de programas. Para ser um programador Java de primeira lina, ¢ preciso dominar também esas Sreas. pss terminarolivro,voo® ft o canhecimentonecessrio para se aprofndar ems todos ox outros aspects do Java A evolugao de Java “Apensalgmasinguagensrfommlaram de mans fandamental essa da Nek psa ic eee dam pores tiga agate {issn claro qo extmes flan da inguagr ava, No €exagers cer {veo lanameno original de Java |Dem 1985 pela Sun Micronytens, Ie. caso Hi pveigts ot perp, Eas rrchght raetheroe Sr mei el Introdugio__xvil ‘Web tomando-a um ambiente atament intrativa, Ness proceso, Java defini um nave padi no design de ingagens de computador. Com o anos, Java continaon crescendo, evoinde ¢ se redefinindo,Diferen- temente de muitas ouraslinguagens, que so lentas na incorporasto de novos re- cuts, Java com fequsacia est na dianteira do desenvolvimento das linguagens de ‘computor. Uma rao paraiso € a cular de inowagio e maanga que foi sriada 0 eu redor. Com resultado, Java pasion por wirasatalizagies ~algomas elai- ‘mente pequenas,outras mais signficativas. ‘A primeira grands atalizach de ava foi a vets 11. Ox rcusos aicions- ‘ds fram mais sigificativos do que se esperaria de uma verso *.1", Por exerplo, Java 11 adicionow muitos elementos de biblioteca, redefiniy a rancira come os ‘eventos so tata e reconfiguro varios recurso dablioteca | )original ‘A prévima verso de grande porte foi Java 2, em queo 2 indica “segunda gern- 50". Acriagio de Ja 2 foi um eveno divisor de gus, mareando oeomege da “era ‘modem’ da linguagem. A primeira versio de Java 2 taza o mimeo 12. Iso pode parecer estranho, mas ozerou porgue,eriginalment, ole se refevia 20 mimeo de ‘verso interno das biblionens Sav: mais tarde foi genealizado para se erie ver- 30 incr, Em Java 2, Sim rium novo pacote par o produ Sava, chamando-o de J2SE Java 2 Platform Standard Edition), os nimeros de versio comecaram a seraplicados a esse prin, ‘A peimna aualizasto de Java foi J2SE 1.3. Essa verso fia primeira grande stualizao de Java 2 crginl. Ela aumentou 3 funcionaidade existent e“integrou melhor” o ambiente de desenvolvimento. O laamento de J2SE 14 melhorou ainda ‘maisa inguagem. Esa verso continu viios recursos novos importates, inclusive excegdes encadcadss, HO (inputourpot, ou enruafsalda) bascada em cans © a palava-chave asert. O langamento de J2SE S criow nada menos do que um segunda revolugdo Java. Ao conririo da tora das atalizagies anteriores, que oferece melhorias ‘importantes mis increments, 2SE 5 hasicamente expands « escapo,o poder € 0 lance da linguagem. Para der wna ideia da magnitude das mudanjas caused por TSE 5, eis uma lista doses prncipais recursos nova queso discus neste vo: © Tipo Genéricos © Aatoboxinghanboxing + Bnumeragoes + © ago for methorado, de estilo “foreach” + Angumentos em tamanhovarvel (varargs) + Imnportagio exten + Anotagtes ssa ndo & uma lista de pequenos ajustes ou atualizages incrementais (Cada item da lista representa um grande aeréscimo a inguagem Java. Alguns, como os tipos genéricos, lage for melhorado e os varargs, introduziram novos clementos de sintaxe. Outros, como o autcboxing eo autounboxing,aliraram a vill Introdugo scmintca ds linguagem. As snotagdes adicionaram uma dimensiointeramente nova A programasio, A importincia desses noves recursos se reflete no uso do nimero de verso °5°, O prénimo nimero de verse de Java normalments tera sido 13. Noentanto, = novos recursos eram th importantes que a passage de 14 para 1.3 no paocia ox pressara magnitude da mudanga. A Sun eno prefer aumentar o nimero da versio para 5 como uma maneira de enftizar que um evento maior eta ccorrendo, ea fot nomeada como 12SE Se «kit da desenvalvedor foi chamtada de IDK $, Porc, para mantorcoeréncia,aSun decid usar 1S como sou nimero de verso interna {que também &chamado de mime de versdo do desemolvedor. OS” em DSE 5 € shamado de miimere de verado do prodato. 'A versio seguinte de Java foi chamada de Java SE.6.¢, ovamene, a Sun de- cidia mudae nome da plataforma. Princno, 0 “2” foi removido, ea platforms pssou ater o nome Jai SE; 0 nome ocial do produ ficou fase Platform, Stan ‘dard Edition 6, enguamto 0 kit do desenvolveder Tava ficou SDK 6, Como no J2SE. 5,06 em Java SE éo:nimero de versio do produto. O ximero inten da versto do ‘desenvotvedor €1.6. Tiva SE 6 tome como base J2SE 5, alisionando melhorias increments. Fla io adicionou mires recursos linguagem Java peopramente dita, mas aperfei- {901 a ibliotecas de API, adiciono iiriospacotes ovoseafereceu melhoas no tempo de execugio. Também pussow po vrits atualizages durante seu longo (em termos de Jaa) cielo de vida, com muitos upgrades duante o percurso. Em ger, Java SE 6 servi para sliificar ainda mais os avangos citos pelo J2SE 5 'A peGrita versio de Java fol chamada de Java SE.7, com o kit do deseavol vedo Java chamado de IDK 7. © adimero a versio intema € 1.7. Java SE7 foi primeira grande versio de Tava desde que a Sun Microsystems foi adguirda pela (Oracle. Fla continha muitos recursos noves, inclusive acréscimos sigaificativos & Tinguagem e ts biblitccas de APL. Alguns dos recursos mais importantes adicion 1d por Java SE 7 foram os desenvolvidos como pate do Project Coin. O objetivo td Project Coin era identifica vrias poquenasaleraies feiss ma linguager qu Seriam incorporadss 20 JDK 7, que incluem © Objeto Steing pode controlar una insrugo switch, © Litera intitosbinsrios. © Sublinhados ea liters numérico. + Instugio try expandida,chamadatry-with-resourcer, que dé suport 20 ge renciamemt automstien de recures, © Inferncia de tipos (via operadorfosango) na constragio de uma instincia ge- tea. © Tratamento de excegGes melhorado, em que duas ou mais excegSes podem ser eapturadss pola mesma inswucto eateh (multcatch),e melhor verticagio de tipo pan exoxgdes questo relancadas Come voeé pode ver. ainda que os recursos do Project Coin tesham sido consi- derados poquenssalteragdesnalinguagem, seus beneficis foram muito maones do Inrodugso_—_ xix «que oadjtivo “pequenas” suger. Em especial, a instrughotry-with-zesources feta ‘rofundumente« maneira como uma grande quanidade de egos € esr. Java SE8 ‘A versio mais recente de Java se chama Java SE'8, com o kit do desemolvedor Java ‘hamado de IDK 8. Onimero da versio itera é 1,8 JDK Srepresenta umn upgrade ‘state sigificaivo na linguagem Java devido incluso de um novo recurso de rane alcance: a expresdo lambda. O impacto das expresses lamba ser profun- to, alterando a mancira como as solugées de programagdo sto concebdas¢ como © ego Java 6 eseio. Nesse proceso, as eypresses Tamds podem simplificat ‘reduit 0 volume de ciigo-fote necesito para eriagio de certasesruturas. A inclusdo das expressoes lambda também gera um nove opcrador >) € um novo ‘lemento de sntaeasrem adicionados&lingagem. As expresses lambda sjudamn sc gu oie no ngage igo an pera es ‘Além das expresses lambda, JDK & adiciona muitos outros recursos novos Jmportantes. Por exemplo, a paris de JDK ¢ possivel defini uma implement ‘0 pao de um mésodo especiticado por uma interfce. JDK 8 também inca © suporte a JavaFX, o novo framework de GUI da linguagem Java. E esperado que tem breve JavaFX descmpenhe um papel importante em quae todos os aplialivos Java, scabando por substitu Swing na naira dos projetos bascados em GUL Em ‘dima andtse, Java SE 8 é uma versio importante que expande profundamente os recursos da inguage eaters a mancira come o edi Jv €esrito, Sens efits ‘eri sentidos em todo 9 universo Java durante muitos anos, O material dst livro Tot atalizad para Java SE, com muitos recursos, atualizagies aceéScimon novos indica em toda a sua extenso, Como este livro esta organizado Ee vo apesent um nivel de ifcldadecescenc cm qe ena ego tem como tase uancior. Cals um don seus 17 caps discus um expect da ngage ine Ronin ede piqued wirebond pecan gaorlinpcie eld got, Principais habilidades e conceitos Cada capitlo camera cam tm conjunto de abildades que wood pronders. com um teste que pormit testa se chscimento. As respos- tas esto no Apendice A, Pergunte ao especialista Encomrun-s esaladas no ivr css expec chamades Pergune a expeci- lista. las contém informasses acionais ou comentarios interessantes sobre ut ‘pico © usam um formate de Perguna/Resposts, 2X _Introdugao Tente isto Cada capilo conten umn ot mais clementos Fete isto sto projtos que mostra como aplicar o que vc® estéaprendenda, Em muitos casos, so exemplos reais que ‘eed poder usar com pono de pata para seus prprios programs. Nao é preciso experiéncia prévia em programagao Ewe lvo no exgeoxperitcia peévn em pogramagto. Logo, vocé pode uo ‘mesmo se mina program. Se iver agua experiencia anterior em program (de. podecéavangar umn powc mas ripide. Pore embne-e de qu Jove dere Sim isos aspectos importantes de utes lingoagens de programagin populares tssencil nib ir concunbe apessadas, pt, a meno prs porate experienc ar itr cuidaosae recomend, Software necessat Para compilar execute todos os programas dest liv, vos precisa do dim kit ‘do deservolvedor Java JDK. Java Developers Kit) da Oracle, que, quando est texto {oiexeio, rio IDK 8, Esse € 0 IDK de lava SE Intra para cbtenso do JDK. Java so dadas 00 Capitola 1 ‘Se voe®estver usando uma versto anterior de Java, também poderd usar este Tivo, mas no poder compile execuaros programas que usr 0s recursos mals recentes da linguagem, Nao esqueca: o cédigo esta na Web Lembre-se de que o fdigo-fte de tados as exemplos © projetos deste Livro ext Aisponivel em www grupoa.com br. Cadastre-se gratuitamente no site, encanre © ‘acctse pigins do livre por meio do campo de busca clique emt “Conteido Online” prs fazer download dos egos. Agradecimento especial Fago um agadecimeno especial # Damy Coward, editor teico desta io Dany waalhou cm nits de meus ioe sus colo, iki sugstes seme pre Ema le me vlay mtomprcinion Capitulo 1 Fundamentos da linguagem Java 2 eva para inciantes Principals habilidades e conceltos © Conecer historia ea Filosofia de Java © Entendler a contibuigo da linguagem para a Internet © Entender a importineia do bytecode © Conhecero jargao Java © Entender os prineipios bésicos da programagao orientada a objetos © Criar, compilare executar um programa Java simples © Usa var © Usaras instrugdes de controle if efor * Criarblocos de cédigo. + Entender como as instrugbes sto posicionadas, recuadase finalizadas * Saberas palavras-chave Java Entender as regras dos identificadores Java svango da Intemet e ds World Wide Web rformuloa a computagdo. Ants da Web « panorama ciberdticn era dominado por PCs isclados. Hoje, quse o- dos os computadores esti conectados & ateret. A prépria tne fo transfor ‘mada ~originalmente, oferecia uma manera comveniente de compartilhar arquivos © informasoes: hoje, ¢ um universe de computagio vaso e distibuide. Com essas ‘danas, surgi uma nova manera de programa: Jaa, Java € a principal inguagem da Inernet, mas mais Jo que is0. Ela revo cionou a programagio, nudando a maneira de pensarmos tanto sobre a forma quanto sobre afngdo de um programs. Atualmene, rum programadorprofisional exige ' abildade de programa em Java, tal 6 sua impertncia, No decorter dese Ivo, ‘voed aprendet ts asides necessris para domi essa habilidade. (O ebjetivo deste capitulo ¢apresenté-lo a linguagem Java inclusive i sua his- ‘Gra, ilosoia de design © vros de seus recursos mais importantes. Sem divi, ‘mais diffe no aprenizado de uma lingigem de programario 60 fata de nenhum clemento exist isoladamente, Os componeates da linguagem trabalhara em con junto uns com os outres,e ssa interatvidade tem destaque especial em Java. Na ‘verdade, ile discutir um aspoeto de Java sem envelverouteos. Para ajudar& resolver esse problema, o Capitulo I fornece um resumo de vrios recurs Java, entrees a forma geral de um programa Java algumas estuturas bisicas de controle 0s operadores. Ele nfo entra em detalhes, mas se concentra nos conecitos comuns ‘qualquer programa tava Capitulo 4 Fundamentos da linguagem Java 3 Origem da linguagem Java A inovagio nas Tinguagens de computador éimpulsonad por dois faxes: melas stare de proramarc ltragies o ambient de computagio. Java nia ¢ excess Conseuia pan do ico legado herdaio das linguages Ce Ce, Jaa adciona ‘melorias eecursos que elle oestado sal da ste de programas Respondend 8 asenso do ambiente online, aTinguagem Java oferece recursos que omizam a rogramagio pars uma aqutetirsaltamentedisida ava fol conecbida or Jamcs Gosling, Patick Naughton, Chris Wan Ea Franke Mike Sheridan na Sun Micrsysen, em 1991. No inco, a linguogem se hata “Oak, mas fi renomeaa com “Java” en 1995. Sarpreendentement, a ‘notvago oil para crigo de Tara ndo fa Intmet A pincpal oivagio {oa necevsidade de uma lingoagem indspendenc de plataforma que pudesee set ‘sam crag de software emi em vos disposos eens dome cos, como tomas, fomos de micr-ondss ¢couboles remotes, Como ea de 5¢ sports tips de CPUs sto usados come controladores. O problems cra que {on pce) a mato ds lingungens eva prolapse compa pra am de noespecfic, Por exerpo,easiere Cos "Enbora foie pssiel compl um programa C+ pra qus to po dé CPU, ‘sso queria um comyplador C++ complet destindo sums CPU expecta. O pro ems, no encanta, ¢quc eave demorado cri compares. Ei na emai de circ uns slugo mel, Gosling ¢ ous raalharan em uma lnguage com onabilidade ote patformas que pss prods cigo pare ser cxcitado cm ‘ins CPUs com ambints cere, Ese esfogoacabo evando ciao de Jv ‘Mais ov menos ma eposaem ue os dues de Java estar endo xb sos sams um esundo flor muito importane que deserpenhara papel cri 0 Faro da lingoagem.E claro que ea segunda fogs fo World Wide Web, Se 4 Web no etveiae se formando que ao smo tempo em que Java stv send ‘implementa aver la continua send una lingua ci orem obscura para 2 programagin de wenstioselernicosdoméstices, No entanio, como srgimento 4a Web, Java fs impalsonada para intra do design das nguagens de comps tedor, argue « Wb ame preciso de programas pores ‘Amara dos progrrtaores arene ceo em sas carreins que a ei de programas pores a0 mesmo tempo, desejivel eilsra. Embora a ata por ‘unt mancira deer programas ficients ¢ pores (independcaes da platforms) ‘je quae to antiga quanto propia diciplina de programas cla fi denads con seguro plano devidoa problemas mais ugentes. No enn, com 0 advento da In tect da Web owe problema da praise nensificn. Afra Ineret {compost por um univer dinerifeadoedstsibldopovoado por muitos ios de omputaores, sistemas operaionase CPUs. © que tita sido um problema iritante porén de bana priordade foro sma ncesidad urgent, Peto de 1953 fico vio pars ox membros da equips de design de Java que, com fequéncia.os problemas de porabilidade encontades ma eriagio deeiigo para congbaoresembutdestambem so encontads quando tentamos tar ego par a Inlet. ssa percep fe 0 foc de Fava maar os "enue clctrnicos domestics para a programa na aterct Log, embora 4 {agatha iil tena sido grad pelo deejs por ia imguagem de programasso 4 eva para inciantes independente da argutetra fo a Intemet que acabou levando 80 sucesso em larga excl de fava Qual a relagdio entre Java, Ce C++? Sava ext dretamenerelaionada aC ¢ C+. la hea a sntane ds Knguagem C. Seu modo de objetos¢adaplado de C+. Orelaionsment de ava corn Ce Ch mportant or vrs rates. Em princi Inga muitos pogramadoresconhssem assntace iGo. o facia um programador CiC+« aprender Java e, da mesa forma um programadoe Java aprender OC "Em segundo haga, os projctinas o “riventaram rods” ls einara sin- da mais um paragon de pogramagio 6 amonte hem sce, A era madera tha programagio comeou cam C:Passou para C++ e depos para Joa, Ao hea ¢ te bea nese rcs Iga, va Forece tm aint de permis pero € logicamentecocrnt pe sproveta 0 melhor da pasado eadiciona nanos rciros ‘quero polo ambiente online aver o mais importante sea gus, devido ae semelhansas C, Cree Java dfinem unt erst conceit comm pas 0 pro rumadorproissonal. Os programadore ao cvontam grandes diferngss quando passa dé ums ingger para ota, (Urn cs Gloofias de design centrist om C quanta em Ca de ue 0 programador eats no comand! ava trem hea ss loin, Excel pls ex tigoes imports pelo ambicate da Interne, linguagem dao programadorcontle tot Se vod progromar hem, sev programas rfletito ito. Se progrannar mal, cles am elt, Ex outrespaevras, Java no 6 ingen prov de falas. E uma Fngeagem para pogramacoresprofsioni. ‘A linguagem ava tem oto tribute comum com C ¢ Co foi prota, ‘estado aprimorada por programadresiseridosno mercado de aba. fama sggem haseuda nas neces e experincion das pesto ue a poeta. "Nao ha mancira melhor de prodcr ua inguagem de programasaoprotsioal de ala qualidade vido is semelhangas entre Java C+, principalmente seu suport progre smagio orion a bjeton &tenlador pensar en Java como a verdo de C++ para Slnterne”- No ent, nso sera um ero Java em deren rican lesieas ‘ignifctvas.Emora tena io inflansiads por C+, ns uma verso melborada ‘wa Tinguager. Por exemplo, no &compativel com verdes anteriores oa urs dle Cs, Claro an semethangs com Css sits me v0 for pga dle C+, va se sentir ea cass com Java, Ouro posto: ava nao foi pojetada para suhaioitC4 oipenjetda pare esolverdetoranad conned problemas; + {oi projet para reaver um conju de problems diferente Ela sid coexist ‘ho por itor a Qual a relacao entre Java e C#? Alguns anos aps criagao de Java, a Microsoft desenvolve a linguagem CH. Isso € importante, porque CF est inimamenterelacionada a Java. Na veedade, muitos dos recurs C# tm equivalentesdirtos em va. Tanto Java quanto C# compartitham 1 mesma sintaxe geal de estilo C+, dio suport a programagio distrbuidae ul am o mesmo modelo de objetos. E claro que hi diferensas entre lava © C8, mas & Capitulo 1 Fundamentos dalinguagem Java 5 paréncia” geal dessus linguagens€ muito semethante Se v8 conhece C4 srt ppriclarmente el aprender Java. Da mesma forma, se estver em seus plas usar CC, seu conhecimente de Jai ser til ‘Dada a semethanga ene as duaslinguagens seria natural alguém perguntar: CH suber’ Java?” A resposta & nto. As linguagens Java © C# foram oimizadas para dois pos de ambiente de computa diferentes, Da mesma forma que C++€ Java coexist por muito tempo, o mesmo corres com Che Tava, Contribuigdes da linguagem Java para a Internet ‘A Internet judou aimpulsioner Java par a diantira da programas e, por sua vez, Java tove umn efeitopeofundo sobre Tnverne, Am de simplificar a programagio al na Web, cla inoveu com um tipe de programa de rede chamad applet, que mni- ‘du a mancira do mundo online pensar cm conte, Java tam resolve alguns ‘dos problemas mais complicados associados Inte: porabilidade e segurangn. Exuminaremos mais detalhadament cada um dees Applets Java ‘Um applet ¢ um ipo especial de programa Java projet para ser ransmitido pola Interne exceutadoautomaticamente por um navegador Web compativel com Java. ‘Alm dso, ele baixado sob demanda, sem ncnhuma inieragio com ousuisi. Seo ‘sudo clcarem um link que contém um applet, esse ser automaticamentebalxido « exccutado no navegador. Os applets si projtadas como programas pequcnos. ‘Nommalmente, so usados para exibirdadosfornecios plo server, rat entradas ‘do usuério ou forever fungbes simples, como uma ealuladora de empéstinos que «6 execu localmente em ver deo Servidor. Bisicamente, os spples permitem ‘qe uma funcionaldade sea movida do servidor para o lente ‘A igi do applet mudou « programacio na Intemct porque expands uni- verso de objets que podem se mover livemente no ciberespgo, Em sera hi das arandes categorias de cbjeos que so transmitdas ene o servidor eo cliente: infor- ‘agdes passvas e programas atves. dinmicos. Por exemple, quando voc$ I seus ‘emails, etd viswlizando dados passivos, Até mesmo quando baixa tm programa, seu céigo ainda slo apenas dao passivos a vooe executé-o, Por out lado, 0 spplet um programa didmico de execugae automatic, Esse tipo de programa én agente aivo no computader client, mas ¢inicializado pelo servidor. ‘que esses programas dinimicns de rede so tio deseveis, eles também ‘@m que evtar problemas sérios nas eas de seguranga e portabiidade E claro que lum progrima que ¢ baixado e executado aotomaticamente no computador cliente dove ser impo de causa datos. Ele tam deve poder se excovtado em vrios ambientes diferentes e em sistemas operacionas dstntos. Como voce ver, Java resolvou esses problemas de manna mite eft elegant, Examinremoscos dois problemas com mais detalhes. Seguranca Sempre que baxamos um programs “normal” estamos os atiscando,porgue © «cio baixao pode comer vit, eva de Trot ou OUUO cio danoso. A pate

You might also like