Jelenlegi hely

2.1. Az objektum

Az objektumok az objektumorientált technológia alapjai. Néhány példa a hétköznapi életből: kutya, asztal, tv, bicikli. Ezek a valódi objektumok két jellemzővel rendelkeznek: állapottal és viselkedéssel. Például a kutya állapotát a neve, színe, fajtája, éhessége stb. jellemzi, viselkedése az ugatás, evés, csaholás, farok-csóválás stb. lehet. A bicikli állapotát a sebességfokozat, a pillanatnyi sebesség, viselkedését a gyorsulás, fékezés, sebességváltás adhatja.

UML objektum diagram

A programbeli objektumok modelljei a valódi objektumoknak. Az objektum állapotát egy vagy több változóval, a viselkedését az objektumhoz rendelt metódussal (függvénnyel) írjuk le.

Az objektum változókból és kapcsolódó metódusokból felépített egység.

A valós élet objektumait leírhatjuk program objektumokkal. Ha szükség van arra, hogy valódi kutyákat ábrázoljunk egy animációs programban, akkor használhatunk program objektumokat az elvont fogalmak modellezésére. Például egy hétköznapi eseményt modellezhet egy billentyűleütés vagy egérkattintás.

Egy biciklit modellező objektum változókkal írja le a pillanatnyi állapotot: a sebesség 18 km/h, és a sebességfokozat 5-ös. Ezeket a változókat példányváltozóknak nevezzük, mert ezek egy konkrét bicikli állapotát írják le. Az objektumorientált terminológiában egy önálló objektumot példánynak is nevezünk. A következő ábra bemutat egy biciklit modellező objektumot az UML objektumdiagramja (Object diagram) segítségével.

A bicikli tud fékezni, sebességfokozatot váltani is. Ezeket a metódusokat példánymetódusoknak hívjuk, mivel egy konkrét bicikli (példány) állapotában képesek változást elérni.

Az objektum tulajdonságait szokás a külvilágtól elrejteni, és csak a metódusokon keresztül befolyásolni.

Az objektum változók becsomagolását, védőőrizetbe helyezését egységbezárásnak nevezzük.

Időnként – gyakorlati megfontolásból – egy objektum megmutat néhány változóját és elrejti néhány metódusát. A Java nyelvben az objektum meg tudja határozni, hogy négy hozzáférési szint közül melyiket választja az egyes változók és metódusok számára. A hozzáférési szint határozza meg, hogy más objektumok és osztályok hozzá tudjanak-e férni az egyes változókhoz és objektumokhoz.

Az egységbezárás tiszta alkalmazása esetén két egyszerű, de nagyon hasznos előnye lesz a szoftverfejlesztőnek:

  • Modularitás: Az objektum forráskódja független marad más objektumok forráskódjától. Ezen kívül az objektum könnyen tud illeszkedni a rendszer különböző részeihez.
  • Információ elrejtés: Az objektum a publikus interfészén keresztül nyújt kommunikációs lehetőséget a többi objektum felé. Az objektum gondoskodik a saját adatairól, és csak a metódusain keresztül ad változtatási lehetőséget a külső objektumoknak. A külső objektumoknak igazából nem is kell tudnia arról, hogy az objektum állapota milyen belső változókkal van reprezentálva, csak a kívánt viselkedést kell kérnie a metódusokon keresztül.