{autotoc}

Beágyazott osztályok

  • Beágyazott osztály: osztályon, utasításokon, illetve kifejezésen belül definiált osztály; kódja az örökös felől nem hozzáférhető.
  • Tagosztály: más osztály tagjaként definiáljuk.
    • Statikus: segédosztály elrejtése a külvilág elől az adott osztály private tagjaihoz való hozzáférés miatt.
    • Dinamikus: hasonlít a statikus tagosztályhoz, de a befogadó és a tagosztály viszonya 1:n-hez.

JAVA csomagok

A csomag egymással valamilyen kapcsolatban lévő programegységek összessége. Minden csomag önálló névteret jelent. Hozzáférési kategóriák eszköze a csomagba foglalás: félnyilvános, protected tagok (csak csomagon belül elérhetőek). A csomagban fordítási egységek (általában egy osztály) vannak, valamint alcsomagok, és típusok lehetnek benne. A Java csomagszerkezete hierarchikus, hogy rendezett felépítés jöhessen létre. Benne tetszőleges számú alcsomag lehet. Az alcsomag megadja, hogy mely csomagnak a része.

Pl.:

  • java csomag
  • lang - alcsomag
  • util - alcsomag
  • zip al-al csomag
  • jar al-al csomag

Csomagok elemei

  • Egy Java csomag alcsomagokat és típusokat tartalmaz.
  • Az alcsomag nem kapcsolódik erősebben a hierarchiában felette állóhoz, mint egy másik csomag (láthatósági viszonyok nem javulnak, a hozzáférés a típusokhoz nem egyszerűbb).
  • A csomag struktúra célja egy rendezett felépítés létrehozása, amely a fejlesztés menetét követi.
  • Új csomag létrehozása a package csomagdeklarációval történik.

Csomagok leképzése

  • A csomagokat – fordítási egységeket – létre kell hozni, valamilyen módon tárolni kell, és meg kell adni, hogy az adott tárolási mód mellett egy-egy csomaghivatkozás miként feleltethető meg egy tényleges csomagnak. (ahogy a rendszer telepítője létrehozta, letárolta ahhoz kellett a használatban igazodni).
  • A Java csomagok tárolása kétféleképpen történhet:
    • Fájlrendszerben (hagyományos megoldás)
    • Adatbázisban (pl.: IBM VisualAge fejlesztői környezet)

Tárolása: filerendszer (CLASSPATH) és adatbázis.

Csomag felhasználása a forráskódban: import csomagnév. Minden forráskód elején deklarálni lehet, hogy mely csomaghoz tartozik, de ha nem adjuk meg a csomagnevet, akkor egy névtelen csomaghoz tartozik. A csomagban nem lehet azonos neve a típusnak és az alcsomagnak. Ajánlott csomagnév pl.: com.sun.java.swing.plat.windows.

JAVA programok, alkalmazások készítése és futtatása

JAVA programok, alkalmazás készítése és futtatása: Forráskód(ok) megírása (.java fájlok), lefordítása: „javac program.java”, majd futtatása: „java program”. Persze a kész kódokat (több osztály) egy tömörített „.jar” fájlba foglalhatjuk.

Egy program megírása mindig egy új osztály létrehozását jelenti, az eseményfüggő vezérlést pedig a példánymetódusok felüldefiniálásával, illetve a megfelelő eseménykezelő interfészek implementálásával lehet megvalósítani.

Java.lang: A fordító ezt a csomagot automatikusan importálja minden programba. Ez a csomag alapvető osztályokat és interfészeket tartalmaz. Olyan alapvető típusokat definiál, amelyek a program futtatásához szükségesek a rendszernek.

Java.util: Ez a csomag dátum és időkezelő, véletlen számokat előállítani képes, nagyméretű adatok tárolására és kezelésére alkalmas, szövegek feldarabolására képes, stb. osztályokat és interfészeket tartalmaz. Olyan osztályokat tartalmaz, amelyek segédeszközként hasznosak lehetnek saját programjainkban (utility):

  • Dátum (Date), idő (Calendar), időzónák kezelése (TimeZone, SimpleTimeZone),
  • String típusú objektumok felbontásához (StringTokenizer osztály),
  • Bitsorozatok kezeléséhez (BitSet osztály),
  • Démonok (háttérben működő felügyelő/kiszolgáló) szálak megvalósítására megfigyelő és megfigyelt (Obserable, Observer) osztályok,
  • Véletlenszám generátor (Random) osztály,
  • A csomag része a gyűjtemény keretrendszer (Collection Rramework Interface).

Java.io: Be- és kivitel.

Csatornák:

  • Bájt és karaktercsatornák
  • Csatorna megnyitása és bezárása
  • Kiíró műveletek
  • Olvasó műveletek

A beolvasott karakterek értelmezése

  • A tokenek előállítása
  • Egyéb műveletek
  • Számok beolvasása szövegfájlból

 

  • java.lang: nyelvi szinten definiált osztályok
  • java.util: segéd osztályok
  • java.io: be- és kivite