Szoftver labor III. Dr. Csébfalvi Balázs Irányítástechnika és Informatika Tanszék e-mail:
[email protected] 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 l töltött kód (appletek) futtatásakor
10 / 17
Hordozhatóság Gép független .cpp: C++ forrás
Gép függ
.exe Gépi kód
Bcc: fordító
processzor
Gép független .java: Java forrás
Javac: fordító
Gép függ
Java: interpreter vagy Just in time fordító
.class Java virt. Gép bájt kód
Java Virtual Machine
Proc.
Minden osztály külön fájlba
Kliens
Szerver
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
Operációs és ablakozó rendszert elfed könyvtár
Java: interpreter vagy Just in time fordító
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
Utasítások mint két független folyamat utasításai, párhuzamos végrehajtás
Felhasználói beavatkozásra vár
f program
szál 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
java
javac 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 javac netscape osztaly.class Program.java
16 / 17
Példa Appletre
17 / 17
6