1 / 25

Objektum orientált programozás

Objektum orientált programozás. Modellezés objektumokkal Nagy Szilvia. Modelltípusok. Objektummodell: az adatokra koncentráló modell; struktúra, attribútumok, metódusok, objektumok közötti kapcsolat leírása osztálydiagrammal:. egerészik a környékén. ház. macska. otthon van benne.

wilton
Download Presentation

Objektum orientált programozás

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Objektum orientált programozás Modellezés objektumokkal Nagy Szilvia

  2. Modelltípusok Objektummodell: az adatokra koncentráló modell; struktúra, attribútumok, metódusok, objektumok közötti kapcsolat leírása osztálydiagrammal: egerészik a környékén ház macska otthon van benne

  3. Modelltípusok Dinamikus modell: rögzíti az időbeliséget, a sorrendiséget; a vezérlést és ütemezést leíró modell folyamatábra, kommunikációs diagram vagy állapotdiagram egerészik eszik alszik figyel hízeleg dorombol

  4. Modelltípusok Funkcionális modell: a végrehajtandó funkciókat, adattranszformációkat leíró modell adatfolyam-ábra forrásnyelő helynyilvántartó jegykiadás jegy jegyrendelés mit, mikor hely néző néző pénz számlázás számla számlanyilvántartó

  5. Objektummodell Attribútumok: az objektum tulajdonságait meghatározó, az objektumban tárolt adatok. • számuk és elnevezésük megadja a struktúrát • változó, lehet összetett, de nem lehet objektum • lehet közvetlen adat (változó) vagy referencia (pointer) • az attribútumok lehetőleg egymástól függetlenek legyenek, és teljesen leírják az objektum modell szempontjából fontos tulajdonságait

  6. Objektummodell Attribútumok típusai: • elnevezés típus – név, anyja neve, személyi szám, alvázszám, törzskönyv szám,… általában nem változik, de ha szükséges, kijavítható • leíró jellegű – az objektumok belső jellemzőit írják le, az objektumot ért hatások kimeneteként megváltozhatnak. • referencia típusú – azon attribútumok, amelyek más objektumokba mutatnak

  7. ember név cím kutya név kor anya név cím gyerek név sz. idő Objektummodell Relációk: láncolás: objektumok (példányok) közötti logikai vagy fizikai kapcsolat asszociáció: az osztályok közötti kapcsolat gazdája opcionális szül egy-több 1+

  8. hallgató név Neptun-kód tárgy cím azonosító jegy Objektummodell Relációk: A relációknak is lehetnek attribútumai – az asszociációk is felvehetnek osztály formát felvesz

  9. ember név cím ember név cím Objektummodell Relációk: Azonos osztálybeli példányok közötti szimmetrikus és nem szimmetrikus relációk feladó címzett levelezőtárs levelet küld szerepek

  10. kutya név fajta kor gazda oltás ideje gazda autója Objektummodell Normalizálás: egy objektum szemantikailag összetartozó attribútumokat kell, hogy tartalmazzon. Azaz az adatokat helyesen kell szervezni, ún. normál formák szerint. Egy objektum attribútumaitúgy célszerű megválasztani,hogy azok az objektum egészére vonatkozzanak. inkább a gazda objektumba

  11. Objektummodell Öröklés: olyan implementációs eszköz, amely lehetővé teszi azt, hogy egy osztályból másik osztály származzon. A származtatott osztály rendelkezik az eredeti osztályban definiált attribútumokkal szerkezettel és viselkedéssel. Eredmény: • fogalmi egyszerűsödés • letisztulás, a hasonló osztályok összevonása • korábbi osztálykönyvtárak használata, az osztályok újrahasznosíthatósága

  12. Objektummodell Öröklés: • az az osztály, amelyből örökölnek az alaposztály (superclass), • az az osztály, amelyik örököl a származtatott osztály (subclass) Egy öröklődési sorban ez osztály fölött minden alaposztály az adott osztályunk őse (ancestor) Egy osztályból (akár közvetetten)származtatott osztályok az osztályunk leszármazottai (descendent)

  13. diák név születési idő Neptun-kód sikeres vizsgaszám kor(): int vizsga(s.vizsgaszám) ember név szül. idő kor(): int diák Neptun-kód sikeres vizsgaszám vizsga(s.vizsgaszám) Objektummodell Öröklés: általában az osztály specializálódik, esetleg általánosítjuk. felhasználhatunk absztrakt osztályt az örökléshez absztrakt: nem használjuk másra, nem képződik objektum belőle

  14. ember név szül. idő kor(): int férfi név szül. idő kor(): dátum-szül.idő nő név szül. idő kor(): dátum-szül.idő-x Objektummodell Öröklés: a származtatott metódusok átdefiniálhatók, az új definíció helyettesíti az eredetit. Ilyenkor az eredeti osztályban virtuális (üres) metódusokat definiálunk:

  15. Objektummodell Öröklés: a leszármazott osztályok az ősök valamennyi attribútumát tartalmazza. Lehet az ősőktől örökölt struktúrát megváltoztatni: • új attribútum hozzáadásával • új metódus hozzáadásával • örökölt metódusok átdefiniálásával Fontos, hogy az öröklés során biztosítsuk, hogy az örökölt de átdefiniált metódusok az örökölt attribútumoknak azon részhalmazára képezzenek, amire az eredeti metódusok, azaz …

  16. Objektummodell Öröklés: A metódusok öröklésénél figyelni kell, hogy az ősök szabályait ne sértsük meg. Metódusok kiterjesztése: az átdefiniált metódusok attribútumokra gyakorolt hatása ugyanolyan, mint az ősöknél, csak néhány új dologgal (új attribútumra vonatkozó hatással) bővítjük azt. (téglalap—átlós téglalap)

  17. Objektummodell Öröklés: A metódusok öröklésénél figyelni kell, hogy az ősök szabályait ne sértsük meg. Metódusok szűkítése: az átdefiniált korlátozza a bemeneti paraméterek halmazát. Sem az új, sem az átdefiniált metódusok nem vezethetnek ki a korlátozott attribútumtérből (összeadás—integer összeadás)

  18. Objektummodell Öröklés: A metódusok öröklésénél figyelni kell, hogy az ősök szabályait ne sértsük meg. Metódusok módosítása: az új metódus mind interfész szinten, mind pedig szemantikailag azonos az eredetivel, csak másként van a feladat algoritmizálva, pl a hatékonyság fokozásáért. (egyszerű cserés sorbarendezés—módosított buborékoltató sorbarendezés)

  19. Objektummodell Öröklés: A metódusok öröklésénél figyelni kell, hogy az ősök szabályait ne sértsük meg. Metódusok befolyásolása: a származtatott osztálynak nagyjából olyannak kell lennie mint az ősnek, de nem igazán van logikai összefügés közöttük. A metódusokat át kell definiálni, tekintet nélkül a korábbi feladatra, esetleg az attribútumokkal egészen mást kell csinálni. Nem javasolt!

  20. Objektummodell Többszörös öröklés: olyan új osztály definiálása, amely két, vagy több régi osztály tulajdonságait és metódusait egyesíti magában négyszög trapéz paralelogramma téglalap rombusz

  21. Objektummodell Többszörös öröklés: fontos probléma, hogy egy közös őstől két vagy több ágon ugyanolyan nevű, de máshogy működő metódusokat örökölhetünk, pl. területre: téglalap téglalap::terület oldal1*oldal2 rombusz rombusz::terület átló1*átló2/2 négyzet

  22. Objektummodell Komponensek: a tartalmazás reláció: rész – egész Aminek a része, az a szülő objektum, a részek pedig a gyermekek téglalap b oldal a oldal átló b oldalfelezőpont középpont

  23. Objektummodell Komponensek: a tartalmazás reláció nem szimmetrikus, ha A része B-nek, B nem része A-nak. A szülő bizonyos – de nem minden – attribútumait átveszi a gyermek, de ha a gyermek olyan üzenetet kap, amelyre nem tud reagálni, akkor feljebb utalja a kérést a szülőnek … amíg kompetens objektumra nem talál

  24. Objektummodell Komponens struktúrája: • rögzített: a komponens objektumok típusa száma előre megadott • változó: csak a szintek száma és az objektumok típusa adott, a komponensek száma változhat • rekurzív: az objektum közvetve vagy közvetlen tartal-mazza önmagát program utasitás függvény egyszerű utasítás

  25. Objektummodell Delegálás: egy objektum valamely metódusát úgy valósítjuk meg, hogy egy az objektummal komponens viszonyban álló objektum metódusával hajttatjuk végre a feladatot

More Related