alfazone.website

alfazone.website

Objektum Orientált Programozás Alapelvei

Úgy, hogy állandóan osztályozzuk a látottakat. Egy konstruktor első utasítása lehet ugyanazon osztály vagy az ősosztály egy másik konstruktorának meghívása Másik konstruktor meghívása: This(aktuális paraméterlista) Ősosztály konstruktorának megívása: Super(aktuális paraméterlista) Implicit konstruktor: egy ősosztálynak mindig van legalább egy konstruktora. 6 (Java 6 platform) A Java egyszerre programozási nyelv és platform.

B:C Az egyes csomagokban található típusokra teljesen analóg módon hivatkozhatunk. A legtöbb objektumorientált nyelvben van egy beépített ős. A lokális változókat inicializálni is kell felhasználásuk előtt. Különbségek: Az if, while, do utasításokban a feltétel csak logikai kifejezés lehet. Az egyes modulokban előírt programozási feladatok megoldásait fel kell tölteniük.

A kivétel keletkezésekor szokásos teendők: Értesíteni a felhasználót, vagy naplózni Valamilyen plusz művlete után folytatni az alkalmazást, esetleg kilépni, súlyos hiba esetén. Csak a többi objektumhoz tartozó megfelelő műveleteket tárja fel. Legtöbbször egy gyerek is hasonlít a mamájára, sok-sok biológiai tulajdonságot örököl tőle, ugyanakkor saját tulajdonságokkal (is) rendelkező, önálló egyéniség. Erre számítani kell, ezért az ilyen kivételeket a metódus fejlécében specifikálni kell. Vagyis a fordító korai kötést alkalmaz ezen hívások célpontjának meghatározására. Dióhéjban ez az osztály keveréket alkot: - üzleti logika. Objektum orientált programozás c++ nyelven. A példányosítás utáni első metódushívás feltételezheti, hogy valamelyik konstruktor már lefutott. Más objektumok metódusai csak akkor tudják befolyásolni őket, ha ezt megengedjük. Minden kivétel osztály a osztály leszármazottja kell legyen, de ez általában közvetve valósul meg.

Öröklődés: Hierarchikus kapcsolat. Applet: HTML oldalból elérhető, végrehajtható bít kód, ami Java forrásból készült. Operációk hozzáadásával funkcionalitást is tudunk adni az osztálynak. Elképzelhető az is, hogy egy metódus formális paramétere, vagy lokális változója eltakarja az osztály valamely adattagjának láthatóságát. A lekezleés egy olyan throw utasítással fejeződik be, amely a paraméterül kapott kivétel objektumot tartalmazza. Az OOP elvek használata mellett az eljárás-orientált nyelvek minden lehetősége lefedhető. Lehetőséget kínál arra, hogy egy osztályt pontosan a szülő osztályhoz hasonlóan fogyaszthassunk, oly módon, hogy ne legyen összetéveszthető az osztályok típusának keverésével, és minden gyermekosztály továbbra is megtartja módszereit, ahogy volt.

Különbségek: Négy új operátor (>>>, >>>=, instanceof, new) Nincs vessző operátor A kifejezések kiértékelési sorrendje meghatározott. Az események (event) fogalma és használata. Azt az osztályt, amelyet alapul veszünk, szülő-, vagy ős-osztálynak nevezzük, azt, amelyik kibővíti ezt, utód-, vagy származtatott-osztálynak. Technikailag ha a Java programunkban szeretnénk egy új osztályt létrehozni, akkor azt a class kulcsszó után kell definiálnunk: Amelyből osztályból egy objektumot a new kulcsszó segítségével hozhatunk létre: Persze ahhoz, hogy egy osztálynak értelme is legyen, testre kell szabni és el kell látni őt a megfelelő adattagokkal és operációkkal. Térjünk vissza a képen látottakhoz. Öröklés során a parent objektum logikáját, felépítését örökli a child. Ugyanakkor ez nem ajánlott programozási technika. Visszatér egy "Nagy könyv";}. A külvilág nem fér hozzá a rejtett adatokhoz. A késői kötés automatizmusa a használatot kényelmessé teszi. Ez megtörténhet a szülői felület újbóli felhasználásával, hogy a gyermekosztály ezeket a módszereket saját verziójában valósítsa meg. Egy osztály interfészén a nyilvános elemeinek összességét értjük, ami a használatához szükséges. Hogyan kezeljük ezeket a kivételes helyzeteket? A függvény hívásakor a fordítóprogram az aktuális paraméterek szignatúráját sorban egyezteti az összes azonos nevű definíció formális paramétereinek szignatúráival.

Az elkészült objektum metódusait meg tudjuk hívni (()): public static void Main(). Feladata minden olyan mellékhatás megszüntetése, amelyet az objektum az élete során okozott. Nézzünk meg egy másik példát: A fentihez hasonló példa, amikor egy objektum elmentheti és lekérheti magát a bemutatóból. Önmagában persze még ez az osztály mindig csak adattárolására szolgál, ezt még ki tudjuk egészíteni azzal, hogy operációkat is adunk hozzá. Hivatkozás objektum elemeire. De ahhoz, hogy meg tudjuk hívni, a mezővel ellentétben, a metódus nem lehet rejtett. TÉTEL Hozzáférési kategóriák és jelentésük. Általában valamiyel hibához kötődik. Az Object osztályban definiált alapfunkcionalitások hasznosak, mert segítik tetszőleges objektumok összehasonlítását, sztringesítését, vagy adott esetben a referencia számolást, ami alapja lesz a szemétgyűjtő mechanizmusnak. Saját kivétel definiálható. Az objektumok gyakran funkcionálisan hasonlóak, megosztják a logika egy részét, de a többiben különböznek. Kivétel keletkezése. Interface implementálása.

A fordítási egységekben találhatók a csomaghoz tartozó kódok, azaz típusok (osztályok és interface-ek) definíciói. Az adattagok deklarációja elé kitehető a static minősítő. Az osztályozás során pontosan ezeket a tulajdonságokat és viselkedést kell leírnunk, illetve meghatároznunk. Technika iszempontból az interface részét képezik az esetleges public minődítésű adattagok is, de használatuk nem ajánlott. 1995: Java 1 platform 1999: Java 2 platform Jelenleg J2SE 1. Szerepe nem azonos a C #include direktívájával, mert nem másolódik be hatására semmi, csak a hivatkozást egyszerűsíti. Egy osztály deklarálható valamely más osztály leszármazottjaként. TÉTEL Az objektumorientált programozás szemlélete, az objektum fogalma OOP szemlélete: a programkészítés egy absztrakciós folyamat, amelyben a valós világban létező jelenséget valamilyen programozási eszköz absztrakciós szintjén képezünk le. Referenciák típuskonverziói¶. Metódus felüldefiniálás: Az előzőnél még hatékonyabb implementációs forma A leszármazott osztály az ős osztálytól örökölt metódust felüldefiniálhatja Egy ilyen metódus hívásánál dönteni kell, hogy az örökölt vagy a saját változat hívódjon meg – polimorfizmus A döntés alapja a hivatkozás dinamikus típusa Mivel a dinamikus típus fordítási időben nem ismert, a felüldefiniált metódusok közötti választást futásidőre kell halasztani – késői kötés. Hol tart jelenleg a C# programozási nyelv? Az OOP nagyobb biztonságot nyújt az absztrakció miatt. Osztály SimpleFilePersistence {.

Általában a vállalatok gyakorlati tapasztalatokat keresnek az OOP nyelvekben és fogalmakban, ezért ajánlott gyakorolni, mivel a tanulási folyamat mentén haladunk. Érdemes minél kisebb blokkot definiálni. Egyszerű típusú lokális változó definíciója egyben helyfoglalást is jelent. Ha egy ős változik, akkor változik azzal a gyerek is. Egy fordítási egység az alábbi részekből áll Csomagdeklaráció Importdeklaráció Típusdeklarációk (osztály vagy interface deklarációk) Csomagdeklaráció: csomagnév megadása: package csomagnév A csomagnév teljes hivatkozás kell legyen. Ennek során megpróbáljuk kiemelni az azonos osztályba került dolgok közös jellemzőit: megtartjuk a lényegesnek vélt tulajdonságokat, és elhagyjuk a lényegteleneket.

Ha egy osztály egy másik osztály minden nyilvános tulajdonságát és metódusát tartalmazza, de vagy egy kicsit bővebb annál, vagy bizonyos metódusai kicsit eltérően működnek, mint a másik megfelelő metódusa, akkor ezt az osztályt célszerű származtatni (örökíteni) a másikból, és csak az eltérő tulajdonságait, metódusait tárolni, a közösekre pedig hivatkozni. Helyfoglalás a tömb elemeinek: Azonosító = new típusnév[elemek száma] A két lépés egy utasításban összevonva: Típusnév azonosító[] = new típusnév[elemek száma] Az elemekre való hivatkozás már ugyanaz, mint a C-ben. A fontos interfészei és azok használata. Az inicializáló kifejezésben csak előtte már deklarált adattagok használhatók. Használata veszélyeket rejt magában, mert implementációs függést hoz létre az ős és a leszármazott osztály között. A polimorfizmusban az absztrakt entitásokat többféle módon hajtják végre. Majd a new-al memóriát foglalunk, és alkalmazzuk ezen új memóriaterületre a konstruktort (TVektor(20)). Emellett még public, protected, private módosítója lehet. Többek között ezt hivatott megoldani az öröklődés. Ezeket, az azonos típusú objektumok által közösen használható adatokat, statikus adatoknak nevezzük, illetve a rájuk hivatkozó változókat statikus változóknak. A Java alapértelmezett csomagja és a benne szereplő osztályok, interfészek hierarchiája látható a következő ábrán: Összefoglalva: az objektumorientált programozás legfontosabb alapfogalmai az osztály és az objektum, legfontosabb alapelvei pedig az egységbezárás, öröklődés és polimorfizmus.

Információ rejtés 5. Nézzük meg az autós példát: az "autó" objektum bizonyos változóit (pl.