Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail: cseb@iit.bme.hu http://www.iit.bme.hu/~cseb/ Tematika Bevezetés Java programozás alapjai Kivételkezelés Dinamikus szerkezetek OOP tervezési minták a Java osztálykönyvtárban Abstract Windowing Toolkit (AWT) Appletek programozása ZH példák 2 / 17 Gyakorlatok mindenki ötször jön gyakorlatra a gyakorlat elején 5-10 perces kis ZH az el adás anyagából 2 sikeres kis ZH szükséges a nagy ZH-hoz 3 sikeres kis ZH esetén megajánlott elégséges 4 sikeres kis ZH esetén megajánlott közepes az els gyakorlaton is lesz! 3 / 17 1
ZH Beugró id tartam: 30 perc 6 rövid kérdés segédeszközt nem lehet használni Összetett feladat id tartam: 60 perc az el adás kinyomtatott vázlatai használhatók, de más segédeszköz nem a teljes Java osztálykönyvtárt nem kell ismerni, a feladathoz mellékelve lesznek a felhasználható könyvtári osztályok 4 / 17 Laborfeladatok Sakk program Alapok, OOP váz, megjelenítés konzolon Lépések kezelése AWT, eseménykezelés, applet Képfileok kezelése, Canvas, egérkezelés Szálkezelés, animáció 5 / 17 Jegyzet El adások vázlatai: http://cg.iit.bme.hu/portal/oktatott-targyak/szoftver-labor-iii Irodalom: Java útikalauz programozóknak Glenn Rowe: Java programozás, PANEM Kondorosi K., László Z., Szirmay-Kalos L.: Objektum-orientált szoftverfejlesztés, ComputerBooks, 1995 6 / 17 2
Történeti áttekintés 1990 Green Project (Sun) felhasználói elektronikai készülékek programozása hálózatról letölthet programok 1991 Oak interpreter 1995 a Java hivatalos bejelentése 7 / 17 A Java nyelv Egyszer, objektum-orientált Robusztus és biztonságos Architektúra-semleges, hordozható A Web programozási nyelve Interpretált, többszálú és dinamikus 8 / 17 Egyszer és objektum-orientált Egyszer : szintaktikája az ismert nyelvekhez hasonlít (C++) viszont nincsenek nehezen átlátható megoldások: referencia, destruktor, többszörös öröklés, C preprocesszor nincsenek jól átlátható de nehezen fordítható megoldások operátor overload, enumeráció, template Objektum-orientált(abb mint a C++): csak osztályok, objektumok örökl dés, egységbe zárás, polimorfizmus, dinamikus kötés a teljes run-time library, API objektum-orientált 9 / 17 3
Robusztus és biztonságos Robusztus: kevesebb lehet ség a programozói hibákra default értelmezés nem inicializált változó nulla a kód kiterjedt ellen rzése fordításkor és futtatáskor: interpretált nyelv Biztonságos: szigorú szabályok az internetr futtatásakor l töltött kód (appletek) 10 / 17 Hordozhatóság.cpp: C++ forrás Gép független Bcc: fordító Gép függ.exe Gépi kód processzor.java: Java forrás Javac: fordító Java Virtual Machine Minden osztály külön fájlba Gép független.class Java virt. Gép bájt kód Szerver Gép függ Java: interpreter vagy Just in time fordító Kliens Proc. 11 / 17 Hordozhatóság Ugyanaz az osztálykönyvtár minden platformon Java Development Kit, azaz JDK Operációs rendszer és ablakozó rendszer függetlenség Ugyanaz a program m köd képes Windows, Solaris, Linux, stb. alatt. Szabványosított kezelés: GUI, hálózat, clipboard, www, nyomtatás, adatbázis elérés, 3D, stb..class Java virt. Gép bájt kód Java: interpreter vagy Just in time fordító Operációs és ablakozó rendszert elfed könyvtár Op. rendszer Proc. 12 / 17 4
Többszálas nyelvi szinten támogatja többszálú alkalmazások írását és a köztük szükséges szinkronizációt Felhasználói beavatkozásra vár f program szál Utasítások mint két független folyamat utasításai, párhuzamos végrehajtás 13 / 17 Dinamikus Osztályok dinamikus linkelése: csak a szükséges osztályok tölt dnek be, azok viszont akár futás közben is (szemben a C++-szal, ahol monolitikus EXE, esetleg DLL-ek vannak) az osztályok bárhonnan betölthet ek: file, hálózat, adatbázis, stb. C: void f( ) { } void g( ) { } _f _g 14 / 17 Java programok fajtái: Alkalmazás Parancssorból indítható v. ablakban futó program Ugyanarra képes, mint bármilyen más, az adott platformra írt szoftver Futtatás: java (JDK) vagy más, hasonló programmal (interpreter) bizonyos platformokon (pl. Linux bizonyos verziói) kernel támogatással közvetlenül editor javac java Program.java osztaly.class 15 / 17 5
Java programok fajtái: Applet Internetr l letölthet, böngész b l futtatható kis alkalmazás HTML oldalba van ágyazva Speciális biztonsági rendszabályok: nem férhet hozzá a lokális fájlokhoz nem férhet hozzá rendszer er forrásokhoz (nyomtató, clipboard, stb.) Futtatás: Böngész b l: Netscape, Internet Explorer appletviewer (JDK) programmal appletviewer Program.htm editor Program.java javac osztaly.class netscape 16 / 17 Példa Appletre 17 / 17 6