Vous êtes sur la page 1sur 69
SAMS Ha tényleg csak a vdlaszokra kivancsi 24 egyszerti, egyoras lecke J ava ! Rogers Cadenhead sae KISKQ\PU A szer26401 Beene eee ee ete t etre recta ears Mi Bevezetes ooo veveveeeeeeeeveveves ETE | rész Az elsé lépések 1. 6ra Hogyan valjunk programoz6vé? 3 A programozési nyelv kivélasztd 4 A szimit6gép utasitisa feladatok elvégzésére beseeeees 6 Hogyan mak6dik egy program? 0... 8 Hogyan nem miikodik egy program? oo... 000060 ceceeeee eee seeeeeeeeresee eed) A kOvetlez6 megill6: Java ooo ccc cece se eveeeeceseeeseeeeeesereeeeserereeesd) Hivatalos dokumentiicis we weet “ Gyakorat:Java-fejlesatbeszk6z telepitése ... ol Osszefog wee bees : u Kérdezz-felelek oo... 00. locicccesosescvetessseesesevrenseeeee +2 TSMEUES eect ee eeeeeeeeeetet ences beter BB Gyakorlatok oo wees ved 2. 6ra isé programunk 15 Mi sitkséges abhoz, hogy programokat irunk? . . 16 A Saluton program elké fieeeeeeeees vetted? Kezdtink hoz oo... wees : veeeeelT A class ut ereeeeereeee 18 A main ulasitis szerepe 18 Azok a frdnya kapesos zirdjelek + Feet eee trees eB: Informéci6 tirolisa egy valtozbban Fe eeerere ID Valtoz6 tartalménak megielenitése occ eevee ence eee e eee 20 A kész program mentése .. cen +20 A program leforditésa osztily pa Gyakorlat: Egy Java program futtatisa 6.6... a Osszefoglalis . ma Kérdezz-felelek oo. eeeeees 135 I6MES eee eee a Gyakorlatok ooo. 28 3.6ra Jévai vakécié 29 Azels6 megilld: Sun Microsystems... 0.6... e cece eeeeeeeeee cesses 30 {A Java rovid Woriénete eee eer ceceeeeeeeee BI Iskolba a Javaval me : 233 Bbéd a JavaWorldnél ... feteeees tenes rere Figyelitik az eget a NASA-Nfl 2... vente oe 37 Uzletre fell ere eeEEEEEEECEEEeeSS beer eee BB Kérjink Gimutatdst a Gamelani6lt 20022239 Gyakorlat: Kalandozis egy mésik vilighan. Osszefoglala . Kérdezz-feleleke Ismétlés .... Gyakorlatok . vi | Tanuljuk meg a Java programazési nyelvet 24 6ra alatt 4, 6ra ‘A Java programok makédése 47 Egy alkalmazas elkés : boeeeeee coo ey Paraméterek dtaddsa_ alkalmazésoknak . . noe 249 A kisalkalmazisok alapjai Paruméterek ftadisa kisalkalmazisoknale re oo 58 Gyakorlat: Kisallelmazast fureaté k6d megtekintése ooo. seve ec eee esses es 58 OsszefOglalds 6... cece cesses ve seeteeeeeeeseeees cee 56 ndezi-felelek 2... eeeeennnen : : 56 Isméllés eee ween te eee teeter ene tees se 57 Gyakorlatol eee... Fe eee e teen ttre cect BB WL rész A programozés alapjai 5. 6ra Adatok térolésa és médositésa pregramokbon 61 Utasitésok és bifejezések . 6 Valtozdk tipusinakk meghatirozisa 62 ig€sz és lebegOpontos szimok 63 Karakterek és karakterlincok oe 64 Egyéb szimértéket tarol6 valtozk 6 A boolean valtozétipus A viltozék elnevezése Informacio tarolisa valtozékban te ce cetettee eens corlat: Kifejezések haszndilata 5 feet eeeeeeee ee 68 Gy: Minden, amit a mtiveletjelelrdl dni érdemes o.oo vs ssvececeeeveeecseeese TI Valtozk niivelése €5 CSKKEMESE eee eee eee eeeeeeeeeeeeee een TZ A maveletek sorrendje : 4 =-76 76 8 Gyakorlatok ooo iceciecetseeretensesenee 8 6. 6ra Kommunikécié karakterléncokkal 79 Szivegek tirolasa karakterléncokban 80 Karakterkincok megjelenitése programokban 2-81 KiilOnleges karakterek hasznalata karakterlancokban ..... Karakterlincok Osszefiizése ..... coves 8 viltozée hasendlata karakterKincokban 84 Karaktertinc-kezelés haladéknak 285 Két karalaterkine &ss 85 Karakterkincok hosszinak megillapitisa . = 86 Karakterkincok kis- vagy nagybettissé tétele 86 Karakterkincok keresése 87 Gyakorlat: Stablista megielenitése 288 Osszefoglalis . 90 Kérdezz-felelek -.90 Ismétlés . 92 Gyakorlatok +93 7. 6ra Déntéshozés felttelek K viele 95 Feltgtelek vizsgalata : -.96 Aaifut wee eee 96 ‘A gkisebb, mint” é ynagyobb, mint” mavelet jelek 97 -Egyenl6" és .nem egyenl6” dsszehasonlitésok ....... 98 Progra blokkolkal 98. Tanuljuk meg a Java programozési nyelvet 24 ra alatt | vii 100 100 A hndromtényezGs feltételes mOvelet ..... 66s eeceeeee eee eeseneeeeteceseseee es OZ Gyakorla Ontigyls Lectetccoteteteerretivereetetitetieesrereeses. 103 Osszefogl 65.4 107 meus kérdések . ae re seaxaeiO7 Ismétlés ‘ 109 Gyakorlatok eee eee eeces eee teense feet eeeeee reer HO 8. 6ra Miiveletek ismétlése ciklusokkal 111 Afor ciklus smanmernsowpumeseenanlld ARIE GIS) vonnin ata accernenarmnantiens anivnnima esa ctarinenaaaasellS) ‘A do-while ciktlus . ceed eeete eset tteeeeeeteteeeeeeew ee HIG Kilépésa ciklusb6l .. 5 118 Ciklusok elnevezése 5 eesti ce ecerrn term aeerer IC) Osszetett for ciklusok ...... aise : 119 Gyakorlat: moreste tanijule a szdmitSgépet! ooo... esse vcceceveeesteesseeeses e120) Osszefoglalas: 7 cemememeRS RIT: hy oie eel Kérdezz-felelek a a = 213 Isméllés oo... = 124 Gyakorlatok sree or Mi, rész_ Az informaci6k kezelésének Gj médjai 9. ra Informéci6k térolasa témbokben 127 ‘Tombdk létrehozisa oo... eee eee 128 ANOMbOK haszndlata eee teeeeeeeeteceeeaneseeeceseceeeaeenees 130 Tobbdimenziés MbOK. eee eeee eee eee ‘Tombdk rendezése aT Lavette eS Gyakorlat: Szerenesekerék 2 . 135 Osszefoglalis ..... fete teeer erent en rere r ee IBD Keidea Ade euce cas omen ien aqareNeys 1 es ens 189. Ismétlés steasoscla tai too TER reatas eee aa manatees ata Gyakorlatok . M42 10. 6ra Els6 objektumaink 143 Az objeltumkézpontit programozis makidése Objektumok makéxlés kozben .. Mik az objeltumok? . Oroklés .... 5 Sroklési hierarchia felepitése a Objeleumok és egyszert véltoz6k ftalakitsa Egyszerd valtozok tipusinak atalakitasa .. Objektumok tipuséinak dtalakitisa . Egyszerd valtozok objektumma és objekeumok valtoz6vé alakitasa Automatikus becsomagokis és kicsomagoliis Gyakorlat: Objektum létrehozésa Osszefoglalis ....... 7 Kérdezz-felelek Ismétlés Gyakorlatok vill | Tanuljuk meg a Java programozési nyelvet 24 éra alatt 11. éra Az beck a lefrésa 161 vViltoz6k létrehozisa . Fe ete te ee tener rece 162 Osailyvalioz6k létrehozisa .. ere we 164 viselkedés megadisa tagfggvényelkel oo... ost. ccectcsesceeevesevseee 168 fiigevények bevezetése : +166 Hasonlé taghigavényele ktlinbéz6 argumentumokal 168 Konstruktorok wee 168 Osailytagigevéenyek .. Fee TOD A wiltoz6k hat6kOre tagfggsényeen bel wee +170 Osztilyok egymasba agy: bette vtttteeeeeeesereeere TTL A this kuless26 haszndlata : 173 Gyakortat Az osyafiggrenyek & ~vaoaic hasnt feteeeeeeeeeee 17 foglalis ... cote eeeteeeeer eter ec eerrene 176 felelek cobb t tee eeeteeeveseveeetevesetaererenes . 176 Ismatlés viene bees eeeete eee t ee treeteeeeeraennecererer ss 178 Gyakorlatok 179 12. 6ra Hogyan hoa legbbet tad objektumakbei? 1 181 Az Orklés ereje ...- : vee oe 182 A viselkedés és a jellemz6k Groklése « cette teee tees 183 Tagfhigavények felilirisa : ce fee eeee ++ 184 Az Oroklés letreh viet tier eeeeeeeee cee +++ 184 ‘A this és a super kulesse ata az alosztilyokban ... . . 185 Létez6 objektumok hase . = 186 Azonos osztalyba tartoz6 objektmok trolisa Vektorokban so. ..ccceccseesesesse 187 Vektor elemeinek bejirasa ciklussal cies 189 Gyakorlat: Mlosatily Iétrehozisa 60.0. e cece eee eeeeeeeeeeee sence ee IO Osszefoglakis: cee fetes wee seen e eens 194 Kérdez-felelek . 2194 Ismétlés cee nents eeeee cere ett tieeteteeate ne nenrer sees s 1S Gyakorlatok . cece tees eee eens cee 196; IV. rész A grafikus felhasznéldi felilet programozésa 13. 6ra Egyszerd felhasznéi6i feliilet Iétrehozésa 199 A Swing és az Abstract Windowing Toolkit Komponensek hasznilata : Kereiek és ablakoke Gombok Cimk Jelolin Lenyil6 is SzBvegmer64 Panelek : Gyakorlat: Sajat Komponens lérehozisa Osszefoglalis Kérdezz-felelek Ismetlés Gyakorlatok ..... 14. 6ra ‘A felhasznéléi fellet kialakitisa 217 Blrendezéskezel6k hasznilata ........ ween eeeeee 218 [A GridLayout elrendezéskezel oo... eevee vc eceee cece teen eeeneeee s 220 A BordlerLayout elrendezéskezel6 . . Tanuljuk meg a Java programazési nyelvet 24 éraalatt| ix A BoxLayout elrendezéskezel6 .. ‘ saoreenenee RR Komponensek szétvilaszidsa az Insets osztily segitségevel > 223 Gyakorlat: A felliasznaldi felllet elrenclezése 6.6... ssseeeeeees 2224 Osszefoglalis sae +228 Kérdezz-felelek ...... 00.000 22229 Ismétlés +230 Gyakorlatok 231 15, 6ra ‘Vélasz a felhasznéi6i beavatkozdsra 233 A program felkészitése az események fogadisira ..... Komponensek észlelhet6vé tétele ..... 0.0.00 ee Felhaszndl6i események kezelése .--.... ‘Jelilénégyzet- és lenyildlista-események Billentytiesemények Komponensek engedélyezése és | Gyakorlat: Loud6riilet. * Osszefoglalis .... Kérdezz-felelek .. Ismétlés . Gyakorlatok 7‘ csmceiacere eases 16. 6ra Ssszit hese ot sso 253 G@rdit6panelek Cstiszkak . weanaae Viltozasfigyelok . Mentik: Gyakorlat: Ikonok és eszkbztérak has? Osszefoglalis Kérdezz-felelek - Ismétlés ..... Gyakorlatok ... . eal Nu tész ‘Multimédids alkalmazdsok készitése |. 17. 6ra Interaktfv webes alkalmazésok készitése 275 Szabvainyos kisalkalmazis-flggvényele ......... A kisalkalmazis-ablak kirajzolsa . * A kisalkalmazds kezd6énékeinek beéllitésa ... . . Kisalkalmazésok inditasa és ledllitasa . Kisalkalmazisok megsemmisitése . Kisalkalmazas elhelyezése weboldalon Egy minta-kisalkalmazis . Rajzolas a kisalkalmazas al lakaban Kiprobaljuk a SalutonApplet Programa A Java Plug-in bévitmény . . . Paraméterek atvétele ‘weboldalrél eee sas Paraméterek fogadasa a kisalkalmazisokban . . . Gyakorlat: Paraméterek kezelése a kisalkalmazésokban = 286 A Java Web Start. ae wee wre ABB ‘Java Web Start haszndlata smeceniin : wes 292 Osszefoglalis .... Kérdezz-felelek . Ismétlés Gyakorlatok x_ Tanuljuk meg a Java programozési nyelvet 24 éra alatt 18.60 ‘Hib kezelése a progamban 299 Kivételek ... 00... cece ceed ete eee tees eeee sees +300 Kivételek elkapisa try-catch blokkban veveteeeeeteveeteeeeseeeeees BOL Kilonbéz6 kivételek elkapasa 304 Mi tOrténik a kivétel utin? Kivételek | Kivételek figyelmen kivil hagyisa o..000600csceeeeeeeeeeceeeeeceeees Alli§S0k eevee cee vee ee rrererees 23 Gyakorlat: Kivételek kivaltésa és ellapasa veeeeenees cece eee BOD Osszefoglalts sees ve veteeeeee Kérdezz-felelel 312 Ismétlés : Fie e este tent eeeeee eee ttiti tessa reres es BIB Gyakoriatok . ce 314 19. 6ra ‘Tob szélon futé program létrehozésa 315 SHAK eevee eeee eee reeeeteeenees Program lassi wees 316 Sula Ketrehozisa sss esses seeeeeeeneneees 317 wee B20 321 cee ceed eeeee eee ceeeeee eee BRR 0 tagfdgavénnyel 323 jése URL objektumok haszndlata sorin Keperytfishtse a pant tagfbggrénnyel sail futtatisa ese eee A szill furisdinak megillitésa Egérkattintisok kezelése ..... Gyakorlat Osszefogtalis Kérdezz-felelek Ismétlés ........ Gyakorlatok 20. 6ra Feéjlok olvasésa és irésa 335 lok olvasisa €5 iis... see e ee eee vite eneeees Gyakorlat: Bajtok irisa MPS f§flba eee eee e ee eeee Osszeloglalis oes vovceeeeeee eee eeeeeeeeee ees Kérdezz-felelek Ismétlés Gyakorlatok we beeee eee eeeeees Vi rész_ Multimédiés alkalmazésok készitése Il, 21. ora XML adatok olvasdsa és frésa 355 XML fil létrehozasa XML ijl olvasaisa syakorlat: RSS Sync sszefoglakis . Tanuljuk meg a Java programozési nyelvet 24 6ra ala | xi Kérdezz-felelel ... . : ce 366 Ismétlés ..... re vibe etetteeeeeeee ease cee 307 Gyakorlatok ...... fier reece 3B 22. 6ra Betts 6 snk hsm 369. A Font osztély haszndlata were eee 370 A Color osatily hasznilata 6.6... eee eee eceeeeeee eee e ete sceeeteeeeeeee SA A szinvilasatis egyéb mécszere : : 374 Gyakorlat: Neselye figyelmeztets tzenet megielenitése oo... ccc tees eees ss e376 Osszefoglals ....... . orn : -381 Kérdezz-felelele ve veces cee : = 382 TSMEUES occ eee cece eet ete e eee t reer teeter rene BBB Gyakorlatok ...... : : : beeen BBB 23, 6ra Képek a progamn 385 Képek haszndlata ...... cee ween B86 Vonalak € formal rajz0lsa. eee eee cece ete ene ee tetra teen BBB: Vonalak rajzokisa ween ce : 388 Bllipszisek és kOrvonalalk rajzolisa . feteeees cee BOL Rorivek rajzollisa 6. e eee cece eee BOL Sokszdgek rajzolisa ... cette wees 392 Kiilnb6z6 szdlességit vonalale rajzokisa : : 393 A piktogeam elkészitése . 2.6.6.6... fete e teeter eee: 3M Gyakorlat: Kordiagram rajz cect feet ee 36 Osszefoglalis : 403 Rerdezzfelelek o.oo eeeeeeeeeee cece eee e cee tetteeeneeeee eee c ne 43 Ismétlés . oon eE ES EE EEE SSS SE ES EEEEESOSESSOSEECEOEEL (11 Gyakorlatolk eevee cece wien ee teste eee AOS 24. 6ra Animécié 407 Képek sorozatinak anima EEE EEESEEEES (0 Képek betdltése és megielenitése 410 Képek csoportiénak tar bitten eeeeteeee eas oe 42 Paraméterek dtadésa a kisalkalmazésnake vente ee ete e eee AID Gyakorlat: Labda pattogtatésa 6.0.2... coe eceeeeeeeee eee eeeeee - 4d Akkép megrajzokisa oo... 0... cee cee wee ceeeeeees 417 Osszefogialés . 418 +419 cence teeter trees : : 420 Gyakorlatok 2. eee eee eeeneeeee vente 421 VIL rész Réadas 25. 6ra Webszolgdltatésok készitése az XML-APC haszndlataval 425 ‘Az Apache XML-RPC haszndlata . . «426 XMLRPC kezel6 létrehozisa 427 XML-RPC kiszolgilé létrehozasa a concern ee BO XML-RPC Ugyfél Ietrehozisa eee... eee eee vee ABS Gyakeorlat: A LottoMaciness alkalmazés tovabblejlesztése cee eeeee ree cece e eee 36 Osszefoglalis : : : 440 Kérdezzfelelek .... 22. eee sees ceteteeeeeees seceeeeeee AML TSMEUES ooo e cece erect eee cc cttteteeeteeeeeeen eter ere M42, Gyakorlatok . . cine e teen eeteteeeeee cece tee AB xii | Tanuljuk meg a Java programozési nyelvet 24 éra alatt Vill rész ——_Fiiggelékek Afiiggelék A Java Development Kit haszndlata 447 A megfelel6 Jave-feflesciGi eszkOz kivilasatisa ooo... vceeeeeceeeeeeeeeeees 448 A Java Development Kit bedllitésa ... vee eee tee e een een eee see ABQ SrovegsaertcesaG hasandlata oo... cceveeeeeseeeeeeeeeeseeeeeeeeseees 461 Egy mintaprogram elkeészitése carrenen 462 ACLASSPATH valtoz6 beallitisa .... cee 466 B fiiggelék Propamazi a Java Development Kit hasenéiatéval 471 AJDK~4 472 Ajavac fordté 475 ‘Az applewiewer bngese6 : reer 47 A javadoc doktumenticiSkéseit6 e862 0.0... occ iivresseeeseee ce ABI A jar filarchival6 esekox Fence e eee seen 85 A jdb hibakeresé ..... eee +486 Rendlszertulajdonsigok haszndlata 60.0... 6c cece vceeeeeeeeeeseeeeeeeeee es 491 Osszefoglalis veeeees : +493 Kerdezz-felelek 493 C figgelék A NetBeans integrAlt fees yet ‘hasendlata 495 Egy mintaprogram elkészitése ... . . cece ee eee 498 Difliggelék Merre tovabb? Javeforrésok 503 Mas kényvek, amelyeket esetleg érdemes elolvasi ‘Sun hivatalos Java-weblapja Mas Java-webhelyele Javichiresoportok mc Munkalehetéségek 508 Efiggelék — A'kényv webhelye 509 Tirgymutard . sil ACD-ROM tamtalma 526 Rogers Cadenhead ir6, webalkalmazas-fejleszi6 és az 1988-as NBA-rijdtszis egyik legér- tékesebb jatékosa*, Eddig hiisz k@nyvet irt internetes témakrél; szerzdje tbbek kéz6w a Sams kiadé Teach Yourself Java 2 in 21 Days és Teach Yourself Microsoft FrontPage 2003 kéteteinek, valamint a Radio UserLand Kick Start cim@ konyvnek. Jelen kényv hivatalos webhelyét a http: //www. java24hours .com cimen tizemelteti, * Cadenhead 1988-ban jelen volt az NBA nyugati déntgjének hatodile mérkoxésén a daltasi Reunion Arendban. A Dallas Mavericks 105-103-ra verte a Los Angeles Lakerst, és ezzel kikényszeritett egy hetedile meceset. A CBS Sports megasziva fiélte oda az MVP-dijat a Mavericks Idmadojanak, Mark Aguirrének (23 pont és 13 tepatiand), valamint az aréndt zsitfoldsig megi6l- 16 17 007 nézének, akik torkwk sxakadidbél kiabalva és lelkesen integetve biztattal a esapatukat. Cadlenhead ieljesitménye a mecesen: Jéeékos HIN PGH-FGA PTA-FTA OFF-DEF-TOT AST PF ST TO PONT SOR ATLAGOS c-LAToGamAS Ajanlés Feleségemnek, M.C. Moewe-nek az ,6rdkké” els6, boldog 18 évéért. Fogyjon ez a konyv Iényegesen jobban, mint az els6, amit 1996-ban neked ajénlottam (Sams Teach Yourself SunSoft Java Workshop in 21 Days). Nem hiszem, hogy az ajdnlisnak barmi kéze lene az eladott példinyszamhoz, de ha ez a kényv is hasonl6 sorsta jut, el kell gondolkodnom, hogy nem lenne-e érdemesebb a kovetkez6t any4mnak ajankani. De eltértem a tirgyt6l. Valaki vigy4zott rm, amikor részegen belebotlottam életem szerel- mébe azon a bacchandlidn a Texas-Arlingtoni Egyetemen 1987-ben. Mindig driga em- lék marad az els6 pillanat, amikor rambamultal, és Ggy d6nt6ttél, hogy nem is vagyok olyan furesa, mint amilyennek elsére gondoltad. Rogers xiv | Tanuljuk meg a Java programozési nyelvet 24 6ra alatt Kész6netnyilvanités Készdnet illeti a Sams csapatat, ktléndsen Mark Tabert, Scott Meyerst, John Purdumét és Andy Beastert. Egyetlen szerz6 sem képes egyediil elkésziteni egy ilyen kényvet (nem szimit, mit mondott az tigyndkém a Samsnek, amikor a szerzédésr6l virgyal- unk): az 6 kivlé munkéjuk gytimdlesét fogom majd learatni Kosz6net jar Laura Lewinnek is a Studio B tigyndkségnél, aki ezzel és mas konyvekkel kapesolatban is képviselte az érdekeimet. Feleségemnek, Marynek, és fiaimnak, Maxnek, Elinek és Samnele: bar csalédunk nem tel- jesitette be az dlmomat, hogy hires artistacsoport legyiink, nagyon buszke vagyok ratok. Az olvas6knak is szeretnék k6sz6netet mondani, amiért felhivtak a figyelmemet a hi- baikra, és hasznos tanacsokkal segitették a konyv megfris4t. Név szerint is szeretném. megemitteni a kévetkez6ket: Brian Converse, Philip B. Copp Ill, Wallace Edwards, MB. Ellis, Kevin Foad, Adam Grigsby, Mark Hardy, Kelly Hoke, Donovan Kelorii, Russel Loski, Jason Saredy, Mike Savage, Peter Schrier, Gene Wines, Jim Yates. A tobbiek nevét azért nem from le, mert még azel6tt segitettek, hogy elkezctem volna irni a neveket. Az olvas6 a legfontosabb kritikus, akinek a véleménye nekem és a kiadonak is roppant Génékes. Szeretnénk tudni, mit csinélunk j6l, mi az, amin javithatnank, milyen kényve- ket kellene megjelentetniink és igy tov4bb. Ezért levélben vagy e-mailben varjuk a visszajelzéseket a kévetkez6 cimekre: E-mail: webdev@samspublishing.com Levél: Mark Taber Associate Publisher Sams Publishing 201 West 103rd Street Indianapolis, IN 46290 USA. k, ha ir, tiintesse fel a kényv szer2éjét és cimét, valamint a sajat nevét, telefonsza- mat vagy e-mail cimét. Megjegyzés: Mark a konyo témajaval kapcsolatos technikai kérdésekben nem tud segt- toni, és a levelek nagy sxdma miait nem biztos, hozy minden levéire khébes vdlaszolni SzAmitogépes kényvek szerz6jeként gyakran leselkedem kOnyvesboltokban, hogy megfigyeljem a kOnyveket lapozgat6 vasarlék viselkedését, mintha csak 6semberall- kapesok lennének, én meg régész. Megfigyeléseim alapjin tudom, hogy ha az olvas6 kézbe vette a kényvet, és a bevezetOhiz lapozott, kérilbeliil 12 ma elt letenné, és a kavéz6 felé venné az iranyt egy dupla vanili sodpercem van, mi- apuccinéért. Ezért révidre fogom: a szamitgép programozisa a manapsig legnépszertibb progea- mozisi nyelven, a Javan, sokkal knnyebb, mint amilyennek elsére ttinik. Ezt nem kel- lene elarulnom, mert programoz6k ezrei helyezkednek el j6l fizet6 szofivertejlesz16i, webprogramoz6i és e-kereskedelmi dllsokban azért, mert képesek bainni a Javiival, és nyilvan nem szeretnék, ha fSndkiik tudomést szerezne r6la, hogy barki, ak kis idét és elég kitart6, képes megtanulni ezt a nyelvet. E kétet 24 egyéri gigrigva magunkat mi is Java-programoz6kkci valhatunk. an ra egy leckéjén vé- Barki megtanulhatja, hogyan kell szamitégépes programokat ini, még akkkor is, ha még a viceot sem tudja beprogramozni. A programozisi nyelvek kézdtt a Java az egyik legjobb valasztds, mert hatékony, j6l hasznosithat6, modern, és programoz6k ezrei hasznaljak szerte a vikégon. Eza kényv egyardnt sz6l a laikusoknak, a kez programozéknak, azoknals, akik nem szerették a tantargyat, és a tapasztalt programoz6knak, akik gyorsan meg akarjak tanulni a Java hasendlatit. A kétet a Java 2 5-8s valtozatéra, tehat a nyelv legdjabb valtozatéra épal. A Java a programozasi nyelvek kéz6tt olyan, mint a golfoz6k kéz6tt Tiger Woods: bi mire képes, Létrehozhatunk vele grafikus felhasznil6i feldlettl programokat, az Inter- netb6l a legtdbbet kihoz6 alkalmazsokat, olvashatunk XML adatokat, animéci6kat he- lyezhetiink el weblapokon, és igy tovabb. xvi_ Tanuljuk meg a Java programozési nyelvet 24 ra alatt Eza kényv az alapokkal kezdi, és kézérthet6, hétk®znapi nyelven mutatja be a fogal- makat, rengeteg, lépésrdl [épésre ismertetett mikSd6 példaprogrammal, amelyeket el- készithetiink, Téltstink el vele 24 drat, és képesek lesziink magabiztosan haszndlni a nyelvet és sajét Java programokat irni, Olyan terileteken is tudasra tesziink szert, amelyek az ut6bbi idében egyre fontosabba kezdenek valni: ilyen a halozati szdmitis, a grafikus felhaszndlsi feliiletek tervezése 6s az objektumkézponta (,objektumorien- tilt”) programozas. Ezek a fogalmak persze most lehet, hogy semmit nem jelentenek nektink. Szakszavak, amelyekt6l a programozis titokzatos szertartisnak tinik, amelyet furesa emberek gyakorolnalk, akik sajét nyelvet beszélnek. Ha viszont képesek va- gyunk megimi a szimitogépen egy tetszetds Onéletrajzot, kisz4mitani a havi koltsége- inket, vagy elkésziteni egy weblapot, e kényv elolvasisa utén szdmitogépes programo- kat is képesek lesziink irni. Ha most a Java helyett mégis inkébb kavéra vagyunk, helyezzik vissza a polera a kényvet day, hogy ellis6 borit6jét minéltébben lassék a boltban. |, RESZ Az elsé lépések 1.6ra_——_Hogyan valjunk programozéva? 2.6ra—_Els6 programunk 3. ore Java vakacié 4, ora A Java program moikédése Hogyan valjunk programozéva? A szimitogépek programozasa hihetetlendil bonyolult. Négy évi tanulist, tbbezer dollér értékif hardvert és szoftvert, valamint elemzdkészséget igényel, ezen feliil Job tiirelmét és a koffeintartalmd italok irinti szenvedélyt. Legalabbis ha kezd6 programo- 26k vagyunk, valészinGileg igy hallottuk. Nos, ezek a pletykak erdsen tiloznak (a ki vét6l eltekintve) A programozés ugyanis egyszertibb, mint amilyennek a legtébben vélik,, bar természe- tesen tb oka is lehet annak, hogy masképp gondoljuk: * A programoz6k azt sulykoljak mindenkibe évek 6ta, hogy a programoz: Ezért kapnak j6 fizetést, és ezért jatszhatnak munka kézben. * A programozisi kézikényveket gyakran olyan nyelven irjak, ami csak egy Scrabble-jatékost villanyoz fel. Olyan kilonds réviditésekkel talallkozhatunk benniik, mint az OOP, a RAD, a COM vagy a MUMPS, illetve olyan djonnan kita~ Milt szakszavaklkal, mint a példényositas, a bajik6d vagy a makefile. * Sok programozasi nyelv csak igen driga szoftvercsomagokban érhet6 el, ame- lyeket nem sokan engedhetnek meg maguknak. s nehéz 4 |. rész * Az els6 lépések Az Internet névekedésének és mas tényezGknek kész6nhetGen azonban itt az ideje, hogy mi is megtanuljunk programozni. Ma mar oles6n (vagy akar ingyen) beszerezhe- t6k hasznos programoziisi eszk6zk a Vilaghdl6rél, és programoz6k ezrei teszik kOzzé alkotasaikat ,nyilt forrasd” felhasznakisi engedéllyel, hogy barki megvizsgdlhassa azok felépitését, kijavithassa a hibdikat vagy tovabbfejleszthesse ket. Ennek a kényvnek az a célja, hogy megtanitsa programozni azokat, akik ezt még soha- sem probiltik koribban, vagy megprobaltaks, de kimondhatatlanul gydlolték. Igyek- sziink kézérthet6 nyelven fogalmazni és egyszerd szavakat haszndlni a rejtélyes rovie tések és szakszavak helyett, az j fogalmakat pedig viligosan elmagyarézzuk, amint bevezetiik dket. Ha sikerfel jarunk, az Olvas6 a kényv elolvasisa utan elegend6 programozisi ismeret- tel fog rendelkezni ahhoz, hogy veszélyt jelenthessen 6nmagita és masokra: képes lesz programokat imi, nagyobb énbizalommal fordulhat majd mas programozisi kony- vekhez, knnyebben tanulhat meg mas programozasi nyelveket — és természetesen el- sajatitja az ut6bbi évek legtébb djitast hoz6 nyelvének, a Javanak a haszndlatat. A konyy elsé leckéje bevezerést nydjt a programozasba, valamint megmutatja, hogyan kell beillitanunk a szamit6gépet abhoz, hogy Java nyelvai programokat irhassunk. A kovetkez6 témakrol lesz sz6: © Az elsOként megtanuland6 programoz © Mia Java? * A szimitégép ininyitésa programokkal © A programok mékédése * Programhibak kijavitisa + Java-fejlesziGeszkzbk beszerzése © Felkésziilés a programovzasra i nyelv kivalaszrasa A programozasi nyelv kivalasztésa Ahogy mostanra mér kitalélbattuk, a programozés egydltalan nem olyan nehéz, mint amilyennek be szoktak dllitani. Ha wdunk annyira banni a szamitogéppel, hogy elké- szitstink egy csinos énéletrajzot, dsszeallitsunk egy banksz4mla-egyenleget egy olyan programmal, mint az Intuit Quicken, vagy elkészitsiik sajat weblapunkkat, programokat is képesek lesatink irni. Az egésznek az a kulcsa, hogy a megfelel6 nyelvvel kezdjik. A valasztast gyakran az befolyasolja, hogy milyen feladatot szeretnénk elvégezni: minden programozisi nyelv- nek vannak erOsségei, és vannak olyan dolgok, amelyeket nehéz vagy taldn lehetetlen is az adott nyelven megvalésitani, Sokan példaul a BASIC nyelv valamelyik valtozatival kezdenek, mert ezt a nyelvet kifejezetten a kezdSknek szantak. 1, 6ra * Hogyan valjunk programoz6va? , ABASIC nyelvet a 60-as években alkotték meg, elsdsorban a kezdé tanuldkat szam EPG bit tava. ABASIC hatrdnya, hogy rossz programonsiszokisokatalakthat ki, ame- SL _yeket alkelmazva sokkel nehezebb dsszetett, tovabbfejleszthet6 programokat imi, A Microsoft Visual Basic, amelyben Windowsra frhatunk programokat, hatékony szol- giltatésokkal egyesiti a BASIC kénnyé haszndlatét. (A VBScript, amelynek neve a Visual Basic Script réviditése, weblapokon hasznalhat6 révid programokhoz kinilja a BASIC egyszeriiségét.) Visual Basic nyelven sok ezernyi kifinomull, Uizleti és személyes | latra sz4nt programot irtak mar, de ezek gyakran lassabbak a ms nyelveken, példéul Borland C++-ban frt windowsos programoknal. A ktilénbség kiiléndsen a grafikaigé- yes programoknal jétékok, képerny6kimél6k és hasonlék ~ mutatkozik meg. Eza kényv a Java programozasi nyelwvel foglalkozik, amelyet a Sun Microsystems fej- lesztett ki. Bar a Javat nehezebb megtanulni, mint egy olyan nyelvet, mint a Visual Ba- sic, kezdényelvnek tb okb6l is megfelel. Az egyik elénye, hogy a Vikighilén hasz- nalhat6. Ha gyakorlott websz6rféz6k vagyunk, mar szamos Java programot kithattun m(ik&dés kézben: cseveg6szobakat, jatékokat és més interaktiv programokat. A Java masik fontos el6nye, hogy szigora: ahhoz, hogy egy Java program mikédjén, pontosan kévetni kell a szabilyokat, kulonben a Java rink ripalsodik. Amikor Java prog- ramok frésiba fogunk, a nyelv szigoris4gat lehet, hogy nem taldljuk elényésnek, mert sok hibat kell majd kijavitanunk, miel6u a programot késznek nyilvanithatndnk. A javi- tésok egy része szintén hibésnak bizonyulhat, ezért esetleg tira kell kezdentink, A prog- ramokat bizony helyesen kell megszerkeszteni, mert killonben hibak lépnek fel. Az elkévetkezend6 leckékben azonban megtanuljuk a szabyilyokat, és megismerjtik azokat a csapdakat is, amelyeket el kell keriilntink. A nagyobb erdfeszités jutalma pe- dig az lesz, hogy megbizhatobb, hasznosabb és hibamentes programokat irunk maja. A Java kit a Sun Microsystems fejlesz16je, James Gosling volt, akinek az a cél le- beget a szeme elétt, hogy olyan nyelvet alkosson, amelyen hatékonyabban lehet prog- ramozni. Gosling elégedetlen volt a C++-szal, amelyet egy munka sorin hasznalt, ezért Kitalalt egy masik nyelvet, amellyel a feladatot knnyebben el lehetett végezni. Maig vitatkoznak r6la, hogy a Java felsGbbrend¢(-e mis programoz4si nyelveknél, 2z azon- ban kétségtelen, hogy a figyelem k6zéppontjaboa keriilt, és rengeteg kovet6re tett szert A kényvkiadok ayilvanvaléan imadjak, hiszen megjelenése ota ezernél is tbb kényvet jelenteitek meg r6la. (Nekem ez a tizenharmadik, és nem hagyom alsba, hacsak a tir vény erejével nem kényszeritenek ra.) Fuggetlenill att6l, hogy vajon a Java-e a legjobb progeamozisi nyelv, megtanulisa ma kétségtelentil hasznos. A Java-programozOk szimtalan forrast talilhatnak a nyelvrdl a Weben, ailasok tmkelegét hirdetik meg, ahol kdvetelmény a Java ismerete, a nyelv 6 |. rész © Az elsé lépések pedig megkerdihetetleniil részévé valt az Internet méltjanak, jelenének és jovojének. Mia 2, leckében probaljuk ki majd elész6r, milyen is egy Java programot irni. Akira Javat, akzir egy masik programozasi nyelvet tanulunk meg eldsz6r, késObb a tb- Di nyelv clsajitivasa mir kOnnyebb lesz. A legidbb programozési nyelv hasonlit egyma: hoz, ezért nem kell mindent eldlr6l kezdentink, amikor egy Gj nyelv tanulasiba fogunk. A C++-programoz6k tobbsége példéul meglehetésen konnytinek talAlja a Javat, mert a Java szdmos szerkezetet és fogalmat dtvett a C++-b6l. Sok programoz6 tébb nyelven is magabiztosan fr programokat, és sziikség szerint képes Gj nyelveket megtanulni Ebben a leckében tabbszér is emlitiik a C-+++-t. Az Olvas6 elgondolkodhat, hogy £4 mit is jelent ez a név (és hogy miként ejtik). Nos, a név ,c plusz plusz’-nak ejtendé, és egy programozési nyelvet takar, amelyet Bjarne Stroustrup és mésok fejlesztet- tek ki @ Bell Laboratoriesnél. A C++ a C nyely tovabbfejlesztése: innen jén a név «plusz plusz” része. De akkor miért nem csak C+? A C++ vicces név, de hogy mi- ért az, azt majd csak késdbb fogjuk megérteni. A szdmitégép utasitasa feladatok elvégzésére A szamitégépnek programokon (szofiveren) kereszttil adhatunk utasitasokat, Mindent, amit a szdmit6gép csinAl — az elindulastél a ledllésig — programok vezérelnek, A Win- dows XP vagy a Pac-Man is program, akaresak az MS-DOS-ban a fajlnevek megjelenité- sére haszndlatos dir parancs — vagy éppen a levélvirusok. A sziimitogépprogramok parancsokb6l épiiinek fel, amelyeket futtatéskor a szimit6gép adott sorrendben hajt végre. Ezeket a parancsokat ttasftdsoknak hivjuk. Ha kedveljik a tudoményos-fantasztikumot, val6szintileg ismer6s a haztartési robot fo- galma —ha nem, az sem baj ” mar biztosan ismerds lesz. A lényeg 22, hogy mindkeus konkrét utasitisokat kap, hogy mit csinéljon: Keclvesen Kérlek, tedd meg nekem a kévetkez6ket, amig lobbizom a Kongresszusban: 1. Porszivézd ki a nappalit 2. Menjel a boltba, 3. Vegyél vajat, gyOgycukorkit és annyi tveg Heinz ketchupot, amennyit esak el- birsz. 4, Ne felejts el hazamenni. Puszi Jane Akar ember, akar robotot utasitunk, kivanségaink teljestilése bizonyos feltételekt61 fiigg, Példaul ha a boltban nincs gy6gycukorka, lehet, hogy koptetét kapunk, st ma- 1. 6ra_* Hogyan valjunk programoz6va? 7 githoz a bolthoz is t8bb tt vezethet. A szimitogépeknél azonban nines valasztisi lehe- t6ség; a gép pontosan azt teszi, amire utasitjék. Lissunk egy példat egy igen egyszerd programra, amelyet BASIC nyelven friak. Egyels- te ne WrGdjiink az egyes sorok jelentésével 1 PRINT “sétsszunk egyet 2" 2 Inpur ag Magyarra forditva ez a kévetkez6nek felel meg: Keclves személyi szamitégép! 1. Jelenitsd meg ezt a kérdést: ,JAtsszunk egyet?” 2. Adj lehetdséget a felhasznélénak, hogy valaszoljon. Szeretettel Gazdi A szimitégépprogramokban minden sor egy utasitésnak felel meg. A szdimit6gép adow sorrendben kéveti az utasitisokat, akar egy szakacs a receptet, vagy a hiztartasi robot a tennivaldk listéjat. A BASIC nyelvben a sorokat megszAmozzals, ez adja meg az, utasi- tasok sorrendjét. nyelvek — példaul a Java — nem hi prog- ram futtatasdinak médjét masképpen hatdrozzik meg, znalnak so A fenti BASIC programot a Liberty BASIC értelmez6vel futtatva az 1.1. abrin lithatjuk. A Carl Gundel ailtal készitett Liberty BASIC ingyenesen kiprObilhat6 (shareware) prog- ram, amellyel Windows és OS/2 rendszerd programokat fejleszthetink. Az Interneten szimos mas BASIC-értelmezé6t is taldlhatunk, Microsoft Windows, Apple Macintosh és Linux rendszerre is. Tovabbi informaciokést Litogassunk el a kévetkez6 internetcimre: http://www. 1ibertybasic.com Fe Eat Bun sip Hob fi Pminr "Sinut ve PLay @ GONE? | UT a8 1. dbra BASIC program a Liberty Basicben funawer 8 L.rész » Azels6 lépések A, détsszunk egyet?” kérdés idézet az 1983-as War Games (Haboris jétékok) cima ZA tind amelyben a Mathew Broderick alakitota fatal programozé megmenti az sf!’ —emberiséget, miutan kis hijén nukleéris habortit robbant ki. Ha mi is meg szeret- niénk tanulni, hogyan keverhetjik magunkat hasonlé kalamajkaba, olvassuk el a so- rozat kévetkez6, Tamuljunk meg nemzetkézi incidenst eldidézni a Javéval 24 6ra alatt! cimd kétetét. A programok miikddési médjat figyelembe véve nemigen okolhatjuk a szimitégépet, ha programunk futésa kdzben valami balul dt ki. A gép ugyanis csak azt teszi, amire utasitjuk, A programhibak oka mindig a programoz6, kivéve azokat az eseteket, ami- kor a hardver késziil bemondani az unalmast, makacs virus tamadta meg a rendszert vagy az operaciés rendszer nyfigdskédik. De nézziik a dolgok j6 oldalit: egy hibz megirt programmal nem okozhatunk maracand6 kart a gépben. Ennek a kOnyvnek a készitése sorin sem sériilt meg senki, és a sz4mitégépiinket sem tesszik tonkre, m kozben a Java ha Av tanuljuk. Hogyan miikédik egy program? A legtobb szamitégépes programot ugyanigy kell megimi, mint egy levelet: fogiuk a szbvegszerkesztot, és begépeljiik az utasitasokat. Egyes fejlesziGeszkdzdk sajit sz6 vegszerkeszi6t kinilnak erre a célra, mig masok barmilyen szerkeszt6programmal haszndlhatok. Ha még nines Java-programozésra alkalmas eszk@ziink, hasznalhatjuk az ingyenes Java Development Kitet (amelyrdl a fejezetben késdbb ejtiink sz60), és bar- melyiket a kedvenc szdvegszerkesztdink kézi Amikor befejeztik a program megirasit, a fajlt ugyantigy lemezre mentjtlk, mint a tb- bi dokumentumot. A szémit6gépprogramoknak sajit fajlnév-kiterjesztése van, ami jelzi, hogy milyen tipusé fSjlr6l van sz6. A Java programok kiterjesztése . java, tehiat egy Ja- va program fajlneve lehet példaul Calculator. java. Ha olyan szévegszerkesztét hasznélunk, amelyben vastaggé tehetjik vagy kiilénbé- P3e} 26 méretire dllithatjuk a betiket, iletve més hasonlé formézést alkalmazhatunk, ne éltink ezekkel a szolgdltatasokkal, amikor programot irunk. A programoknak sima szévegfailoknak kell lenniik, amelyek nem tartalmaznak semmilyen formézést. Programot irhatunk példéul a Microsoft Worddel is, de ekkor a fait Csak széveg (Plain Text) formaban, és nem Word dokumentumként kell menteniink. A Windows beépitett Jegyzettimb (Notepad) szerkesztdje minden failt formédzatlan szivegként ment; Linuxon ugyanerre a célra példéul a vi programot hasznélhatjuk. A fjlba mentett programok futtatisahoz segitségre lesz. sziikségiink — hogy milyenre, az az adott programozisi nyelvt6l fgg. Egyes nyelvek a programok futtatasihoz értel- ‘mez61 (interpreter) igényelnek. Az értelmez6 olyan program, amely szimitogépprogra- 1, 6ra * Hogyan véljunk programozévé? 9 mok utasitassorait értelmezi, és igy mondja meg a szimitégépnek, hogy mit csinaljon. A BASIC legtdbb viltozata értelmezet nyelv. Az értelmezett nyelvek elGnye, hogy 4 programok gyorsabban kiprobalhat6k. Amikor BASIC programot frunk, azonnal ki probalhatjuk, igy észrevehetjak a hibakat, kijavithatjuk azokat, és djra probilkozha- tunk, Az értelmezett nyelven irt programok legfdbb hatranya, hogy lassalsban futnalk, mint mas programok. Mis programozisi nyelvekhez forditéprogram (compiler) szlikséges. A fordité fogja a programot, és olyan formédra alakitja, amit a szamitégép megért, és kozben még arra is Ugyel, hogy a programot Ggy forditsa le, hogy az minél gyorsabb és hatékonyabyb le- gyen. A leforditott programok kézvetleniil, értelmez6 nélkiil futtathatok. A leforditott programok gyorsabban futnak, mint az értelmezettek, de tesztelésiik bb iddbe keri, mert megirs utan el6szir le kell Sket forditani. Ha egy programban hibit talélunk, ki- javitasa utin Gjra le kell forditanunk a programot, hogy meggy6z6dhesstink a javitis eredményességérdl. A Java szokatlan nyelv, ment forditet és értelmez6t is igényel. Err61 kés6bb, amikor mar Java programokat irunk, részletesebben is beszéltink. Hogyan nem mUkédik egy program? Sok kezd6 programoz6 elbizonytalanodik, amikor kiprObalja a programjait, mert azt ta- pasztalja, hogy tele vannak hibikkal. A hibdk némelyike nyelutani hiba (seintalstikat a"), ami zavarba hozza a szdimitOgépet, masik részilk viszont logikai hiba, amit csak a programoz6 vesz észre a tesztelés kézben (mir ha egyaltalin észreveszi). A logikai hibakon a szdmitégép nem akad fenn, csak éppen nem azt fogja tenni, amit varunk. Amint elkezcltink programokat irni, megismerkediink a hibakkal. Ez a programo; amozasi hibakat angolul ,bug"-nak hivjak; ez a tech és kijavitisira is van szakkifejezés: ez a hibakeresés (angolul clebugging’). Akar al juk, akar nem, a hibakeresés terén nagy tapasztalatot szerziink majd, mikézben progra- mozni tanulunk. A kévetkez6é megallé: a Java Miel6tt elkezdhetnénk Java programokat imi, be kell szerezniink és telepiteniink kell valamilyen Java-programozasi szofivert. A Java programok fejlesztés¢hez szamos ter- mék All rendelkezésre, amelyek koz6tt vannak nagyszertiek, amelyek tényleg meg- konnyitik a programfejlesztést, a legtobb kezd6 eldsz6r mégis a Java Development Kit- tel kezci, amely minden eszk6zt tartalmaz, ami a Java programok meg 102, hiba~ 10. I. rész * Az elsé lépések mentesitéschez 6s futtatsihoz sziikséges. A konyv minden példaprogramjihoz ezt a készletet hasznaljuk, de azok birmely més Java-fejlesztGeszkézzel is elkészithetk, amennyiben az timogatja a nyelv legdjabb valtozatat. A kOnyv irdsakor a Java Development Kit (révicen JDK) legfrissebb valtozata az 5-6s szimot viseli. Amikor a Sun @j véltozatot bocsat ki a nyelvbél, az els6 eszkéz, amelyik timogatja, mindig a JDK. A kényv példainakk létrehozasthoz a Java Development Kit 5- 6t kell haszndlnunk, vagy egy olyan eszkézt, amelyik teljes mértékben timogatja a JDK 5 minden szolgaltatasat A Java programok készitésének képességét sz4mos kiilénb6z6 szofivercsomaghan megualiljuk, de a nyelvi tamogatis terén ezek korantsem egyenértéktiek. Egyes progra- i eszkzHk csak a nyely els6 valtozatdt, a Java 1.0-t timogatjak, amelyet a Sun 1995 végén tett kozzé. Mas eszk6z0k a Java 1.1-en alapulnak, amely 1997 kézepén je- lent meg, vagy az 1.2-es (1998), az 1.3-as (2000), esetleg az 1.4-es (2003) valtozaton. Egyes opericiés rendszereken, példaul a Mac OS X-en és a Red Hat Enterprise Linuxon megtaliljuk a JDK-t, de valoszindleg nem a legfrissebb valtozatot, Mielott a rendszer- hhez kapott JDK-t haszndlatba vennénk, gy6z6djiink meg réla, hogy tmogatja a Java 5- 8s villozatit. A Microsoft Windowshoz szokott felhasznalékat valészintileg lestitja a hit, hogy a Java Development Kit nem grafikus feltiletcl, A programokat a paranessorbol futtathatjuk (az MS-DOS-felhasznaloknak ismerés lehet a C:\> vagy D: \> készenléti jel), nem egérkat- tintéssal. Az 1.2. abran a JDK-t egy Windows XP rendszer MS-DOS ablakaban lathatjuk, amint éppen leforditja, majd futatja a warGames.. java programot. A kényy példaprogramjai Microsoft Windows és Red Hat Linux operdciés rendsze- ER. ren késziiltek, ezért a Windows- és Linux-felhaszndléknak kiilén tandcsokat adunk 103 a JDK haszndlatdval kapesolatban. Mindazondltal a kétetben szerepl6 valamennyi Java kéd barmely rendszeren miikédéképes, ha a fellesztdeszkéz témogatja a JDK 5 minden szolgdltatését. iconnond [Seppe igne B5es-2001 wlerowoke corp 3 \boeanents and Settings tegersned sear \tearsjaiae marcas. java ade ee lays gu 1 YES gehen Program leforditésa és futtatdsa a Java Development Kitiel 1. 6ra * Hogyan valjunk programoz6vé? Hivatalos dokumentacié ‘A Sun Microsystems részletes dokumentéciét biztosit a Java nyelvhez, amelyet webhelyiikén érhettink el. Ennek a kdnyvnek az elolvasisiloz nincs szilkség a hivata- los leirésra, mert mindent részletesen elmagyardzunk, de sajat programjaink irisakor hasznosnak taldlhatjuk az emlitett weblapokat A teljes dokumentici6 letolthet6, de tan kényelmesebb a Sun webhelyén, igény sze- rint bngészni benne. A legfrissebb lefris a kbvetkez6 cimen éthet6 el: http: //Java.sun.com/j2se/1.5.0/docs/api, Gyakorlat: Java-fejlesztéeszk6z telepitése A kotet minden leckéje egy-egy gyakorlattal ér véget, amelyek sorin elkészitiink egy programot, amelyen gyakorolhatjuk a leckében tanultakat. Acdig azonban egyetlen prog- ramot sem irhatunk, amig nem telepiteutink egy Java-fejlesztSeszk6zt a szimitégépre. A kévetke26 23 lecke oktat6programjait elkészitherjak olyan programokkal a Borland JBuilder, a Sun NetBeans vagy az IntelliJ IDEA, de barmelyiket is valassz célszerd eldbb elsajatitani a haszndlatit, mert egyszerre ismerkedni a Java nyelvvel és a fejleszt6eszkSzzel faraszt6 lehet. Ha még nines Java-fejlesztGeszkéziink, vagy az €l6z6 bekezdés elriasztott att6l, hogy a meglev6 eszkéziinket hasznaljuk, wltsiik le az ingyenes Java Development Kitet a Sun Java-webhelyérdl, a http: //java.sun.com cimrél. A letéltés meglehetésen egyszerti, de egyes beillitisok megnehezithetik a fejleszt5készlet haszndlatba vételét, kdlénésen Windows rendszeren. A JDK letdltésér6l és beillitisarél az ,A” filggelék ad részletes felvilagositast. Osszefoglalds Ebben a leckében azzal ismerkedtiink meg, hogy miként vezérelhetjik uta: = programokkal — a szAmitogépet. ValoszinGleg mar le is whOutink és telepitettiink egy Java-fejleszGeszk6zt is, amelyet a konyv pélcaprogramjainak elkészitésére hasz~ nalunk maja. Ha még nem énijiik teljesen a szamft6gépprogramok, a programoz4si nyelvek vagy a Java mibenlétét, az ezen a ponton tkéletesen értheté. A kévetkez6 leckében mar minden vildgos lesz, ahogy szép lassan megirjuk elsé Java programunkat. ul 12_|. rész * Azels6 lépések Kérdezz-felelek Kérdés: Miéri kérmyebb a BASIC-ben rossz programoz6i szokasokat kialakitani? Valasz: A Java programok egyik elénye, hogy rendszerezésre tanitanak. Ha egy prog- ramot nem helyesen épitiink fel, nem fog mikédni. A BASIC-ben ilyen megkotés nincs; a BASIC programok ésszevissza irva is mik6désre birhatok, de késGbb sokkal nehezebb megkeresni bennik egy hibit, és a b6vités is nehézségekbe iitkézhet. Kérdés: BASIC? C++? Java? Mit jelentenek ezek a nevek? Valasz: A legidlb programozisi nyelv nevéhez hasonléan a BASIC is egy bettisz6, ami leirja, mir6l is van sz6: Beginner's All Symbolic Instruction Code (teljesen jelképes uta sitisk6d kezdéknek). A C++ a C nyelv tovabbfejlesztéseként létrehozott programozasi nyelv, ami maga is egy masik nyely, a B tovabbfejlesztése volt. A Java nem ezt az elne- vezési hagyomanyt kéveti, de ennek esak az az oka, hogy a fejleszt6inek ez a név tet- szett « legjobban a felmerilt dtletek (WebRunner, Silk, Ruby stb.) kézill Kérdés: Tényleg exernél ts t6bb kényvet intak mar a Javarol? Valasz: Amikor a JavaWorld magazin abbahagyta a szamolist, kOriilbeliil 2400-nél tar- tottak, (Vagyis a szim most mir legalabb 2401.) Kérdés: Miért lassabbak az értelmezett nyelven irt programok, mint a leforditott nyel- ven irtak? lasz: Ugyanazért, amiért egy tolmacs lassabban forditja az éldbeszédet, mint egy for- dito az irott szdveget. A tolmacsnak menet kézben kell forditania, mig a fordit6 az egész sziveget nézheti, és rividithet, tmérithet rajta. A leforditott nyelven frt progra- mok azért gyorsabbak, mint az érvelmezett nyelven irtak, mert a fordit6 képes hatéko- nyabba tenni a kédot. és: A C++-t nehezebb megtanulni, mint a Javat? Valasz: Ezt embere vilogatja, de a kezd6k Altaléban kénnyebbnek talaljak a Javat, mint a CH, A C++-t és elddjét, a C+, ,a programozok nyelvének" tartjék, vagyis olyan nyelvnek, amelyet a tapasztalt programoz6knak készitettek. A C és a C++ rengeteg olyan szolgiltatast nytt, ami felgyorsitja és hatékonyabba teszi a programirast, de ez Altalaban az érthet6ség rovasira torténik. A Java megkOzelitése egyszertibb, ezért kez- déknek inkabb ajinlhato. 1, 6ra » Hogyan véljunk programozévé? 13 Kérdés: Csak a Javdval kapesolatos kérdéseket lehet feltenni? Valasz: Dehogy. Barmilyen kérdésre szivesen valaszolok. Kérdés: Akkor itt egy kérdés: hol lehet iivegfitjast tanulni? Vélasz: Nézziink kériil a Glass Line webhelyén, a ht tp: //www.hotglass.com cimen. A Glass Line kétnapos tanfolyamokat kindl. 150 dollirért lampa héjével végzeu tiveg- formazést tanulhatunk, 5000 és 10 000 dollar kézéui 4ron pedig kézi tivegfiijast (ami- kor egy tireges cs6 végére teszik a forré tiveget, és a csObe fijva formaljak meg az). Az Uvegfjast a kévetkez6 helyeken is megtanulhatjuk: California State University- Chico, Tennessee Technological University, Southern Illinois University. Ismétlés A fejezetben tanultak ellen6rzéséhez valaszoljunk a kdvetkez6 kérdésekre! Ismétlé kérdések 1. Melyik mem oka annak, hogy az emberek azt hiszik, hogy a programo: masan nehéz? a. Eat a programoz6k terjesztik, hogy nagyobb fizetést kapjanak, b. A programozishoz szakszavak és bettiszavak tmkelegat kell ismerni. cA CIA agymos6 hulkimokat sugéroz, hogy ezt higgytk. Fajdal- 2. Hogy hivjak azt az eszkézt, amelyik soronként feldolgozva futtat egy szamit6- gépprogramot? a. Lassi eszkoz b. Ertelmez6 ¢. Forditéprogram Miést vette be magat az irodajiba James Gosling és alkotta meg a Javat? a. Elégedetlen volt az dltala akkor hasznalt programozasi nyelvvel. b. A rockzenekara nem kapott fellépési leheSséget. c. Még nem voltak MP3-as fajlok, amiket le lehetett volna télteni, ezért az Intemet nagyon unalmas volt. 14 | L.rész * Az els6 Iépések Valaszok 1. c, Persze lehet, hogy a CIA kényszerit arra, hogy ezt mondjam. 2. b. A forditéprogram elézetesen dolgozza fel az utasitasokat, hogy a program gyorsabban futhasson, 3. a. Gosling a C++ nyelvvel volt elégedetlen, de amikor megalkotia a Javat, az MP3-r6l még azt hitték, hogy valamilyen titkosszolgilat lelet, mint az MIS, Gyakorlatok Ha részletesebben szeretnénk megismerkedni a Java nyelvvel és a sz4mit6gép-progra- mozissal, tegyik a kévetkez6ket: + Litogassunkk el a Sun hivatalos Java-webhelyére, és olvassuk el az ott talalhat6 Java-bevezett a http: //java.sun.com/learning/new2java cimen! Sajat szavainkkal (nem programozasi nyelven) irjunk utasitasokat, amelyekkel 10-et adhatunk a felhasznalé Altal kivélasztott sz4mhoz, majd szorozauk meg az eredményt 5-tel! Tordeljuk az utasit4sokat annyi révid, egysoros mondatra, amennyire csak tudjuk! Kész példaprogramok a fenti feladatokhoz megtaldlhat6k a kényv mar emlitett weboldalén: http://www. java24hours .com. Elsé programunk Amint azt az 1. fejezetben megtanultuk, a szimitégépprogramok utasitésokb6l Allnak, amelyek megmondjak a szamitégépnek, hogy mit tegyen. Ezeket az utasitésokat ha- sontéan adjuk meg, mint egy embernek: beitjuk Gket egy szdvegszerkeszt6be. A ha- sonlésig azonban itt véget is ér, a szimitégépnek adott utasitésokat ugyanis egy prog- ramozési nyelven kell megadni. Programozisi nyelvek tucatjai léteznek, amelyek kéztil néhAnyr6l — példéul a BASIC-r6l vagy a Pascalrél — bizonyara mi is hallowunk mar. Ebben a leckében egy tetsz6leges szbvegszerkeszt6vel elkészitjik els6 Java progra- munkat. Amikor megirtuk a k6dot, mentjik a programot, lefordlitjuk, és kiprobaljuk. A lecke folyamin a kévetkez6 témakérdket érintjtik: Program irdsa szévegszerkeszt6 segitségével A Java program elnevezése a class utasitassal A programk6d szervezése zAr6jelekkel Informécié térolasa valtoz6kban ‘Viltozéban t4rolt informacié megjelenitése Programok mentése Programok leforditasa Programok futtatasa Ahibak kijavitisa 16_ |. rész * Az elsé lépések Mi sziikséges ahhoz, hogy programokat irjunk? Ahogy az 1. leckében elmagyardztuk, a Java programok létrehozisihoz a Java Deve- lopment Kit legfrissebb valtozatira van sziik: kk, vagy egy masik fejlesztGeszkézre, amelyik tmogatja a Java 2 5-6s valtozatit. Tehat ami kell, az egy esziéz, amellyel le- fordithatjuk és kiprobalhatjuk Java programjainkat, illewwe egy szévegszerkeszt6, amivel megirhatjuk azokat A legiébb programozisi nyelven Ggy trunk szimitégépprogramot, hogy beirjuk a k6d szveget egy szdvegszerkeszi6be (vagy rbviden szerkeszt5be), Egyes nyelvek program- fejleszt6 krnyezetei, példdul a Microsoft Visual C++, sajdt szovegszerkeszt6t kindlnak; a Java Development Kit helyett haszndlhat6 sokoldali Borland JBuilder vagy a Sun NetBeans ugyanesak tartalmaz ilyet. A Java programok egyszerti szévegfijlok, amelyekben semmilyen kilénleges formazas (kézépre igazitou széveg, vastag bettik stb.) nem taldlhat6, Barmilyen szovegszerkesz- tGvel megithat6k, ha az képes sima szveges a, Windows rendszeren szimos szerkesa6programot haszndlhatnk, példaul a Jegyzeudmbét (Notepad), a WordPadet, vagy a DOS-os Edit programot. A Mac-felhaszndlék programira a Simple Textet vagy a BBEdit Lightot hi re, az emacs-re és tbb mis programra megfelel a célra. ra znilhatjils, a Linux-felhasznilok pedig a vi- timaszicodhatnak. Az emlitettek barmelyike Kifinomultabb szévegszerkesztével, példaul a Microsoft Worddel is dolgozhatunk, de nem szabad elfelejtentink, hogy a programokat ,sima szévegként” kell mententink. A tipus neve a hasznalt szerkesz6programt6l filggGen mas is lehet; a Wordben példéul .Csak szdveg”, masok DOS szévegnek, ASCII szévegnek vagy valami ilyesminek neve- zik, A konyv példaprogramjainak elkészitéséhez célszertibb egy egyszerd szerkeszt6- programot hasznilni Ha nem tudjuk, hogy szévegszerkeszt6nk képes-e sima szvegként menteni egy ZX, _‘éilt, nyugodtan forduljunk az operéciés rendszerhez adott egyszerti szerkesztékhéz. iy ‘A Java programok megiraséhoz Windowson megfelel a Jegyzettémb, mert ez a program minden féjtt formézas nélkli szdveataiként ment. 2, 6ra + Els6 programunk | 17 A Saluton program elkészitése Els6 Java programunk egy olyan alkalmazas lesz, amely a szdmitégépek vilaginak ha- gyomdnyos készintését — Hello, vilig!” — jelentti meg — méghozz4 eszperant6 nyelven. Kezdjiink hozzé! Java-programoz6i karrieriinket kezdjik azzal, hogy a 2.1. példaprogram kédjét sorr6l sorra beirjuk a szdvegszerkesztGnkbe. A sorok elején taldlhat6 szmot és ketSspontot ne irjuk be; ezekre csak azért van szikség a konyvben, hogy a sorokra a szamuk sze- rint hivatkozhassunk. 2.1, példaprogram —_A Saluton program class Saluton ( public static void main(String!] arguments) ( // ide jon els6 Java programunk kodja ) Ugyelitink, hogy a kis- és nagybettiket pontosan gy irjuk be, ahogy a kédban lathats, A behGizasokat a $20K6z vagy a Tas billentytivel végezhetjiik el. Ha készen vagyunk, mentsiik a f4jlt Saluton. java néven. Ha Windowst haszndlunk, mentéskor tegyik a féilnevet idézéjelbe @®, —_("saluton. java"); fgy biztosak lehetiink benne, hogy a féjlnév végére nem ke- Cy rill automatikusan . ext kiterjesztés. Ezen a ponton a Saluton. java a lehet6 legaltalanosabb Java-programvaz. Tobb prog- ramot is készitiink majd, amit pontosan ugyanigy kell elkezdeni, eltekintve az 1. sorban lev6 saluton sz6t6l. Ez a sz6 adja meg a program nevét, tehat minden programban mas-mds s26 fog itt dllni. A 3. sornak vilégosnak kell lennie, hiszen magyarul van, a tob- bi azonban tjdonsig, de a kévetkezOkben részletesen elmagyardzunk minden elemet. 18_ |. rész * Azelsé lépések Acclass utasités A program elsé sora igy fest: class Saluton ( Magyarra forditva ez ezt jelenti: ,Szimitégép! Nevezd el a Java programomat Saluton- nak". Az 1. leckéb6l emlékezhettink, hogy a szimit6gépnek adott parancsokat wasita- soknak nevezziik. A class utasités arra szolgal, hogy nevet adjunk a programnak. (Mas dolgokat is meghatéroz a programmal kapesolatban, de errél majd késébb beszé- link.) A Java programokban azért a class sz6t hasznéljuk, mert ennek jelentése ,osz- tily’, és a Java programokat osztdlyoknak is hivjak. Ebben a példaban a Saluton programnév megfelel a Saluton. java névnek, amit a f4jlnak adtunk. Altalinos szabély, hogy a Java programok nevének meg kell egyeznie Inév els6 felével, és a ketGnek a kis- és nagybettiket tekintve is azonosnak kell Jennie. Ha a program és a aj] neve nem egyezik meg, egyes Java programok forditisa- kor hibat kaphatunk, att6l fiigg6en, hogy a class utasitassal hogyan dllitottuk be a programot A main utasitas szerepe ‘A program kévetkez6 sora ez: public static void main(String{] arguments) ( Ennek a sornak a jelentése ez: ,ltt kezdédik a program f6 része.” A Java programok kii- l6nb6z6 részekre oszlanak, ezért valahogy azonositani kell azt a részt, amelyet eldsz6r kell feldolgozni. A legtébb Java program belépési pontja a main utasitas. A kivételt a kisalkalmazisok (,applet”-ck) jelentik, amelyeket weblapokon helyeznek el, illewwe a kiszolgal6i kisalkalmazasok (,servlet’-ek), amelyeket egy webkiszolgalé futtat A kényv kévetkezé leckéiben nagyrészt olyan programokat irunk majd, amelyek a main utasitassal kezd6dnek. Azok a franya kapcsos zaréjelek A Saluton programban a 3. sor kivételével minden sorban taldlunk egy kapesos z4rd- jelet — vagy egy nyit6 ( jelet, vagy egy z4ré } jelet. Ezek a zérdjelek arra szolgalnak, hogy csoportositsak a program részeit (ahhoz hasonl6an, ahogy egy szvegben zirdje- lek k6zé zarunk egy gondolati egységet). Minden, ami egy nyité és egy 24rd kapcsos ‘rojel kézatt talilhato, ugyanannak a csoportnak a része. 2. 6ra © Els6 programunk | 19 Ezeket a programrészeket vagy -csoportokat blokkoknak hivjuk. A 2.1. példaprogram- ban az 1. sor nyit6 zirdjeléhez az 5. sor zar6 zirdjele tartozik, vagyis az egész program egyetlen blokkb6l All. Programjaink elejét és végét mindig ilyen zir6jelekkel jelezziik. A blokkokon belill tovabbi blokkok is lehetnek, ahogy ezt a Saluton programban is lathatjuk: a 2, 65 4. sor k6zott egy bels6 blokk takilhat6. A blokkot a main utasitas ve- zeti be; minden, ami a main utasitas blokkjan beliil szerepel, egy-egy utasités, amit a szimftogépnek végre kell hajtania, amikor futtayja a programot Ezen a blokkon bell egyetlen utasitast talélunk: // ide jon els6 Java programunk kédja Eza sor csupan egy hely6rz6. A sor elején allé két perjel (//) ara utasitja a szimitégépet, hogy hagyja figyelmen kiviil az adott sort, mert az esak arra szolgil, hogy a kéclot olvas6 embereket téjékoztassa. Az ilyen sorokat megiegyzéseknek hivjuk (angolul comment”). Ezzel meg is irtunk egy teljes Java programot. A program lefordithat6, de amikor futtat- juk, nem t6rténik semmi. Ez nem csoda, hiszen még semmire nem utasitottuk a {6gépet. A main utasitisblokk csal egy megjegyzéssort tartalmaz, amit a gép figyelmen Kivi hagy. Ha a Saluton programmal tényleg készOnteni szeretnénk valakit, a main blokk kapesos zérdjelei k6zé utasitésokat kell imunk. Informécié térolasa egy valtoz6ban Programjainkban gyakran van szikség egy helyre, ahol ideiglenesen informiciét tirol- hatunk. Erre a célra vdltozdkat hasznalhatunk, amelyekben olyan tipusti acatokat he- lyezhetiink el, mint az egész és lebeg6pontos szimok, az igaz—hamis értékek, a karal tere és a szdvegsorok. A véltozéban térolt adat megvAltozhat ~ innen ered a név. Nyissuk meg a Saluton. java fajlt a szvegszerkeszt6nkben (ha még nincs betéltve), és cseréljik a 3. sort a kévetkez6r string greeting = "Saluton mondo! Ez az utasitas azt parancsolja a szamit6gépnek, hogy tarolja a Saluton mondo! szbve- get a greeting (lidvézlés) neva valtoz6ban. A Java programokban meg kell mondanunk a szamitégépnek, hogy az adott viltoz6 milyen tipust adatot tarolhat. Ebben a példaban a greet ing karakterlanc (string), va- gyis egy olyan szévegsor, amelyben bettik, sz4mok, kézpontozasi jelek és mis karakte- rek lehetnek. zal, hogy kitessziik a string sz6t a viltoz6 neve elé, jelezzitk, hogy az egy karakterlancot fog tirolni. 20 |. rész + Az elsé lépések Amikor befrjuk ezt az utasitist a programba, 2 sort pontosvessz6vel kell lezérnunk. A Java programokban minden utasitas végén pontosvessz6nek kell dllnia (ahogy egy mondatot ponital zarunk le). A szimit6gép ebbél tudia, hogy hol ér véget egy utasitis, és hol kezjavac Saluton. java Saluton.java:4: cannot resolve symbol. symbol: method printin (java.lang.String) location: class java. io.Printstream system. out .printin (greeting) ; 1 error C:\J2aWork> A Javac eszkéz dltal megjelenitett hibaizenetek a kévetkez6 informaci6kat tartalmazzalk: * a Java program neve; + annak a sornak a sz4ma, amelyikben a hiba talalhat6; + ahiba tipusa; © ahibis sor. 2. bra + Els6 programunk | 23 Az el6z6 leckében megtanultuk, hogy a programhibik neve angolul ,bug”, a hibakeresés és -javitis folyamatsé pedig ,clebugging”. Amikor megprébaljuk leforditani a saluton programot, ilyen hibaiizenetet is kithatunk: Saluton.java:4: cannot resolve symbol. symbol + variable greting location: class Saluton system.out .print1n(greting) ; Ebben a példdban a 4-es szim, ami a Saluton. java fajinevet kdveli, arra utal, hogy a hiba a 4, sorban szerepel. Ezért hasznos egy sorszimozést alkalmaz6 szvegszerkesz- (6: ha ilyet haszndlunk, kénnyebben a hibas utasitésra ugorhatunk. Maga a hibaiizenet (cannot resolve symbol: a szimbélum nem oldhaté fel) nem so- kat mond egy kezd6 programoz6nak (sokszor egy tapasztaltabbnak sem). Ha egy hi- baiizenetet nem értiink, nézziik meg a sort, amelyikben a hiba el6fordult, Meg tudjuk dllapitani példaul, hogy a kovetlez6 uta tas miért hilsas? system. out .print1n(greting) ; A helyes valasz: elirtuk a valtoz6 nevét, Az utasitisban greting szerepel greeting helyett. Ha a Saluton program forditasakor hibaizeneteket kapunk, ellenérizziik még, hogy pontosan irtuk-e be a 2.2. példaprogram kédjit, és javitsunk ki minden eltér Kiiléndsen tigyelitink a kis- és nagybetiikre és a kdzpontozisi jelekre ((, } és ;). Gyakran elég, ha megnézaiik a hibatizenethez csatolt utasitassort, javitands hibat. 's észrevesszilk a ki- den példaprogram forraskédjét megtaldljuk. Ha az dltalunk beirt kdban nincs eliras vagy més hiba, ltogassuk meg az emiltett webhelyet, ttsUk le a Saluton. java programot a 2, lecke (Hour 2) oldalérl, és prébaljuk leforditani act a fajlt is. ? Akkényy hivatalos webhelyén, a http: //www. java24hours .com cimen min- Amennyiben a Java-fordit6 olyan hibatizenetekkel valaszol, mind a Bad command or filename (Rossz. parancs vagy fijlnév), az error: Can't read (hiba: nem olvashat6), aClass not found (Az osztily nem taldlhat6) vagy a NoClassDef (Hiinyz6 osztdly- meghatérozds), valdszinGleg helytelentil van bedllitva a Java Development Kit, Ez Win- dows rendszeren gyakran eléfordul. A helyes bedllitishoz olvassuk el az .A” fiigeeléket. 24 |. rész * Az elsé lépések Gyakorlat: Egy Java program futtatésa Az imént létrehozott Java program futtatasahoz egy Java-értelmez6re lesz sziiks példéul a Java Development Kit java nevi parancssoros eszk6zére. Az értelmez6 teszi lehet6vé a szimitégép szAméra, hogy kévesse az Altalunk megirt utasitésokat. A Java programokat tigy futtatjuk, hogy beirjuk a java parancsot, utina egy sz6k6zt, maj @ programot tartal osztalyfajl nevét. Bar az osztalyfajl nevéhez hozza tartozik a class kiterjesztés, a Java-értelmez6vel valé futtatiskor a kiterjesztést el kell hagyni Futtassuk hat a Saluton program osztélyfiljat, hogy Kissuk, azt voln fail t lja-e, amit szerettink Ha a JDK-t hasznaljuk, valtsunk arra a kOnyvtdrra, amelyikben a Saluton.class ak be a kévetkez6t a paranessorba java Saluton Bir a program fajneve Saluton.class, a parancsba ne irjuk be a .class Kiterjesztést, kalénben az értelmez6 hibit jelez, és ledll. Ha a program elindult, ezt kell megjelenitenie: Saluton mondo! Ha ezt a széveget latjuk, elmondhatjuk, hogy elkészitettiik els6 mGkéd6 Java progra- munkat, Szimiégépiink készinti a vilégot, ami olyan fontos hagyomény a szAmitogé- pek vilégaban, mint amilyen fontos sokunknak a k4v6, a roviduijd pol6 vagy a Csilla- gok haboritja-tilmek. ‘Azon tiinédhetiink, hogy miért hagyoményos készéntés a ,Saluton mondo!” (kilé- nésen ha kiprébaltuk més programoz6kkal, és furan néztek rank). Nos, ez a mondat a ,Hellé vildg!” eszperanté megfeleléje, az eszperant6 pedig egy mesterséges nyely, amelyet Ludwig Zamenhof alkotott meg 1887-ben, hogy elésegitse a nem- zetkézi kommunikécist. A szerz6 abban a reményben vette bele a kényvbe, hogy a jévdben tab szémitégép tanul majd meg eszperantéul. Osszefoglalds Ebben a leckében lehet6séget kaptunk, hogy elkészitstik els6 Java programunkat. Meg- tanultuk, hogy a Java programok létrehozisa harom alapvet6 lépésbél All: 1. Megirjukk a programot egy szdvegszerkesztOben. 2, Lefordiijuk a programot, hogy osztalyféjlt kapjunk, 3, Az értelmezét arra utasitjuk, hogy futtassa az osztalyt. 2. 6ra © Eis6 programunk | 25 Mindekézben megismerkedttink néhny szimitogépes alapfogalommal is, mint a fordlt6, az éntelmezé, a blokk, az utasitis 5 a valtoz6. (Ezek jelentése késdbb egyre vilgosabb lesz.) Ha sikeriilt makédésre bimunk a Saluton programot, készen dllunk a folytatisra, Kérdezz-felelek Kérdés: Ugy rémlik, az MS-DOS-ban van egy paranes (program), ami lehetéve teszi, hogy egy billentyiiletitéssel tijra beirhassuk az elz6leg beirt sort. Melyik ez a program? Vélasz: Nyissunk egy MS-DOS parancsablakot, és irjuk be a doskey parancsot. Eat ko- vetéen a rendszer minden beirt parancsot tdrol, és ezek kéz6tt a nyilbillentyiikkel el6- re-hétra mozoghatunk, Ezzel sok idét takzarithatunk meg, amikor megprObélunk kijavi- tani egy programot, amit a fordit6 valamiért nem akar leforditani, A Windows XP-ben ez. szolgaltatés automatikusan rendelkezésre All. Kérdés: A gépemen tobb szovegszerkeszt6 is van. Melyiket haszndljam a Java progra- mok irdsdra? Vailasz: Barmelyik megteszi, amennyiben képes formazis nélkili szévegként menteni a fajlokat. Kulondsen hasznos lehet egy olyan szerkeszt6, amely mutatja a sor szimt, amelyikben a kurzor tartézkodik. (Az, Ultradit-32 példaul olyan windowsos szerkesz- t6program, amely az ablak aljé 's az oszlop szimat is jelzi.) Mivel a javac fordt- (6 a hibatizenetekben megadija a hibas sorok szdmat, a sorok sz4minak jelzése felgyor- sithatja a hibakeresést. sor Kérdés: Mennyire fontos az itres helyek szama a Java programsorokban? Véilasz: Az tires helyek csak arra szolgalnak, hogy a programk6d kénnyebben dtickint- het6 legyen; a Java-fordité nem trédik veliik, A Saluton programot sz6k6zbkkel és ‘Tas-bal behtizott sorok nélkiil is megithattuk volna, a fordités akkor is sikeres lene. A sorok elején tehait nem szimit, hany sz6kdzt hagyunk, de lényeges, hogy kévetkeze- tesek legytink, mert csak igy lesz a programunk fttekinthet6, és igy léthatjuk, melyik blokkba tartozik egy-egy utasft4s. Minél bonyolultabb programot frunk, annal haszno- sabbnak talaljuk a kéd ilyen szervezését. Kérdés: Most akkor egy Java program egyetlen osztaly vagy 16bb osztaly? Valasz: Mindket6 lehetséges, Az ebben és a kovetkez6 néhany leckében szereplé egy- szerii programokat egyetlen .class kiterjesztést fajlba forditjuk, amelyet a java éxelmez6vel futtathatunk. A Java programok azonban aillhatnak tb egytittmakGd6 osztélyb6l is — s6t még az olyan egyszertt programok is, mint a Saluton, mas Java-osz- tilyokat haszndlnak a hattérben, (Err6l majd a 10, leckében beszéhiink részletesebben.) 26 |. 1rész * Az els6 lépések Kérdés: Ha minden utasitdst pontosvess2ével kell lezdrni, akkor az ,// ide j6n els Java programunk kédja” megjegyzéssor végén miért nincs pontosvesszd? Valasz: A megjegyzéseket a fordité teljesen figyelmen kivill hagyja. Ha egy sor elejére kitesszik a // jelzést, azzal azt mondjuk a Java-forditénak, hogy az adott sorban min- dent, ami a két perjelt6l jobbra all, hagyjon figyelmen kivul. ime egy példa, ahol egy s&s egy megiegyzés azonos sorban szerepel: system.out.printin(greeting); // Hellé, vildg! Ebben a pélckiban a fordit6 a System.out .printIn (greet ing) utasitist feldolgozza, a pontosvess76 utini megiegyzést azonban észre sem veszi Kérdés: A ,karakter” micsoda? Valasz: A karakter egyetlen bet, sz4m, iraisjel vagy mAs szimb6lum lehet. Ezek példa- ul karakterek: 7, 5, 8. A karakterek a véltoz6kban szévegként térolédnak. Kérdés: Amikor a javac programmal leforditom a Saluton programot, , Invalid argument” hibaiizenetet kapok. Mit csindlok rosszul? Valasz: Valoszintleg lemaradt a . java kiterjesztés. Ellendrizziik, hogy nem ezt irtuk-e be: javac Saluton Gyéz6djtink meg réla, hogy ugyanabban a konyveérban vagyunk, amelyikben 4 Saluton. java is takilhat6, és a program leforditasahoz iruk be ezt: javac Saluton.java Kérdés: Nem taldlok egyetten hibat sem abban a sorban, amelyikrol a fordite azt altit- ja, hogy hibas. Mit tehet ilyenkor tenni? Vdiasz: § hibatizenetben jelzett sorszim nem mindig a kijavitanad6 hiba helyét jelzi; nézziik meg, hogy az eldite levé sorokban nines-e elias vagy mas hiba. A hiba rend- szerint ugyanabban a programblokkban takilhat6. Kérdés: Ha egy narancslére azt trjék, hogy ,nem koncentrétumbél készillt”, miért nem irnak csak annyit, hogy ,frissen facsart”? Valasz: & nem koncentrétumbol késziilt” narancsleveket k6zvetleniil a gytimdles kifa- csarsa utén forraldssal paszt6rézik (de nem stirtik). A ,frissen facsart” gyiimoleslé Srozott. 2, 6ra » Es6 programunk | 27 Egyes narancsleveken olyan megieléléseket is taldlhatunk, mint a ,chilled or ready-to- serve” vagy a , fresh frozen”. Az eldbbi fagyasztott stiritménybdl vagy pasztGréz6tt gyi méleslébél késziil, mig az utdbbit facsaras utdin rdgtén csomagoljik és lefagyasztjak, paszi6rdzés vagy mis eljaris alkalmazésa nélkill. Ezt a tipust Altalaban a szupermarke- tek mirelitosztdlyan Aruljék, és felolvasztds utén rOgidn thats. Ismétlés A fejezetben tanultak ellen6rzés¢hez valaszoljunk a kévetkez6 kérdésekre! Ismétlé kérdések 1. Amikor leforditunk egy Java programot, mit tesziink? a. Lemezre mentiik. b. Olyan forméra alakitjuk, amit a szmitogép megért c. Felvessziik 2 programgydijteménytinkbe. 2. Mit hivunk valtozénak? a. Ami billeg, de nem esik le. b. Az olyan szBvegrészeket a programban, amelyeket a fordité nem vesz figyelembe. c. Azokat az elemeket a programban, amelyekben informéciékat térolunk. 3. Hogy hivjak angolul a hibakeresést? a. Defrosting b, Debugging cc. Decomposing Valaszok 1. b.A program leforditésa a . java fajlt class failld vagy «class féjlokkd alakitja. 2, ¢. Informaciét nem csak valtozékban tirolhatunk; kés6bb megismerkedtink a hasonl6 célra hasznalhat6 tombokkel és dllandokkal is. A fordit6 altal figye- lembe nem vett szdvegrészek a megiegyzések. 3. b. Mivel a szdmitégépes programokban lev6 hibkat angolul ,bug’-nak hivjak, a hibakeresés és -javitis neve debugging”. Egyes programozasi eszkozdk beépi- tett hibakeres6vel rendelkeznek, amelynek segitségével kijavithatjuk a hibakat. 28 | |. rész * Azels6 lépések Gyakorlatok Ha a fejezetben tanultakba kicsit mélyebben is be szeretnénk 4sni magunkat, tegyk a kovetkezdket: + Forditsuk le a ,Hell6, vilig!” készéntést mas nyelvekre az AltaVista Babelfish webhelyének segitségével (http: //babel .altavista.com). frjunk olyan prog- ramot, amely lehetvé teszi a szdmitégépnek, hogy francidul, olaszul vagy por- tugdlul készéntse a vilégot! © Helyezziink el egy-két hibat a‘Saluton programban; példaul tordljik a pontos- vessz6t az egyik sor végérdl, vagy valtoztassuk a print In sz6t valahol printin-re. Mentstik a programot, és prébaljuk meg leforditani! Figyeljik meg, milyen hibatizenetek kapesolédnak az elhelyezett hibékhoz! Kész példaprogramok a enti feladatokhoz megtaldlhatok a knyv weboldalin, ‘a http://www. java24hours.com cimen. Javai vakacié Mielott még jobban elmélyednénk a Java-programozasban, érdemes tébbet megtud- nunk a nyelvrél és megismerkedniink mas Java-programoz6k munkéival. A Java rész- ben azért lett ilyen révid id6 alatt népszerd, mert segitségével a Vildghdl6n kindlhatunk programokat. Bar mara a Java tilnétt az Internet keretein, ma is taldlhatunk a Weben érclekes példakat. Ebben a leckében néh4ny olyan webhelyet néziink meg, ameh futnak, és megismerkedtink a nyelv tOrténetével, valamint fejl6 hoz egy webbongész6re lesz sziikségiink, ami képes kezelni a Java programokat. A Microsoft Internet Explorer, a Mozilla Firefox és az Opera legfrissebb valtozatai mind képesek a weblapokon talélhat6 Java programok futtatis4ra. Ha Gj Mozila Firefoxot vagy Microsoft Internet Explorert hasznélunk, és az mégsem iikédik a Java programokkal, ellenérizzik a bangész6 bedllitasait, Ehhez a Firefoxban valasszuk a Tools, Options (Eszkézbk, Beéllitsok), az Internet Explorerben pedig a Tools, Internet Options (Eszkézdk, Internetbeéllitésok) meni pontot. Azt kell megnézniink a beéllitasok kézétt, hogy a Java engedélyezett- 30_ I. rész * Az elsé lépések Inditsuk el valasztowt béngész6nket, vegyiik fel leglazaisb hawaii-ingiinket, és késziil- jlink fel a vakéci6ra. A hazat nem hagyjuk el, igyhogy a turizmus egyszerdibb dromei- b6l - furcsa vezetési szokiisoks, egzotikus ételek, egzotikus ndk/férfiak, egzotikus n6k/férfiak plusz ételek stb. — kimaradunk, de nézzitk a dolgok j6 oldalat: oltésra sem lesz sziikség, mint ahogy utazasi csekkekre és titlevélre sem. A leckében a kévetkez6 témakdroket targyaljak: © A Java nyelv * A Java haszndlatanak el6nyei © Példik mtik6d6 Java programokra * Objektumkézponti programozis ‘+ Megiekintésre érdemes webhelyek Java-programoz6knak Az els6é megallé: Sun Microsystems Java-vakaciénkat egy olyan helyen kezdjiik, amelyet most, hogy Java-programoz6k let- tink, gyakran fogunk meglitogatni: a Java nyelvet kifejleszt6 Sun Microsystems web- helyén, a http: //java. sun .com internetcimen. A weblapokba dgyazott Java programokat kisalkalmazdsoknak (applet) hivjék. A kisal- kalmaziisokat ugyanigy helyezik el a weblapokon, mint barmely mas elemet: a HTML jelldnyelv kodjai adjak meg, hol kell megjelennie a program ablakanak, milyen mére- tinek kell lennie, és mit kell csinalnia a programnak, amikor fut. A Sun Microsystems Java részlege felel a Java nyelv és a hozz4 kapesol6d6 eszkézik fej- k rt, Amint az. egy biiszke sziil6t6l elvarhat6, a Sun Java kisalkalmazasokat haszni a webhelyén: a webhelyen eligazit6 targymutaté is ilyen kisalkalmazs, de vannak szaba- don felhasznAllat6 kisallsalmazésok is. A példaprogramok k6z6tt taldlunk egy animale Orit, valamint egy bevasirlokocsit, amelyeket a http: //java.sun.com/openstudio ci- men ki is probithatunk. A Java programok figyelemfelkeltésre nagyszertiek, hiszen képe- sek dinamikusan valtoztatni a bingészben megtekintett oldal tartalmat. Az Ora és mis példaprogeamok a 3.1. dbbran lathat6k, A Sun Java-webhelyén a Java Development Kit legfrissebb valtozatait, illetve mas prog- ramozisi eszkéz6ket is taldlunk. Ezen a webhelyen jelentik be a Java-termékek megiele- nését, itt olvashatjuk el a teljes Java-lefrast, és vitaforumok is rendelkezésre Allnak, ahol a nyelvet tanuld programoz6k egymis segitségére siethetnek. A Sun Microsystems ezen a webhelyen tette eldszir ingyenesen elérhetvé a Javat 1995-ben, és még ma is ez az a hely, ahol a nyelv és a Java Development Kit legijabb valtozatait célszertt keresni. 3.6ra » Jévai vakéci6 | 31 [le Eel Vw Go Qeetmans Toe Hey e >= 8. & Bi mpiinasn cements: Boe ia cocks ty ety ie yc > ‘ecisvlorindgenbe! seams 3.1. Abra A Sun hivatalos Java-webhelyén szdmos programot taldtunk, amelyeket felhasznathatunk sayjit weblapunkon A Java révid térténete A Sun tarsalapit6ja, Bill Joy azt mondta, hogy a Java ,tizendt évayi erdfeszités végered- ménye, ami arra irinyult, hogy jobb, megbizhatébb modbot takaljunk a szamitogépes programok frisara” — a dolog azonban ennél kicsit bonyolultabb volt. A Javat a Sun egyik mérndke, James Gosling fejlesztette ki 1990-ben, és célja egy olyan nyelv létre- hozésa volt, amelyen intelligens eszk6z6k Cinteraktiv TV-k, mindentudé stték, az em- beriséget rabszolgasorba taszit6, mesterséges értelemmel felszerelt SkyNet katonai mél- holdak stb.) ,agyat” lehet megirni. Gosling a programirist C++ nyelven kezdte, cle elé- gedetlen volt az eredménnyel, ezért bezark6zott az irodajaba, és megallsotott egy mé- sik nyelvet, ami jobban megfelelt az igényeinek. ‘Sokunk sajnos annyira szeret Java nyelven programozni, hogy nem érez késztetést ATH masik programozasi nyelv megalkotasdra. Mi bezérkézunk az irodankba — és el- ot inditjuk az Aknakeresot. Gosling az Gj nyelvet Oaknak (,télgy”) nevezte el, mert az irodaja ablakabél éppen egy tlgyfira latott, A nyelv részévé valt a Sun stratégidjanak, ami arra irinyult, hogy millio- kat keressenek az interaktiv televizidzds elterjedésével. Ez maig nem kévetkezett be (bir a TiVo és a ReplayTV kisérleteznek), Gosling Gj nyelve azonban dniill6 életre kelt. 32_ |. rész * Az elsé lépések A Sun mar éppen készen Aillt arra, hogy besztintesse az Oak fejlesztését és a rajta dol- goz6kat a vallalat mas terileteire iranyitsa, amikor a Viligh4l6 (World Wide Web) nép- szertivé valt. A kériilmények szerencsés dsszjitéka folytin azok a jellemz6k, amelyek Gosling nyel- vét kiilondsen alkalmassd teték az okos késziilékek programoziséra, a Weben is hasz- nosnak bizonyultak. A Sun fejleszt6i kidolgoztak annak a médjat, hogy miként lehet programokat biztor vélaszioual: a Java osan futtatni a weblapokrél, és a nyelv 6j céljéhoz Gj nevet is s célokra is alkalmas, a Vikighdlénak késznheti, hogy a nemzetk6zi fi- gyelem ra iranyult. Ha egy programoz6 egy Java programot egy weblapon helyez el, I elérhetGvé teszi azt a sz6rf526 bolygé teljes kdzinsége szimira. Mivel erre eldszir a Java volt képes, a sajt6 sztéroknak kijaré fogadtatisban részesitette a szimit6- gépes nyelvek kéz5t. 1996-ra a nyelv a csticsra jutott: hacsak nem éliiink remeteség- ben vagy nem vettiink részt egy tbbéves mélyGri expedici6n, hallanunk kellett réta, azoni Hallhattuk azt a pletykét, miszerint a Java a Just Another Vague Acronym (,egy jabb homalyos bettisz6") réviditése. Sokan dgy tudjék, hogy a nevet a programo- 26k kedvene itala, a kavé inspirdlta, és azért lett Java, mert a Sun irodahézénak ké- zelében nagyon finom pirkalt vai kévét lehetett kapni egy boltban. A név azonban nem rejttitkos iizenetet, és nem is a fekete ital iranti szenvedélyrdl drulkodik. A Ja vat ugyanazért valasztotték névként, amigrt Jerry Seinfeld, @ komikus mondogatja, hogy ,salsa” ~ egyszertien jél hangzik. A Java nyelvnek eddig hat fbb valtozata jelent meg: © 1995 dsze: Java 1.0 —az eredeti kiaclas; © 1997 tavasza: Java 1.1 — frissités, amelyben javitottak a felhasznal6i feliiletek let rehozasinak és kezelésének médyin; ‘+ 1998 nyara: Java 2 version 1.2 a Java 1.0-ndl tobb mint haromszor nagyobb valtozat, amely a Javat versenyképessé tette az dltalinos céla: programozasi nyel- vek kézétt; ‘© 2000 6sze: Java 2 version 1.3 — gyorsabban fut6 Java programokat eredményez6 és tovabbfejlesztett multimédiss szolgaltatasokat tartalmaz6 kiadas; © 2002 tavasza: Java 2 version 1.4 —jelentés s, amely kib6vitette az internetes szolgiiltatisokat, valamint az XML-kezelési és sz6vegfeldolgozasi képességeket; * 2004 tavasza: Java 2 version 5 —a legdjabb kiads, amely az olyan kiegészftések révén, mint az automatikus adatatalakités, megbizhatobba és konnyebben meg- irhat6va teszi a programokat. 3.6ra * Javai vakacié 33 Iskolaba a Javaval Mivel a Vikighl6 milligkat képes elérni, hasznos forrist jelent az oktatéknak és did koknak, a Java programok pedig a szokvanyos weblapoknal nagyobb interaktivitast biztositanak, ezért egyes programoz6k tigy déntéttek, hogy internetes oktat6progra- mokat készitenek ezen a nyelven. Az egyik legszebb példa a Java ilyen haszndlatdra a http: //www.dhpc. adelaide. edu.au/projects/vishuman2 cimen talalhat6. Ez a webhely a National Library of Medicine (nemzeti orvosi kényvtér) Visible Human Projectjének (,lathat6 ember” projekt) adatait hasznélja fel: ez egy adatbzis, amelyben az eniberi testr6l tobb ezernyi keresztmetszeti kép talalhat6. A gytiteményben a fel- hasznalok egy Java program segitségével kereshetnek és jelenithetnek meg képeket. A kérésekhez nem széveges parancsokat kell kiadni, hanem az egérrel valaszthatjuk ki a test kivant részét, amelyr6l azonnal részletes grafikus informaci6t kapunk. Ez a Java program a 3.2. abran Kithat6. Ele Eat ew Ge feobmais Teo Help © FE up edie satace ex saponewNanons2) Soem Ga ‘amie oman" O04 | Tue wencrouon [oA | anf [pa non ated 3.2. dbra A National Library of Medicine Visible Human Projectjének képei a weben egy Java program Segitségével interaktivan tekinihetok meg Szimos oktat6program létezik tobbféle szAmitogépes rendszerre; ami ezt a programot figyelemremélt6va teszi, az.a sokoldaltisaga. A Visible Human Project eszk6ze hasonl6- an miikédik, mint egy CD-ROM, csak éppen kézvetleniil egy weblapr6l futtathat6, Nines sziikség telepitésre, és a legtébb CD-ROM-t6l eltérSen nem korlitoz6dik PC-s és Macintosh rendszerekre. A weblapokhoz hasonléan a Java programok is barmely szi- mitogépes rendszeren futtathaték, ha az képes a kezelésiikre. 34 | Lrész » Azels6 Kipések A Visible Human Project modellje a 39 éves Joseph Paul Jernigan volt, akit gyilkos- sdgért Texas éllamban 1993-ban kivégeztek. Egy lelkész rébeszélte, hogy testét ajénjia fel tudoményos célokra, de azt nem mondtak meg neki, hogy beldle lesz a vilag leghiresebb anatémiai képeibé! 1800. 0 csak a csalédjat akarta megkimétni a temetés kaltségeitél. java programok kezeléséhez a webbongészGnek rendelkeznie kell egy Java-¢1 Gvel. A bingészGbe épitett értelmezGnek ugyanaz a szerepe, mint annak, amel a2. leckében a Saluton programot futtattuk, a ktilinbség csak annyi, hogy a bngé- 826 értelmezéje csak a weblapokon elhelyezett Java programokat képes futtatni, a pa- rancssorbol indithatéakat nem. A legelterjedtebb Java-képes bongész6k ma a Microsoft Internet Explorer, a Mozilla Firefox, a Netscape Navigator és az Opera. Ezek a bngész6k ismerik a Javat, de egyi- kiik sem tartalmaz beépitett timogatast a Java 2 5-5s valtozatéhoz. A bongész6k fejlesz- 16i sajnos nem tartjak a lépést a Sunnal Abb6I a céIb6l, hogy a Java-programoz6k a Java legfrissebb valtozatara timaszkodhas- sanak, a Sun kifejlesztette a Java b6vitményt Java plug-in), amely egy a bingészdkhiz kiegészit6ként telepithets Java-értelmez6. Ha a b6vitmény jelen van, a programoz6k web alapt programjaikban kihaszndlhaijék a nyely valamennyi szolgaltatdsat, A Sun a Java Development Kithez és més termékeihez is mellékeli a Java itményt, ezért lehetséges, hogy mér ott csiicsil a géplinkén. Ha nem, a Java J: Runtime Environment (Java futdsidejd Kimnyezet) részeként letélthatjik és telepit- hetjik a htep: //java.com cimrdl, ee w A Visible Human Project adatbazishoz hasonlé Java programokat nem kell egy bizo- nyos s Ogéprendszerre irni — ezt hivjik rendszerfiiggetlenségnek. A Javat tigy kotik meg, hogy tbbféle rendlszeren is mikd6képes legyen (eredetileg azért, hogy kalénbdz6 elektronikus késziilékekben hasznilhassak). Java nyelven irt programjaink. mos rendszeren képesek futni anélktil, hogy ez barmiféle tbbletmunkat igényelne tliink. Ez az eldny az egyik legiébb oka anak, hogy olyan sokan — kézttik professzi- onillis szofiverfejlesz16 cégek ~ tanuljaik és haszndijak a Javat, Ha a kOrtilmények meg- feleléck, a Java sziikségtelenné teszi, hogy egy programbél tbb, kdlénbdz6 rendszer- re szabott viltozatot készitstink. Az olyan rendszerfiiggetlen megoldasok, mint a Java, a szofiver lehetséges kozonséget is névelik. Ebéd a JavaWorldnél Ha nem ment el az étvagyunk az ember bels6 szerveinek nézegetése kOzben, tartsunk ebédsziinetet a javaWorldnél, a Java-programoz6k és internetes fejleszi6k online ma- gazinjandl. A JavaWodd webhelyének cime: http://w. javawor2d.com, 3. Gra * Jévai vakécié 35 A JavaWorld oktatéanyagokat, a Java fejlesztésével kapcsolatos hireket és mas rendsze- resen frissitett informacidkat kindl. A webes kézzététel egyik elnye, hogy a cikkeket mGk8d6 Java programoktkeal illusztralhatjak, A 3.3. ara példéul egy ,versiré tablit” mu- tat, ami abhoz a ciktkhez kapesolédik, amelyikben elmagyardzzak, hogy miként lehet ilyen programot késziteni, 3.3, dbra A JavaWorld tumutatéja a verstré tabla elkészitéséhex egy mit 6 példdt is tartalmaz A JavaWorld idGnként dtrendezi a webhelyét, de a kanyy irésakor a versiré tabla SG leitésa a http: / /www. javaworld.com/jw-04-1998/step/poetry -html cimen volt eléthet6. Ha e2 a lap mar nem létezne, a webhely kereséjébe iruk be @ poetry” szé6t, A Java-programozéknak s2616 hasznos cikkeken kiviil a JavaWorld a nyelvrél é¢ annak fejlesztésér61 is tijékoztat. Az egyik leghevesebb vitakat kivalté téma a Java megjelené- se 6ta az, hogy a nyelv biztonsdgos-e. A biztonsig kérdése azért fontos, mert a Java programokat weblapokon helyezik el, és ezek — a leckében eddig kiprobaltak is — le- tliédnek a szamitogépiinkre, és ott futnak. Olyan ez, mintha valaki ledine a géptink- hdz, betenne egy lemezt, és futtatnd a sajét programjat. Hacsak nem ismeriink egy csomé embert, az dltalunk meglatogatott weblapok tabbsé- ge idegen alkot6k munkéja lesz. Biztonsdgi szempontbél ezeknek az idegen progra- moknak a futtatdsa nem sokban kiilnbézik atiél, mintha minden masodik hétvégén kozkinecsé tennénk a szémitégéptinket. Ha a Java nyelv nem akadélyoznd meg a visszaélést, a kisalkalmazisok virusokat juttathatnanak a gépiinkre, féjlokat trdlhet- nének, lejtszhatnak Ashlee Simpson teljes életmavét, és mis nemkivénatos tevékeny- ségeket végezhetnének.. A Java azonban szimos akaddlyt allit a programok elé, hogy a weblapokon elhelyezett alkalmazsok futtatasa biztonsigos leayen. 36_|. rész * Az elsé lépések A biztonsigot elsGsorban az. Interneten futd Java programokra vonatkoz6 alibi altala nos megszoritasok jelentik: + Egyetlen program sem nyithat meg, olvashat, irhat vagy trdlhet féjlokat a fel- hasznalé rendszerén, Egyetlen program sem futtathat mas programokat a felhasznal6 rendszerén. * A program altal létrehozott minden ablaknak egyértelmten Java ablakként azo- nosithat6nak kell lennie. Ez biztositja, hogy senki ne hozhasson létre egy hamis ablakot, ami pélcddul a felhasznaléneviinket és a jelszavunkat kéri, * A programok kizér6lag ahhoz a webhelyhez kapesolédhatnak, amelyikrél szir- maznak. ‘* Minden programot hitelesitenek, hogy meggydz6dhessiink r6la, hogy leforditisa tan nem mécositottak rajta. A Java-tejleszt6k egyetértenek aban, hogy a nyelv elegend6 biztons4gi akadAlyt tartal- maz ahhoz, hogy « Vilaghalén hasznalhaté legyen. Mindazonaltal szmos biztonsigi rést taldltak mir benne (gyakran biztonsagi szakemberek), ezeket azonban a Sun és a webbongész6k gyartdi gyorsan kijavitjak. szemben, és biztonsdgi réseket nyilvén a jévaben is fognak taléini. Ha nem érezzik magunkat biztonsdgban, és nem szeretnénk Java programokat futtatni a webbén- gészénkén keresztl, a bingész6ben kikapesolhatjuk a Java-tamogatést, bar fgy az interaktiv webes tartalmakt6l elesiink, @ A korlatozdsok egyike sem nyijt tees védelmet a rosszindulatd programokkal A Java nyelv arra is lehetdséget ad, hogy a béngész6ben furé programok szimara ru- galmas biztonsigi szabalyokat Allitsunk fel. Egyes gyartécégeket és programoz6kat megjeldlhetiink mint ,megbizhat6 fejlesztéket” (trusted developer), igy az 6 Java prog- ramjaikat a tbbi programra érvényes korlétozasok nélkiil futtathatjuk. Ennek a bizalmi rendszemek az alapjat a digildlis aldirds jelenti, A digitalis alatras egy fajl, amely egyér- telméen azonositja a Java program készit6jét. Az aldirasokat fiiggetlen hitelesité szerve- zetekkel egytiumiikddve hozzak létre; ilyen szervezet példaul a VeriSign, amelynek a webhelye a http: //www.verision.com cimen talélhat6, Ha mar engedélyeztiik egy ActiveX vezérldnek a futast az Internet Explorerben, taldl- koztunk ilyen elven makéd6 hitelesitési rendszerrel. 3..6ra * Jévai vakécié 37 Figyeljiik az eget a NASA-nél Java-utazésunk els6 déluténi megill6ja a NASA (National Aeronautics and Space Admi- nistration), az Amerikai Egyesiilt Allamok kormanyiigyndksége, amely webhelyén szémos Java kisalkalmazast haszndl. Ezek koziil az egyik legnépszeriibb a J-Track, amely a Fold kortil kering6 maholdak tjt segit figyelemmel kisémi. A bongészobe a kovetkez6 cimen tltheté be: http: //science.nasa.gov/Realt ime/JTrack/Spacecraft .htm1 A J-Track a moholdak helyét és paly4jat egy vilégtérképre vetiti, amelyen arnyékolissal azt is jelzi (azoknak, aki nem akarnak kinézni az ablakon), hogy hol van nappal, és ! hol éjszaka. A nézethez tobb mint 100 kulénb6z6 mitholdat adhatunk hozz4, illetve el is tavolithatjulc azokat, amelyekre nem vagyunk kivancsiak. A J-Track kisalkalmazast futs kézben a 3.4. 4bran lathatjuk: megfigyelhetjtik, milyen zstfolttd teszik az égboltot a tudomanyos, katonai és kereskedelmi eszkézdk, amelyek a Fold kéril keringenek, Az UFO-keresoknek fel kell kétnitik a gatyajukat, ha ennyi azonositott reptil6 targy ko= ott egy azonositatlant akarnak tala 3.4, dbra AWNASA J-Track kisallkalmazdsa a Fold kori kerings mitholdate helyzerét és palyajat koveti A J-Track kisalkalmazas a nyomon kévetett mitholdak helyzetét folyamatosan frissiti, és minden eszkéznél megadija a szélességi és hossziisiigi fokot. A valosicle frissités konnyen megoldhat6, mert a Java nyelv tamogatja a tbbszalisigot. A Wbbszdhisag (multithreading) azt jelenti, hogy a szimitégép egyszerre t6bb feladatot képes végezni a program egyik része gondoskodik az egyikrdl, egy masik a masikrél, és a két program- résznek nem kell figyelnie ezymasra. Az Sndlléan futé programrészek neve szdl (thread). 38 |. rész » Az els6 Iépések Egy a J-Trackhez hasonl6 programban minden mchold sajat szilat kaphat, Ha olyan operiiciés rendszert haszndlunk, mint a Microsoft Windows XP, ugyanezt a szolgaltatast hasznaljuk ki, amikor egyidejiileg tébb programot futtatunk. Egy ablakban Texas Hold ‘em pOkert jatszhatunk, mikézben egy masikban a vallalat eladasi mutatéit figyeljtik — 65 kozben még tivolsagi hivast is bonyolithatunk. Udetre fell Az eddigiek alapjén az a benyomasunk tmadhat, hogy a Java els6sorban a sci-fi rajon- goknak és a testiiket kozszemlére tenni kivané embereknek késziilt. Persze ez.a kett6 is sokakat napokig elsz6rakoztathat, de ideje, hogy megnézziink egy gyakorlatiasabb alkalmaziist: kévetkez6 megillonk egy Java nyelvi Gzleti alkalmazas a http: //www.alphatrade.com/partners-freetools.php cimen. Ezen az oldalon szAmos Java nyelv pénziigyi program szerepel: egy akar 20 részvény Aarfolyamat gorgetve bemutatni képes siv, egy testreszabhat6 amerikai és kanadai t6zs- wat, és egy arfolyam-lekérdez6. Az emlitett kisalkkalmazasok futés kézben nyi6 al- kalmazout gépére telepiteni kell, a Java lehet6vé teszi az AlphaTrade,comnak, hogy minden létogaté sz4mara eléthetSvé tegye a programjait. Az alkalmazottaknak igy csak egy webbongész6re van sziikségilk, és arra, hogy ellétogassanak a cég webhelyére. yar Ota Be | became AI | ‘ick Quote: Te rmainatoo nen or Contes trmwata Ue 3.5, ébra Az AlphaTrade.com Java programjaival részvényarfolyamokat elemezhetiink 3.6ra » Jévai vakécié 39 A részvényarfolyamokat girget6 programra tbbféleképpen is tekinthettink. Gondol- hatunk ra agy, mint egy objektumra ~ valamire, ami létezik, helyet foglal, és képes bi- zonyos dolgokat csindlni. A C+#-hoz hasonléan a Java is objektumkézponti nyelv, amint azt a 10, leckében létni fogiuk. Az objektumkézponti programozis (objektum- orientilt programozas, OOP) a szimitégépek programozisinak egyik médja, amely- ben a programok objektumok csoportjabol dlinak. Mindegyik objektumnak egy adott feladatot kell végrehajtania, és tudja, hogyan tirsaloghat a tobbi objektummal. Egy szé vegszerkeszi6 programot példul a kévetkez6 objektumokbdl épithetiink fel © egy dokumentum objektumbél, ami azt a teriiletet abrazolja, ahova beirjuk: a szveget; * egy helyesiris-ellenérz6 objektumb6l, ami képes végignézni a dokumentum ob- jektumot helyesirasi hibalk urn kutatva; * egy nyomtaté objektumbél, ami a dokumentum nyomtatasit kezeli; * egy meni objektumbél, egy egér objektumbél és igy tovabb. A szvegszerkesat6 program a munka elvégzéséhez szilkséges objektumok gydjteménye. Az objektumkézponti programozissal hatékonyan ithatunk hasznosabb programokat Gondoljunk esak a szévegszerkes”t6re: ha a programoz6 a program hely 26 képességét egy masik szoltverben is fel szeretné haszndlni, rendelkezésére all a he- lyesirds-ellendr26 objektum, amelyet valtoztatés nélkil felhaszndlhat. -ellendr- Kérjiink Gtmutatast a Gamelantél! Ennek a Java-utazsnak a sorin az idegenvezet6 profi, aki j6l ismeri a webes kirdndulisok szépségeit és kockazatait. Hamarosan azonban 6nallé utakra kellink, ezért érdemes megallni az egyik legjobb ,inforn irodanal”, ami ma a Java irdnt érdekl6d6 turista rendelkezésére All, Latogassunk el a Gamelan webhelyére a http: //www.developer .com/ java cimen! A Gamelan a Java programok, programozasi forrisok és mas informaciok egyik legna- gyobb gydjteménye. Az ebben a leckében megismert programok nagy részére is tgy bukkantam r4, hogy megtekintetem a Gamelan keresheté adatbazisat. Az adatbazist naponta frissitik, ezért a Java tanulisa kézben ide is célszert stirtin elltogatni, ‘A Gamelan egyik legnagyobb haszna a programoz6k sziméra, hogy megnézhetik, mi- yen programok forréskédja érhet6 el. Ha a kifejezés nem lenne ismer6s: a forrdiskéd azoknak a sz6vegfajloknak a masik neve, amelyek a szamitégépes programok kédjat tartalmazzils. A 2. leckében elkészitett Saluton.. java fijl is forrask6d 40 |. rész * Azelsé lépések A Gamelan Java kisalkalmazisokat és mas forrisokat dsszegyGjt6 Java Applet Ratings Service (JARS) cimtira a http://w. jars.com cimen sok olyan programot tartalmaz, amelyekhez a forrisk6d is remdelkezésre dll. Miutén befejeztiik 24 ris tanfolyamun- kat, érdemes ezekbe a kédokba bepillantani A JARS Ailtal felsorolt Java programok nagy sz4ma azt mutatja, hogy a nyelvet a vilig sok ezernyi programoz6ja hasznéilja. Megtanuliséra részben a nyelv népszertisége Osz- breaktine is ezért lett rvid id6re népszerdi a 80-as évek kézepén. A népszerti- ség misik oka azonban a nyelv egyszertisége. A Javat tigy tervezték, hogy kdnnyebben lehessen megtanulni, mint a C+#-t, amellyel James Gosling megszenvedett, amikor a Sun ,intelligens eszk6z" projektjén dolgozott. A Java nagyrészt a C++-on alapul, ezért azok a programoz6k, akik azt a nyelvet isme- rik, a Javat is konnyen elsajétithatjak. A C++ legnehezebben megtanulhato (és legnehe- zebben alkalmazhat6) részeit azonban a Javabdl eltévolito} A kezd6 programozéknak a Java sokkal konnyebb, mint a C++. Ezen kivil a Java nem mikédik, ha egy program valtoz6it vagy més elemeit helyteleniil hasznaljuk. Ez.a sza- bilyokhoz vald makacs ragaszkodas a tapasztalt programoz6knak fajdalmas lehet, de mindenkit arra kényszerit, hogy helyes programoz6i szokésokat alakitson ki. Egyes nyelveket tgy alkottak meg, hogy a tapasztalt programoz6k minél jobban ki haszndlhassak a szamitogép képességeit a programjaikban: roviditéseket és mas triik- kéket hasznalhatunk benniik, amelyeket a veter‘in programoz6k kénnyen megértenek, A Java nem nyGjtilyen lehet6ségeket — igyekszik olyan egyszerdi lenni, amilyen csak egy objektumkézponta programozisi nyely lehet. A Java megalkotisakor azt tartottak szem el6tt, hogy konnyen tanulhato és konnyen haszndlhat6 legyen, és a hibakeresést is megk6nny Mivel a legtbben az Interneten talallkoznak el6sz6r a Javaval, azt hiszik, hogy ki lag webes programozisra val6, pedig a Javaval barmilyen szoftvert irhatunk, a Java 2 pedig olyan tovabbfejlesztéseket tartalmaz, amelyek a Javat versenyképessé teszik az olyan nyelvekkel szemben is, mint a Microsoft Visual C++. Az egyik ilyen fejlesztés a Swing, amelynek segitségével kifinomult felhasznal6i feliileteket épithettink a Java programokhoz. A Swinggel készitett Java programok képesek a ktilénbéz6 operaciés rendszerek megjelenitést szabudinyaihoz (look-and-feel) alkalmazkodni és igy utinozni zok kinézetét. {thatunk Windows rendszerd programra hasonlit6, Maces vagy éppen egyedi Java-kinézetd (ennek neve ,Metal”) alkalmazisokat is. A Sun Microsystems az utébbi években arra felstette a hangsiilyt, hogy a Javat teljes ér- tekii szofiveriejlesztési nyelvvé tegye, fiiggetlentil atl, hogy a Java nyelven int proges- mokat hol futtatjak.

Vous aimerez peut-être aussi