Java programozás

A tantárgy angol neve: Programming in Java

Adatlap utolsó módosítása: 2006. július 1.

Tantárgy lejárati dátuma: 2009. november 24.

Budapesti Műszaki és Gazdaságtudományi Egyetem
Villamosmérnöki és Informatikai Kar

Villamosmérnöki Szak

Műszaki Informatika Szak

Választható tárgy

Tantárgykód Szemeszter Követelmények Kredit Tantárgyfélév
VIAU9156 7-9 4/0/0/v 5 1/1
3. A tantárgyfelelős személy és tanszék Dr. Gál Tibor,
4. A tantárgy előadója

Név:

Beosztás:

Tanszék, Int.:

Dr.Gál Tibor

docens

Aut. és Alk. Inf.

Kovács Ferenc

tanársegéd

Aut. és Alk. Inf.

5. A tantárgy az alábbi témakörök ismeretére épít

Programozás alapjai I-II (Műszaki Informatika Szak)

Programtervezés I-II (Villamosmérnöki Szak)

6. Előtanulmányi rend
Ajánlott:

Tematikaütközés miatt a tárgyat csak azok vehetik fel, akik korábban nem hallgatták a következő tárgyakat:

VIHI9158 Rendszerfejlesztés Java környezetben

7. A tantárgy célkitűzése

A tárgy végső célja, hogy a hallgatók alkalmassá váljanak a Java nyelvű önálló alkalmazások, valamint az elosztott rendszerek kliens- és szerver oldali programozására. Ennek keretében a hallgatók megismerkednek az objektumorientált programozási (OOP) paradigmával, a Java nyelv procedurális és OO szerkezetével, az alapvető osztályokkal és csomagokkal. Fontos szerepet kapnak a tárgyban a grafikus felhasználói interfészek, a hálózatkezelő-, elosztott- és adatbáziskezelő programok. Néhány elterjedten használt fejlesztési környezet bemutatásával a hallgatók betekintést nyernek a Java nyelvű programozási technológiákba, s ezek egyikének részletes ismertetésével lehetőségük nyílik az előadáson elhangzottaknak a szinkron begyakorlására.

8. A tantárgy részletes tematikája

Bevezetés

A Java nyelv és platform sajátosságai, szerepe és helye a többi nyelv és platform között.

A Java programozási környezet

A fejlesztő környezet letöltése, telepítése, fontosabb szolgáltatásai és használata. Egyszerű példa egy alkalmazás és egy applet megírására, fordítására és futtatására.

Alapvető programozási struktúrák a Java nyelvben

Adattípusok és változók. Értékadás és inicializálás. Operátorok és precedenciáik. Sztringek és hasznos metódusaik. Vezérlési szerkezetek. Felhasználó definiált függvények. Tömbök és használatuk.

Objektumok és osztályok

Bevezetés az OOP-be: fogalmak, objektumok és osztályok közötti viszonyok. Meglévő osztályok használata, saját osztályok készítése. Csomagok és hozzáférési jogok. Öröklés, absztrakt osztályok, interfészek, belső osztályok. Kivételkezelés.

A java.lang csomag fontosabb osztályai és metódusai

Becsomagoló osztályok, az Object, Class, Math, String és Thread osztályok, valamint ezek fontosabb tulajdonságai és metódusai.

A grafikus programozás alapjai

Ablakok, keretek és appletek. Alfanumerikus és grafikus információ megjelenítése egy ablakban. Szövegek, fontok, színek, alakzatok és képek rajzolása, kezelése.

Eseménykezelés

Az eseménykezelés alapjai, esemény hierarchia, szemantikus és alacsonyszintű események. Fókusz-, ablak-, billentyűzet-, egér- és menüesemények.

Felhasználói interfész komponensek és elrendezés menedzserek

A fontosabb felhasználói interfész elemek (nyomógomb, szövegmező, szövegterület, jelölőnégyzet, görgetősáv, festővászon) használata, a rajtuk fellépő események kezelése. A fontosabb elrendezés menedzserek (flow, border, card, grid és grid bag layout). Egymásba ágyazott elrendezés menedzserek.

2D grafika és a Swing osztályok

A Graphics2D fontosabb metódusai, alakzatok rajzolása, kitöltési stílusok, átlátszó rajzolás, vonaltípusok, transzformációk. Az AWT és a Swing közti eltérések. A JFrame, JLabel, JButton, JColorChooser komponensek. Belső keretek, táblázatok szálak.

Többszálú programozás

Szálak létrehozása a Thread osztály öröklésével és a Runnable interfész implementálásával. Szálak prioritása, együttműködés és szinkronizálás az isAlive, join, synchronized, wait, notify és notifyAll metódusok használatával. Deadlock, animáció.

Input-output

A Java I/O osztályai és interfészei. Byte stream, karakter stream és file osztályok, szerializáció.

Hálózati kommunikáció

IP címek, portok és protokollok kezelése. Az URL osztály és a http protokoll. Adatok olvasása egy URL-ről. Socketek. Kliens és szerver socketek létrehozása, írás és olvasás. A többszálú programozás használata a szerver socketekben. Az UDP alapú kommunikáció.

Elosztott rendszerek

A Java Remote Method Invocation (RMI) rendszere. Távoli interfészek, objektumok és szerverek. Az RMI fejlesztést és implementációt támogató eszközök: az rmic és az rmiregistry használata.

Adatbáziskezelés

A JDBC rendszer elemei. A szükséges driverek betöltése, csatlakozás az adatbázisra, sql utasítások elküldése az adatbázisba, a visszaadott értékek átvétele. Az RMI és az adatbáziskezelés együttes használata, három és többrétegű rendszerek.

Kitekintés

Vizuális fejlesztő eszközök. Java Beans, Enterprise Java Beans, biztonság, WEB szolgáltatások, stb.

9. A tantárgy oktatásának módja (előadás, gyakorlat, laboratórium)

(előadás, gyakorlat, laboratórium):

Előadás

10. Követelmények

a. A szorgalmi időszakban: nincs

b. A vizsgaidőszakban: vizsga

  1. Elővizsga: utolsó héten
11. Pótlási lehetőségek

A TVSZ. rendelkezései szerint.

12. Konzultációs lehetőségek

Az előadóval való megbeszélés alapján.

13. Jegyzet, tankönyv, felhasználható irodalom

Dr.Gál Tibor: Java programozás. Egyetemi jegyzet, Műegyetemi Kiadó, 2002 (55060).

14. A tantárgy elvégzéséhez átlagosan szükséges tanulmányi munka

(a tantárgyhoz tartozó tanulmányi idő körülbelüli felosztása a tanórák, továbbá a házi feladatok és a zárthelyik között (a felkészülésre, ill. a kidolgozásra átlagosan fordítandó/elvárható idők félévi munkaórában, kredit x 30 óra, pl. 5 kredit esetén 150 óra)):

Kontakt óra

60

Félévközi készülés órákra

45

Felkészülés zárthelyire

-

Házi feladat elkészítése

-

Kijelölt írásos tananyag elsajátítása

-

..

Vizsgafelkészülés

45

Összesen

150

15. A tantárgy tematikáját kidolgozta

Név:

Beosztás:

Tanszék, Int.:

Dr.Gál Tibor

docens

Aut. és Alk. Inf.