Objektum orientált alapelvek



Hasonló dokumentumok
Objektum orientált programozás Bevezetés

Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítás:

OOP. Alapelvek Elek Tibor

INFORMATIKA 1-4. évfolyam

Történeti áttekintés

Objektumorientált paradigma és a programfejlesztés

Adatstruktúrák Algoritmusok Objektumok

Objektumorientált paradigma és programfejlesztés Bevezető

Halmazok. Halmazelméleti lapfogalmak, hatványhalmaz, halmazm veletek, halmazm veletek azonosságai.

A hierarchikus adatbázis struktúra jellemzői

Az Összetett hálózatok vizsgálata elektronikus tantárgy részletes követeleményrendszere

Gazdasági informatika vizsga kérdések

Széchenyi István Szakképző Iskola

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

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

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

Szakmai program 2015

Tanári kézikönyv az Informatika az 1. és 2. évfolyam számára című munkafüzetekhez és a PC Peti oktatóprogramokhoz TANMENETJAVASLAT 2.

INFORMATIKA Helyi tantárgyi tanterv

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

Tanulmányok alatti vizsgák részei és értékelése

INFORMATIKA. Célok és feladatok évfolyam

MATEMATIKA ÉVFOLYAM

Ügyvitel ágazat Ügyvitel szakmacsoport Ügyviteli titkár Szakközépiskola 9-12.évfolyam Érettségire épülő szakképzés

A vizsga részei A vizsga értékelése Gyakorlat i

A SZOFTVERTECHNOLÓGIA ALAPJAI

Komponens modellek. 3. Előadás (első fele)

Programozás 1. 2.gyakorlat

KÖRNYEZETI KOCKÁZAT ELEMZÉS MAKKEM212M

több időt ad a tanulónak: pl. egy hét. A tanár ezeket is minden esetben ellenőrzi.


P-GRADE fejlesztőkörnyezet és Jini alapú GRID integrálása PVM programok végrehajtásához. Rendszerterv. Sipos Gergely

Objektumorientált programozás C# nyelven

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

MULTIMÉDIA-ALKALMAZÁS FEJLESZTŐ SZAKKÉPESÍTÉS SZAKMAI ÉS VIZSGAKÖVETELMÉNYEI

SAKK-LOGIKA 1 4. évfolyam

Széchenyi István Egyetem Deák Ferenc Állam- és Jogtudományi Kar. Kari Működési Szabályzat. 5. sz. melléklet

INFORMATIKAI ALAPISMERETEK

Bánsághi Anna 1 of 67

EURÓPA 2000 TURISZTIKA- VENDÉGLÁTÓ, FILM ÉS KOMMUNIKÁCIÓS KÖZÉPISKOLA, SZAKKÉPZŐ ISKOLA IGAZGATÓJÁNAK

Matematikai és matematikai statisztikai alapismeretek

Minta 1. MATEMATIKA KÖZÉPSZINTŰ ÍRÁSBELI FELADATSOR. I. rész

SZAKDOLGOZAT. Kiss Albert

Zsámbéki Premontrei Szakközépiskola és Szakiskola helyi tanterve Tartalomjegyzék

Pedagógiai program. Helyi tanterv. enyhe értelmi fogyatékos tanulók számára

GyIK: gyakran ismételt kérdések

INFORMATIKA Emelt szint

Adatszerkezetek és algoritmusok Geda, Gábor

INFORMATIKA OKTATÁS ISKOLÁNKBAN

Tartalom Kontextus modellek Viselkedési modellek Adat-modellek Objektum-modellek CASE munkapadok (workbench)

C++ programozási nyelv

Programozás III. - NGB_IN001_3

Méréstechnika kommunikációs dosszié MÉRÉSTECHNIKA. Anyagmérnök alapképzés (BsC) Tantárgyi kommunikációs dosszié

Az egyszer keres felületen sz kíthetjük a keresést adott mez re a legördül lista segítségével.

XML technikák II Kovács, László

Származtatási mechanizmus a C++ nyelvben

Magas szintű programozási nyelvek 2 Előadás jegyzet

Mérnök informatikus alapképzési szak

MATEMATIKA évfolyam

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

INFORMATIKA 5. évfolyam

Válaszok. Válasz A: A Polgári Törvénykönyv tartalmazza. Válasz B: A biztosítókról és a biztosítási tevékenységről szólót törvény tartalmazza.

Programozás II. labor

TÁMOP VIR alprojekt VIR felhasználói kézikönyv

Szoftver-technológia II. Tervezési minták. Irodalom. Szoftver-technológia II.

JAVA PROGRAMOZÁS 3.ELŐADÁS

INFORMATIKA HELYI TANTERV





Károlyi Mihály Két Tanítási Nyelvű Közgazdasági Szakközépiskola Kémia Helyi Tanterv. A Károlyi Mihály Két Tanítási Nyelvű Közgazdasági Szakközépiskola

3 Hogyan határozzuk meg az innováció szükségszerűségét egy üzleti probléma esetén

A Szekszárdi I. Béla Gimnázium Helyi Tanterve

TANTÁRGYI ÚTMUTATÓ. Statisztika 2. normál kurzusok számára

Adatbázisok és adattárházak az információs rendszerek adatkezelői

SZÉCHENYI ISTVÁN EGYETEM

Irinyi József Általános Iskola 4274 Hosszúpályi Szabadság tér HELYI TANTERV Informatika 4. osztály 2013

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

TARTALOM AZ INFORMATIKA FOGALMA A fogalom kialakítása Az informatika tárgyköre és fogalma Az informatika kapcsolata egyéb

Java programozási nyelv 8. rész Grafikus felhasználói felület

Osztály és objektum fogalma

MATEMATIKA TANTERV Bevezetés Összesen: 432 óra Célok és feladatok

Objektum Orientált Szoftverfejlesztés (jegyzet)

PROGRAMOZÁS 1. kötet TERVEZÉS

Bonobo: A GNOME CORBA alapú komponens-megoldása Unixokra

TÁJÉKOZTATÓ A PEDAGÓGIAI ASSZISZTENS BA KÉPZÉS SZAKIRÁNYAIRÓL

Matematikai logika Arisztotelész Organon logika feladata Leibniz Boole De Morgan Frege dedukció indukció kijelentésnek

Kari Adminisztrátor. Funkcionális leírás

Pedagógiai Program. Petőfi Sándor Gimnázium, Kollégium és Közétkeztetési Központ OM: Mezőberény Petőfi út

AZ ÓBUDAI EGYETEM SZAKIRÁNYÚ TOVÁBBKÉPZÉS TANULMÁNYI és VIZSGASZABÁLYZATA

Templomdombi Általános Iskola PEDAGÓGIAI PROGRAM

Mesterséges intelligencia 1 előadások

TÁJÉKOZTATÓ VENDÉGHALLGATÓK RÉSZÉRE

E-LEARNING ALAPÚ TÁVOKTATÁS A SZÉCHENYI ISTVÁN EGYETEMEN

Informatika. Célok és feladatok. Helyi tantervünket az OM által kiadott átdolgozott kerettanterv alapján készítettük.

I. A légfékrendszer időszakos vizsgálatához alkalmazható mérő-adatgyűjtő berendezés műszaki

NYÍREGYHÁZI FŐISKOLA NYÍREGYHÁZA

Intelligens Rendszerek I. Tudásábrázolás szemantikus hálókkal, keretekkel és forgatókönyvvel

Emberi jogok és szociális munka modul

Átírás:

Krizsán Zoltán 1 [2012. február 12.] Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag

Tartalom Bevezetés

Programozási nyelvek A programozási eszközök absztrakciós szintjei különböz ek: assembly: az adott számítógép architektúra instrukciókészletének leképezése sor orinetált funkcionális (imperatív) nyelvek: adatszerkezetek és algoritmusok absztrakciós szintje. Közel állnak ezek a valóság fogalmaihoz? (Sajna nem... ) objektum orientált nyelvek: együttm köd objektumok absztrakciós szintje. Léteznek a valóságban ezek? (IGEN!!!) Melyik a jobb???

Programozás = modellezés Programokat írunk,de miért? modellezzük a valós világot (annak egy jól behatárolt részét) új világot hozzunk létre (amíg még nincs pl. játékok), de a séma valós A programozás mérnöki munka = gyeld meg, emeld ki e fontos elemeket, a kevésbé fontos elemeket dobd el, modellezd. A valós és a modell világ között át kell alakítani, ha különböz. A valós világ objektum orientált? igen

Program modellezés A programkészítés egy másik megközelítése. Program: a valós világ egy szeletének m köd modellje. Ebben a szemléletben a valós világ egy absztrakt modelljét (analízis modell) kell leképezni egy programozási eszközre. Ezt a folyamatot megkönnyíti az, ha az analízis modell elemei könnyen leképezhet k nyelvi elemekre.

Program készítés Absztrakciós folyamat, amelyben a valós világban létez jelenséget (megoldandó problémát) valamilyen programozási eszköz absztrakciós szintjén képezünk le. A munka nehézsége függ a leképezend jelenség/folyamat bonyolultságától (komplexitásától) a valóság és a programozási eszköz absztrakciós szintjének különböz ségét l ("távolságától")

Absztrakció A idegen szavak szótára (Akadémiai Kiadó) szerint: absztrakció lat 1. elvonatkoztatás, elvonás; a leglényegesebb tulajdonságok kiemelése és általánosítása 2. elvont fogalom

Szemlélet Az analízis modell elkészítése során a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttm ködnek.

Természetes objektumok jellemz i egyéniség (különállás) struktúra (adatok) viselkedés (más objektumokkal való kapcsolata) állapot (adatainak aktuális értéke)

Természetes objektumok példa Egy bizonyos valami Krizsán Zoltán Elég bonyolult struktúrájú, számos viselkedés formára képes objektum. A vér alkoholszintje, mint adat a struktúrájához tartozik. Az alkoholszint pillanatnyi értéke az állapothoz tartozik. Egyes viselkedésformák (pl. sört iszik, vagy eszik) módosíthatják az állapotot. Más viselkedésformák m ködését (pl. járás) az aktuális állapot befolyásolhatja.

Természetes objektumok Az objektum egyediséggel rendelkez diszkrét entitás jellemz i: attribútumok (fontos adatai),m veletek attribútum együttes: objektum állapot, ennek id beli változása az objektum viselkedése m veletek(operations): ezek modellezik az objektum viselkedését.

Objektum orientált programozás alapelvek 1. Osztály (class) 2. Objektum (object) 3. Egységbezárás (encapsulation) 4. Információ rejtés (information hiding) 5. Üzenet (message) 6. Örökl dés (inheritance) 7. Polimorzmus (polymorphism)

Osztály Önállóhatáskörrel rendelkez absztrakt adattípus (programozás technikai szempontból egy típus), melyben logikailag összetartózó adatok és m veletek vannak. adatok szer részek módszerek (a m veletek modellezésére). Objektumok közös tulajdonságait deniálja. Váza az objektumoknak le <-> processz ua. osztály <-> objektum

Objektum Egy osztály egy m köd képes példánya. Egy adott osztályban deniált tulajdonságokkal tetsz leges számú objektum példányosítható. Minden objektum természeténél fogva különbözik az összes többit l. Vázuk azonos: egy adott osztályból példányosított valamennyi objektumnak ugyanolyan lehetséges viselkedés módjai (m veletei) vannak, de saját állapotuk van.

Objektumtól objektumig 1. Valós objektum: a valós világ egy eleme. 2. Absztrakt típus: a valós objektum egyszer sített, kiemelt verziója. Szövegesen leírt, vagy diagram elem. 3. Osztály: Az adott nyelvre leképzett váz. Nyelvt l er sen függ: van tulajdonság? Mi a hatékony? Mi a szokás? 4. Objektum: osztály egy példánya.

Objektumtól objektumig 1. szint Tanulmányozzuk a valós objektumokat, és megkeressük azoknak a probléma megoldása szempontjából fontos adatai és viselkedésmintáit. (Az absztrakció deníciójából a "leglényegesebb tulajdonságok kiemelése".) Például a Krizsán Zoltán objektumnak a Neptun szempontjából lényegtelen az alkoholszintje, de lényeges, hogy melyik tanszéken dolgozik.

Objektumtól objektumig 1. szint Ezután megkeressük azon objektumcsoportokat, amelyek azonos adatokkal és viselkedésmintákkal rendelkeznek, és elnevezzük ezt a csoportot. (Az absztrakció deníciójából az "általánosítás".) Így jön létre a Neptun szempontjából az "oktató" fogalom.

Objektumtól objektumig 2. szint Az el z leg deniált fogalom leképezése egy programozási eszközre (osztálydeníció elkészítése). Ez valójában egy minta a program m ködéséhez szükséges objektumok létrehozására. Például a Neptun szempontjából egy oktatónak vannak lényeges adatai (neve, tanszéke, min sítése stb.) és vannak lehetséges viselkedésformái (kurzust hirdethet meg, vizsgaid pontot írhat ki, jegyet adhat stb., de például nem nézheti meg egy hallgató adószámát.)

Objektumtól objektumig 3. szint Akkor és annyi objektumot kell létrehozni a program futása során, amelyek együttm ködve képesek a valóságot modellezni. Például amikor Nem Tom oktató be akarja írni Kisházi Brünhilda hallgatónak a GEIAL214N kurzus vizsgájához tartozó jeles vizsgajegyet, akkor Létrejön egy oktató típusú objektum Nem Tom adataival, egy vizsgaalkalom típusú objektum a megfelel adatokkal, és egy hallgató típusú objektum Kisházi Brünhilda adataival. A Nem Tom objektum üzen a vizsgaalkalom objektumnak, megadva a hallgató nevét és jegyét, aki (ellen rzések után) egy üzenetet küld a hallgató objektumnak, megváltoztatva ezzel az állapotát.

Egységbezárás Logikai összetartozást valósítja meg. Elszigeteli a részeket egymástól (saját hatáskör). Az osztály az adatait és a módszereket egy egységgé teszi. az adatok és a módszerek lokálisak a módszerek hozzáférhetnek az adatokhoz

Információ rejtés Egy objektum adatai a külvilág (más objektumok) számára hozzáférhetetlenek. Egy objektum a külvilággal csak az interface-én keresztül tarthatja a kapcsolatot. Interface: a külvilág számára elérhet módszerek együttese. A módszerek implementációja rejtett.

Üzenet Az objektummal való kommunikáció módja. A módszerek aktivizálását (invocation) jelenti alap esetben. C#-ban vannak tényleges üzenetek események (event), azaz a nyelv része.

Örökl dés Hierachikus kapcsolat(rendszer). A leszármazott osztály örökli az s osztály elemeit. Az örökölt elemeket felül deniálhatja a maga számára. Új (saját, csak rá jellemz ) elemeket deniálhat. Egy leszármazott osztály csak b vítheti, pontosíthatja az st, de nem utasíthat el az örökölt elemeket. Tartalmazza az örökölt elemeket, de nem biztos, hogy eléri.

Többalakúság, többrét ség Bizonyos elemek viselkedése attól a környezett l függ, amelyben alkalmazzuk. A gyakorlatban ez azt jelenti, hogy egy nyelvi elem (például egy kódrészlet) attól függ en, hogy hol alkalmazzuk, más-más m ködést eredményezhet. Praktikusan: egy kódrészlet ismeretében nem tudhatjuk, hogy mi fog m ködni.

Objektum orientált program Egymással kommunikáló objektumok halmaza m ködés: üzenetváltások struktúra: osztályok és objektumok közötti kapcsolatok

OOP program készítés folyamata A probléma leírásában keressük az objektumokat. Objektum csoportok közös tulajdonságait osztályokkal írjuk le. Megkeressük az osztályok kapcsolatait. Az osztályokat és kapcsolataikat implementáljuk egy programozási eszközzel.

OOP program készítés folyamata Létrehozzuk a megfelel példányokat (objektumokat) a megfelel id ben, és megoldjuk a kommunikációjukat. Az implementációhoz általában szükségünk van az eredeti probléma objektumain túl technikai szerep osztályokra / objektumokra is, például adatszerkezetek kezelésére (tömb, stb), vezérlési feladatok megoldására, megjelenítési feladatok megoldására, stb.

OOP nyelvek Nagyon sok van, számos integrált fejleszt eszközzel. Az els sikeres: Smalltalk Legelterjedtebbek: C++ Java C# ObjectPascal (f leg a Delphi fejleszt eszköz miatt) Python PHP 5 stb...