Adatstruktúrák, algoritmusok, objektumok



Hasonló dokumentumok
Adatstruktúrák, algoritmusok, objektumok

Objektumorientált programozás C# nyelven

Adatstruktúrák Algoritmusok Objektumok

Objektumorientált paradigma és programfejlesztés Bevezető

1.sz melléklet Nyári gyakorlat teljesítésének igazolása Hiányzások

HIDASNÉMETI KÖZSÉG ÖNKORMÁNYZATA POLGÁRMESTERI HIVATALÁNAK SZERVEZETFEJLESZTÉSE E-KÖZIGAZGATÁSI ALAPISMERETEK

szolgáltatásról

WINDOWS XP - A GRAFIKUS FELÜLET KEZELÉSE

Szoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése

Bánsághi Anna 1 of 67

FELHASZNÁLÓI LEÍRÁS a DIMSQL Integrált Számviteli Rendszer Mérleg moduljának használatához

Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010

A C++ öröklés. (Előfeltétel: 12. tétel ismerete)

Az elektronikus napló

Többrétegű műszaki nyilvántartás. NETinv

COBRA MUNKAÜGY ÉS BÉR PROGRAMCSOMAG ÉVI

Objektumorientált programozás C# nyelven III.

rendszerszemlélető, adatközpontú funkcionális

Az élet szép, környezetünk tele van fákkal, virágokkal, repdeső madarakkal, vidáman futkározó állatokkal.

A SZOFTVERTECHNOLÓGIA ALAPJAI

A hierarchikus adatbázis struktúra jellemzői

Kati Fotó Fuji Labor internetes ügyfélprogram Verziószám: Felhasználói útmutató

KÖZPONTI ELEKTRONIKUS NYILVÁNTARTÁS A SZOLGÁLTATÁST IGÉNYBEVEVİKRİL (KENYSZI) FELHASZNÁLÓI KÉZIKÖNYV ADATSZOLGÁLTATÓK RÉSZÉRE. Budapest,

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:












Az üzenetkezelési szolgáltatások telefonos felhasználói

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

PÁTY ÖNKORMÁNYZATA POLGÁRMESTERI HIVATALÁNAK SZERVEZETFEJLESZTÉSE E-KÖZIGAZGATÁSI ALAPISMERETEK AZ ELEKTRONIKUS ÜGYINTÉZÉS ÉS HATÓSÁGI SZOLGÁLTATÁS

ÓRAREND SZERKESZTÉS. Felhasználói dokumentáció verzió 2.5. Budapest, 2011.

Idősoros elemző. Budapest, április

Előzmények

3. ALKALOM. Felsorolás Helyesírás ellenırzés Váltás kis és nagybető között Táblázat Ablak felosztása Formátummásoló FELSOROLÁS ÉS SZÁMOZÁS

A Közbeszerzési Döntıbizottság (a továbbiakban: Döntıbizottság) a Közbeszerzések Tanácsa nevében meghozta az alábbi. H A T Á R O Z A T - ot.

Tervezett erdőgazdálkodási tevékenységek bejelentése

10. évfolyam 105 óra azonosító számú Hálózatok, programozás és adatbázis-kezelés 105 óra Adatbázis- és szoftverfejlesztés gyakorlat tantárgy

Számítógépi képelemzés

PMD-B200P Felhasználói kézikönyv, 2.0 verzió

IBM Business Process Manager változat 8 alváltozat 5. Munkaerő-felvételi oktatóanyag


2.3. A rendez pályaudvarok és rendez állomások vonat-összeállítási tervének kidolgozása A vonatközlekedési terv modellje

VÍZÓRA NYÍLVÁNTARTÓ RENDSZER

Szakdolgozat. A Microsoft Access módszertana. Témavezetı: Radványi Tibor Készítette: Erényi Péter, 2006 IV. évfolyam, számítástechnika szak

Osztály és objektum fogalma

USB HID 1. Bevezetés. 2. A Hardver

Jogosultságkezelés felhasználói leírás

Aronic Főkönyv kettős könyvviteli programrendszer

A MATLAB programozása. Féléves házifeladat. RGBdialog

Balázs Ildikó* ELEKTRONIKUS KOMMUNIKÁCIÓ JÖVİNK KULCSAI

Tartalomjegyzék. Bevezetés...2

HATODIK FEJEZET / FÜGGİ MODELLEK / TANGRAM

Szakdolgozat. Pongor Gábor

Diákigazolvány Elektronikus Igénylési Rendszer Oktatási Hivatal által biztosított igénylő felület. Felhasználói kézikönyv. v 4.1

MOSAIC Bér exportálása az ABEVJava programba

Jelszó megjegyzése jelölınégyzet kiválasztásával automatikusan bejelentkezik, valahányszor elindítja a. My Instant Communicator alkalmazást.

Méretlánc átrendezés a gyakorlatban (Készítette: Andó Mátyás, a számonkérés az elıadás és a gyakorlat anyagára is kiterjed.)

Programozási nyelvek Java

Bevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek

PHP5 Új generáció (2. rész)

Animációk, effektusok

Erıforrástérkép felhasználói kézikönyv 1.0

Mérlegjegy. Szécsy Számítástehnika 4080 Hajdúnánás, Ady krt

FELHASZNÁLÓI LEÍRÁS a DIMSQL Integrált Számviteli Rendszer Készlet moduljának használatához

Összefüggő szakmai gyakorlat témakörei évfolyam. 9. évfolyam

Összefüggő szakmai gyakorlat témakörei. 13 évfolyam. Információtechnológiai gyakorlat 50 óra

A BETÖRÉSES LOPÁS ÉS RABLÁS ESETEIRE SZÓLÓ VAGYONVÉDELMI SZABÁLYZAT

OKTATÓI FELHASZNÁLÓI SEGÉDLET

Biztonsági rendszerekek 2 Vezérlı berendezés

Ezeket a kiemelkedı sebességő számítógépeket nevezzük szuperszámítógépeknek.


A téri képességek fejlesztése

Programozás 1. 2.gyakorlat

2 A személyes adatokkal kapcsolatos fogalmak és értelmezésük

DEHNsupport Toolbox - Kockázatelemzés Régi projektek megnyitása + mentés DEHN + SÖHNE / protected by ISO 16016

MKB BANK ZRT. ÜZLETSZABÁLYZATA A BANKSZÁMLÁK VEZETÉSÉRİL, A BETÉTGYŐJTÉSRİL ÉS A KAPCSOLÓDÓ SZOLGÁLTATÁSOKRÓL

Tárgyi eszközök felhasználói leírás

LÉTESÍTMÉNYGAZDÁLKODÁS. Változáskezelés. Változás Pont Cím Oldal A teljes dokumentáció átírásra került

1.modul Válogatások, válogatások kétfelé

Karbantartás. Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat:

Szervizelési útmutató

Adatbázisok biztonsága

* Az eszköztáron látható menüpontok közül csak a felsoroltak esetén használható a Ctrl.

Alkatrész és munkadíj kedvezmények a DOAS rendszerben

Hírlevél január. Fejlesztések és változások a Precíz Integrált Ügyviteli Információs rendszerben I. negyedév

Karbantartás. Az ESZR Karbantartás menüjébentudjuk elvégezni az alábbiakat:

Objektumorientált programozás C# nyelven

A HunPLUS 2009 újdonságai

A racionális és irracionális döntések mechanizmusai. Gáspár Merse Előd fizikus és bűvész. Wigner MTA Fizikai Kutatóintézet. duplapluszjo.blogspot.

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

JAVA PROGRAMOZÁS 3.ELŐADÁS

AutoN cr. Automatikus Kihajlási Hossz számítás AxisVM-ben. elméleti háttér és szemléltető példák február

Átírás:

Adatstruktúrák, algoritmusok, objektumok 3. Az objektumorientált paradigma alapelemei Objektum Osztály Példányosítás A konstruktor és a destruktor Osztályok közötti kapcsolatok 1

Objektum Definíció Az objektum állapottal rendelkezı entitás, amely a benne tárolt adatok felhasználásával feladatokat hajt végre és egyéb objektumokkal kommunikál Adatokat és algoritmusokat tartalmaz Saját feladatait önállóan végzi Saját életciklussal rendelkezik A külvilággal meghatározott üzeneteken keresztül tartja a kapcsolatot Az objektum saját adatait mezıknek, beépített algoritmusait metódusoknak nevezzük Az objektumok metódusaikkal vesznek részt az üzenetváltásokban Az üzenetek elemei: célobjektum, metódus, paraméterek, eredmény 2 2

Objektum Állapotok, viselkedés és azonosság Az objektum állapotát mezıi aktuális értéke határozza meg Az objektum állapota az elvégzett mőveletek hatására megváltozhat Két objektum állapota akkor egyezik meg, ha minden megfelelı mezıértékük megegyezik Az objektum mindig megjegyzi aktuális állapotát Az objektum viselkedését az általa ismert (az objektumba épített) algoritmusok határozzák meg Minden objektum egyértelmően azonosítható Az objektumok önállóak (saját életciklusuk határozza meg ıket) Ha két objektum állapota megegyezik, maguk az objektumok akkor sem azonosak 3 3

Osztály Definíció Az osztály egy adott objektumtípust határoz meg annak adataival (mezık) és beépített algoritmusaival (metódusok) Az osztályok egyfajta mintát, sablont adnak az objektumokhoz Az osztályok tehát azonos adatszerkezető és viselkedéső objektumokat írnak le Minden objektum valamilyen létezı osztályba tartozik Más kifejezéssel élve az egyes objektumok azon osztályok példányai, amelyekhez tartoznak Egy osztályból több példány is létrehozható Egy osztály összes példánya ugyanazokat a mezıket és metódusokat tartalmazza Az egyes példányok létrehozásuk pillanatában azonos állapotúak, ezt követıen viszont önállóan mőködnek tovább Léteznek az osztályra (és nem az egyes objektumpéldányokra) jellemzı mezık és metódusok is 4 4

Osztály Példa: az Autó osztály és két példánya (UML) Objektum (példány) Mezıdefiníciók Metódusdefiníciók Osztály(típus) EgyikKocsi.Beindul(); EgyikKocsi.Megy(); MásikKocsi.Beindul(); Autó Gyártó Típus Rendszám Beindul() Leáll() Megy() Fordul() Szerviz() Példányosítás Példányosítás EgyikKocsi : Autó Suzuki Ignis 4WD 5MT KQX-987 Objektum (példány) MásikKocsi : Autó Lamborghini Murciélago LP640 KQX-988 Mezıértékek Mezıértékek 5 5

Objektumorientált szoftverciklus Elemzés, tervezés, megvalósítás Objektumorientált elemzés (OOA) A megoldandó feladat leírása osztályok és objektumok segítségével Objektumorientált tervezés (OOD) A feladatleírás objektumközpontú részekre bontása (dekompozíciója) Logikai modell az osztályok és objektumok Fizikai modell a logikai modellt megvalósító modulok és folyamatok Statikus és dinamikus jellemzık Objektumorientált programozás (OOP) A modell megvalósítása egymással kommunikáló, dinamikusan létrehozott objektumok segítségével, melyek egy-egy osztály példányai OO stílusú programokat bármilyen nem OO nyelven is lehet írni, csak nagyon nehéz Részletesebb, pontosabb információk késıbb (a szoftvertechnológiával foglalkozó tantárgyak keretében) 6 6

Metódusok általános típusai Objektumok létrehozása (példányosítás): konstruktor Ahhoz, hogy az objektumokat használhassuk, elıször létre kell hozni ıket Ez a mővelet a példányosítás Alapja az osztály megadott definíciója A példányosítást követıen érhetık el az objektumok metódusai és ekkortól érhetı el az objektumok mezıinek értéke A konstruktor egy olyan metódus, amelynek segítségével példányok (objektumok) hozhatók létre egy osztályból Feladatai: Új objektum létrehozása Az objektumhoz tartozó mezık kívánt kezdıértékének beállítása Egyéb szükséges kezdeti mőveletek végrehajtása Minden osztályhoz tartoznia kell konstruktornak Ha külön nem definiálunk konstruktort, akkor is létrejön 7 7

Metódusok általános típusai Objektumok megszüntetése (felszámolás): destruktor Az objektumokat az utolsó használat után fel kell számolni Minden objektum külön-külön szüntethetı meg (önállóan léteznek) A destruktor egy olyan metódus, melynek segítségével létezı objektumok szüntethetık meg Egyetlen feladata az objektum megszüntetése Az objektumok felszámolása lehet a programozó feladata vagy történhet automatikusan is Egy objektum akkor számolható fel automatikusan, ha a késıbbiekben már biztosan nincs rá szükség Az automatikus felszámolás fejlettebb és jóval kevésbé hibaérzékeny megoldás Automatikus felszámolás esetén nincs feltétlenül szükség destruktorra 8 8

Metódusok általános típusai Módosító, kiválasztó és iterációs metódusok Módosító metódusok Megváltoztatják az objektum állapotát Kiválasztó metódusok Hozzáférést biztosít az objektum adataihoz, de nem változtatják meg ıket (így az objektum állapotát sem) Iterációs metódusok Az objektum adatainak valamely részhalmazán lépkednek végig, és az adott részhalmazra vonatkozóan végeznek el mőveleteket 9 9

Osztályok közötti kapcsolatok 1. Leszármazás (ún. IS-A kapcsolat) Egy osztály leszármazottai öröklik az osztály jellemzıit Rendelkeznek ugyanazokkal a mezıkkel Tartalmazzák ugyanazokat a metódusokat Ebben a specializációs kapcsolatban a leszármazottat utódnak, az eredeti osztályt ısosztálynak nevezzük A leszármazottak bıvíthetik az ısosztály adatait és algoritmusait Új mezıket adhatnak a meglévıkhöz Új metódusokat definiálhatnak Meglévı metódusok mőködését módosíthatják A leszármazottak minden mőveletre képesek, amelyre az ısosztály képes volt Az utódosztály példányai használhatók az ısosztály példányai helyett 10 10

Osztályok közötti kapcsolatok Példa: leszármazás (UML) Leszármazás Jármő Gyártó Gyártás ideje Típus Tulajdonos Beindul() Leáll() Halad() Szerviz() Autó Meghajtás Rendszám Beindul() Leáll() Halad() Fordul() Hajó Merülés Hívókód Beindul() Leáll() Halad() Elsüllyed() Repülı Szárnyfesztáv Hatótávolság Felszáll() Halad() Leszáll() 11 11

Osztályok közötti kapcsolatok 2. Asszociáció Az asszociáció osztályok közötti tetszıleges típusú viszony Általában az asszociáció konkrét elnevezése fejezi ki a viszonyt Szerep (pl. az ember az autótulajdonosa) Cselekvés (pl. az ember vezeti az autót) Multiplicitás: vannak egy-egy, egy-több és több-több típusú asszociációk Irányultság: az asszociáció lehet egy- vagy kétirányú Asszociációs kapcsolat áll fenn két osztály között, ha az egyiknek a saját helyes mőködéséhez ismernie kell a másikat Példa: egy osztály használ egy másik osztályt (ún. USES-A kapcsolat) 12 12

Osztályok közötti kapcsolatok Példa: asszociáció (UML) Asszociáció Iskola alkalmaz Oktató 0..* órán vesz részt tanul 0..* Hallgató birtokol Leckekönyv 13 13

Osztályok közötti kapcsolatok 3. Aggregáció és kompozíció (ún. HAS-A kapcsolat) Az aggregáció az asszociáció speciális esete: tartalmazási kapcsolat A kapcsolat aszimmetrikus és tranzitív A tartalmazó osztály példányai magukban foglalják a tartalmazott osztály egy vagy több példányát A tartalmazó és a tartalmazott osztály egymástól függetlenül létezhetnek A tartalmazott átveheti (de nem örökli) a tartalmazó egyes jellemzıit A kompozíció az aggregáció speciális esete: szigorú tartalmazási kapcsolat Egy tartalmazottnak mindig csak egy tartalmazója lehet Egy tartalmazó viszont tetszıleges számú tartalmazott példánnyal rendelkezhet A tartalmazó és a tartalmazott életciklusa közös 14 14

Osztályok közötti kapcsolatok Példa: aggregáció és kompozíció (UML) Ablak Kompozíció Varázsló Képnyomtató Lista 1 Kép 1 Aggregáció 0..* Bélyegkép Gomb 5 3 Címke 15 15

Az OOP néhány csapdája Mire kell ügyelni az osztályok kialakításánál? Rossz döntés az osztályok közötti kapcsolat típusának megválasztásánál Pl. leszármazás helyett aggregáció vagy fordítva Leszármazási kapcsolat helytelen kialakítása Az ısosztály túl keveset vagy túl sokat tud Önkéntelenül (nem látható módon) beépített feltételezések Az ısosztály feltételez bizonyos állapotváltozásokat, a metódusok végrehajtási sorrendjét ez nem biztos, hogy a leszármazottaknál is igaz lesz Felduzzasztott osztályok A túl sok mezı és metódus, a túl hosszú metódusok azt jelezhetik, hogy valamilyen módon fel kell bontani az osztályt Elnevezési anomáliák 16 16