Öröklés, polimorfizmus, beágyazás

Az objektum-orientált programozás (OOP) - megközelítés létrehozása alapuló programok használatát az osztályok és objektumok, kölcsönhatásban áll egymással.







Osztály (java osztály) ismerteti a készülék és a viselkedése tárgyak. A berendezést írtunk le, egy sor jellemzők (tulajdonságok) és viselkedés - egy sor tárgyak hozzáférhető a műveletek (módszerek). Osztályba lehet létrehozni alapján már rendelkezésre álló hozzáadásával vagy kényszerítő tulajdonságok és módszerek.

Az osztályok sablonokat tárgyak, amelyek alatt áll. Tárgyak - ez a program elemeit, amelyek hasonló sor jellemzők és viselkedés (azaz az elemek alapján szerkesztett egy osztály). Minden tárgy egy állam, ez határozza meg az értékét minden tulajdonságát. Egy program létezhet több osztályok és objektumok különböző osztályokba kölcsönhatásba léphet egymással (via módszerek).

Öröklés szerves része a Java. Ha öröklés venni, hogy egy új osztályt, amely örökli a tulajdonságait a bázis (alap) osztályban az összes tulajdonságok birtokában a szülő. A kód az operandus húzódik. majd a neve az alap osztály. Ez megnyitja hozzáférést biztosít az összes mezők és módszerek az alap osztály.

Használata öröklés, akkor létrehozhat egy közös „java osztály”, amely meghatározza a közös tulajdonsága, hogy egy sor kapcsolódó elemeket. Akkor majd öröklik azt, és hogy további osztályok, amelyek meghatározzák a további jellemzők egyedülálló nekik.

Chief származtatott osztály Java úgynevezett szuper mikrotörzs. Örökölje osztály neve egy alosztálya. Így alosztály - egy speciális változata a szuper osztály örökli az összes tulajdonságait szuperosztályban és hozzáteszi a saját egyedi elemekkel.

Vegyük példának a leírás java class'a Student diák, aki egy név, vezetéknév, életkor és a csoport számát. Osztályban a diákok létre fog hozni egy super user alapján a felhasználói osztály, amely már meghatározta a vezetéknév, keresztnév és születési idő:

Most hozzon létre egy külön osztályt Student örökli a tulajdonságait szuper-osztály. Ha örökölnek egy osztály, akkor is felülírja a szülő osztály konstruktőrök:

Kiterjeszti kulcsszó azt mutatja, hogy mi is örököl osztály Felhasználó.

A szuper kulcsszó

A Hallgatói osztály konstruktor meghívjuk a szülő osztály konstruktora keresztül üzemeltető szuper. halad, hogy az összes szükséges paramétert. A Java, a kulcsszó szuper utal, hogy a superclass, azaz osztály, amely származik a jelenlegi osztályra. A szuper kulcsszó használható, hogy hívja a superclass kivitelező és utalni tagja a szuperosztályban rejtett tagja alosztálya.

Fontolja meg, hogy az öröklődés szempontjából létrehozásának célja:

Először nyit Student Class konstruktor, akkor a konstruktor superclass Felhasználó, majd végrehajtja a fennmaradó műveletek a kivitelező Student. Ez a sorozat a műveletek elég logikus, és lehetővé teszi, hogy sokkal összetettebb tárgyak egyszerűbb.

A superclass lehet több túlterhelt változatainak tervezők, így hívja a módszer super () különböző paraméterekkel. A program elvégzi a kivitelező, amely megfelel a megadott érveket.

A második forma a szuper kulcsszó viselkedik, mint a kulcsszó ezt. Csak ebben az esetben mindig olvassa el a superclass az alosztály, ahol használják. Az általános formája a következő:

Itt, a kifejezés lehet egy módszer vagy például a változó. Az ilyen forma alkalmas olyan esetekben, amikor a tagok nevét az alosztály elrejtése tagja superclass az azonos nevű.

Ennek eredményeképpen meg kell látni a konzolon:

Nyomós módszerek, felülírása

Ha az osztály hierarchia neve és típusa aláírás alosztály eljárás egybeesik az eljárás attribútumok a szuperosztályban az alosztály eljárás felülírja az mikrotörzs módszer. Amikor felülírható nevezett módszert az ő részlege, akkor mindig olvassa el a változata a módszerrel, egy bizonyos alosztálya. A módszer változatával a superclass lesz rejtve.







Ha hozzá kell férnie egy változata a felülírt metódus egy superclass, akkor kell használni a kulcsszó szuper.

Ne tévesszük össze a kényszerítő túlterhelés. Felülírva az eljárás csak akkor kerül végrehajtásra, ha a nevét és aláírását a két módszer azonos típusú. Ellenkező esetben a két módszer egyszerűen túlterhelt.

A Java SE5 megjelent Jegyzet @Override;. Ha azt szeretnénk, hogy felülbírálja az eljárás, használja @Override, és a fordító e hibaüzenetet, ha ahelyett, hogy újradefiniálja véletlenül készült túlterhelés.

A Java, akkor örököl csak egy osztályba.

Számítástechnika, tokozás (lat. En capsula) egy adatcsomagot és / vagy funkciók egyetlen egységben.

Az alapja a beágyazás egy Java osztály. Encapsulation azt jelenti, hogy az objektum mezők nem áll ügyfelei közvetlenül - elrejtettek a közvetlen hozzáférést kívülről. Encapsulation védi az adatokat a tárgy a jogosulatlan hozzáférés, amely lehetővé teszi a tárgy való hozzáférés szabályozására az adatokat.

hozzáférési módosítók

A jelen leírásban alkalmazott osztályú hozzáférési módosítók. Access módosítók lehet tekinteni mind a pont a tokozás és öröklés. Ha tekinthető abból a szempontból tokozás, a hozzáférési módosítók lehetővé teszi, hogy korlátozzuk az illetéktelen hozzáférést az osztályon kívül.

Minden osztály esetében ez a csomag

Nyílt osztály tagjai alkotják a külső is elérhető funkciókat más osztályokba. Zárt (magán) általában bejelentett független külső funkcionális tagjai, valamint a segítő módszerek, amelyek csak a végrehajtás részleteit és Nonuniversality fogva. Hála elrejteni végrehajtásának az osztály, meg lehet változtatni a belső logikája külön osztályban, anélkül, hogy a kód megváltoztatása a többi komponens a rendszer.

Célszerű használni a hozzáférést a tulajdonságait az osztály révén módszerekkel (elve bab osztályok, „POJO”), amely lehetővé teszi, hogy érvényesítse mezőértékekre közvetlen fellebbezést a tulajdonságok rendkívül nehéz nyomon követni, így lehet rendelni helytelen értékeket futásidőben a program. Ez az elv vonatkozik a zárt adatkezelés, és lehetővé teszi, hogy gyorsan változtatni a tárolás. Ha az adatok tárolására nem a memória, a fájlokat vagy adatbázis, akkor meg kell változtatni a módszerek száma egy osztályban, és nem vezetnek be ezt a funkciót minden részében a rendszer.

Program kód van írva a beágyazás elvileg könnyebb a hibakeresés. Ahhoz, hogy tudjuk, hogy milyen időpontban és aki megváltoztatta az ingatlan egy tárgy érdekes számunkra, elég hozzá a hibakeresési kimenet a módszer az objektum, amellyel a hozzáférést a tulajdon az objektum. A közvetlen hozzáférést biztosít a tárgyak tulajdonságait a programozó kellene hozzá hibakeresési kimenet minden része a kód, amely egy tárgy érdekes számunkra.

Példa egy egyszerű robot leírást

Kits módszereket használnak a bemutatott példában a robot indul set és kap. Ez a pár módszerek gyakran nevezik szetter / getter. Ezek a módszerek eléréséhez használt területeken a tárgy. Itt az eljárás befejeződik neve mezőben kezdődik nagybetűvel.

A módszer az értéket áthaladunk a formális paraméter belül az eljárást. Az eljárás kódot rendelünk hozzá az érték az objektum / class kulcsszó használatával ezt.

Az ezzel a kulcsszóval van szükség, mert Neve a formális paraméter egybeesik a változó neve objektumot. Ha a név más lenne, de nem tudtuk ispolzavat ezt.

Nyilvánvaló, hogy kell írni egy kódot, hogy a kép minta következetes végig primitívek, hogy a képernyőn megjelenő, és hívja a sorsolás módszer mindegyik.

Egy személy ismeri a polimorfizmus kelthet több tömböt: külön tömb mindegyik típusú primitívek és kódot írni, amely felsorolja az elemek egymás minden tömb és a hívás minden eleme sorsolás módszer. Az eredmény hasonló lesz a következő kódot:

Segítségével polimorfizmus, akkor nagyban egyszerűsíti a végrehajtása ezt a funkciót. Először hozzon létre az általános formája a szülő osztály minden osztály.

Ezt követően, hozzon létre a különböző osztályok utódai: tér, akkor (tér), Vonal (Line), Sircle (kör) és Triangle (Háromszög):

Az örökösök felülír- módszer sorsoláson. Az eredmény egy osztály hierarchia, amely az ábrán látható.

Öröklés, polimorfizmus, beágyazás

Most nézd meg a csodálatos lehetőséget polimorfizmus:

A következő sorok jelennek meg a konzolon:

Így minden származtatott osztály neve döntetlen módszer, ahelyett, hogy hívja a sorsolás módszere mikrotörzs körvonala.

Polimorfizmusa - az elmélet a típusok, amely szerint a nevek (például változók) jelölhet különböző objektumok, de egy közös szülő osztály. Ezért minden tárgy, amelyet polimorf név maga módján reagálni a közös műveleteket.

módszer túlterhelés, túlterhelés

A procedurális is van fogalma polimorfizmus, ami eltér a mechanizmus venni OOP. Eljárási polimorfizmus lehetőségét sugallja létre több eljárás vagy függvény az azonos nevű, de eltérő számú és típusú paraméterek telt el. Az ilyen függvények az azonos nevű túlterhelt, és a jelenség - egy túlterhelés (túlterhelés). Funkció túlterhelés létezik OOP nevezik módszer túlterhelése. Egy példa a használatát módszer túlterhelése Java nyelven is szolgálhat, mint egy osztály PrintWriter. amelyet különösen az üzenetek megjelenítéséhez a konzolt. Ez az osztály számos módszer println, amelyek különböznek a típusú és / vagy több bemeneti paramétereket. Íme néhány közülük: