Objektum orientált programozás Bevezetés

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

OOP. Alapelvek Elek Tibor

Objektumorientált paradigma és a programfejlesztés

Objektum orientált alapelvek

Objektumorientált paradigma és programfejlesztés Bevezető

Objektum orientált software fejlesztés (Bevezetés)

Programozás. Objektum Orientált Programozás (OOP) Alapfogalmak. Fodor Attila

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Bánsághi Anna 2014 Bánsághi Anna 1 of 31

OOP #1 (Bevezetés) v :39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

Programozás módszertan p.1/46

Programozás III. - NGB_IN001_3

Már megismert fogalmak áttekintése

és az instanceof operátor

Java programozási nyelv 5. rész Osztályok III.

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

Programozási alapismeretek 4.

Adatbázisrendszerek. adatbázisokban. Objektumorientált és objektum-relációs adatbázisok április 24.

Adatstruktúrák, algoritmusok, objektumok

Interfészek. PPT 2007/2008 tavasz.

10-es Kurzus. OMT modellek és diagramok OMT metodológia. OMT (Object Modelling Technique)

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

Objektumelvű alkalmazások fejlesztése 6. gyakorlat. Öröklődés, polimorfizmus. Öröklődés Kódismétlődés objektum-orientált szerkezetben

Objektumorientált szoftverfejlesztés alapjai

Szakterületi modell A fogalmak megjelenítése. 9. fejezet Applying UML and Patterns Craig Larman

Modellinformációk szabványos cseréje. Papp Ágnes, Debreceni Egyetem EFK

Programozási technológia 1.

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Szoftver-technológia II. Modulok és OOP. Irodalom

Objektum orientált programozás (Object Oriented Programming = OOP)

C++ programozási nyelv

S0-02 Típusmodellek (Programozás elmélet)

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Bánsághi Anna 2014 Bánsághi Anna 1 of 33

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

10. előadás. Alapfogalmak. Adatbázisrendszerek előadás november 28.

Osztály tervezési szempontok és C++ implementációs ajánlások

Java programozási nyelv 4. rész Osztályok II.

Interfészek. Programozás II. előadás. Szénási Sándor.

Fogalmi modellezés. Ontológiák Alkalmazott modellező módszertan (UML)

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

NC program ellenorzo szimulátor fejlesztése objektumorientált módszerrel

Méréselmélet MI BSc 1

Programfejlesztési Modellek

SZOFTVERFEJLESZTÉSI TECHNOLÓGIÁK

Adatbázis rendszerek. dr. Siki Zoltán

Programozási nyelvek Java

CORBA Áttekintés. Mi a CORBA? OMG and OMA. Ficsor Lajos. Miskolci Egyetem Általános Informatikai Tanszék

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Mérés és modellezés 1

Adatstruktúrák, algoritmusok, objektumok

C++ programozási nyelv Struktúrák a C++ nyelvben

Mérés és modellezés Méréstechnika VM, GM, MM 1

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás

Bevezetés a C++ programozási nyelvbe

Objektumelvű programozás

OOP alapok Egy OOP nyelvet három fontos dolog jellemez. egységbezárás ( encapsulation objektumoknak öröklés ( inheritance

Programozási nyelvek Java

C++ programozási nyelv

Számítógép architektúra

UML (Unified Modelling Language)

Enterprise JavaBeans 1.4 platform (EJB 2.0)

Objektumorientált programozás C# nyelven

Objektum-orientált programozás

Objektum orientált programozás (Object Oriented Programming = OOP)

Komponens alapú programozás Bevezetés

Programozási technológia

Osztály öröklődés. Öröklődés és polimorfizmus. Programozás II. előadás. Szénási Sándor.

OOP: Java 8.Gy: Abstract osztályok, interfészek

Programozási nyelvek Java

Programozási Technológia előadás bevezetés. Előadó: Lengyel Zsolt

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

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

Bevezetés a Programozásba II 8. előadás. Polimorfizmus Giachetta Roberto

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus

Objektumorientált paradigma

OO rendszerek jellemzői

Az informatika kulcsfogalmai

DCOM Áttekintés. Miskolci Egyetem Általános Informatikai Tanszék. Ficsor Lajos DCOM /1

Java VII. Polimorfizmus a Java nyelvben

Objektumorientáció, objektumorientált szemlélet

Adatszerkezetek 2. Dr. Iványi Péter

Java VII. Polimorfizmus a Java nyelvben

Enterprise JavaBeans. Ficsor Lajos Általános Informatikai Tanszék Miskolci Egyetem. Az Enterprise JavaBeans

Termék modell. Definíció:

Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok

I. Objektumorientált programozás

Programozás 1. 2.gyakorlat

Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés

Virtuális függvények (late binding)

Szoftver újrafelhasználás

Öröklés és Polimorfizmus

Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák

S01-7 Komponens alapú szoftverfejlesztés 1

Kölcsönhatás diagramok

Átírás:

Objektum orientált programozás Bevezetés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 03. 04. OOPALAP / 1

A 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") Objektum orientált programozás (Bevezetés) OOPALAP / 2

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 Objektum orientált programozás (Bevezetés) OOPALAP / 3

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 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!!!) Objektum orientált programozás (Bevezetés) OOPALAP / 4

A programozás s mint modellkész szíté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. Objektum orientált programozás (Bevezetés) OOPALAP / 5

Az objektum orientált programozás s (OOP) szemlélete lete 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. Objektum orientált programozás (Bevezetés) OOPALAP / 6

A 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) Objektum orientált programozás (Bevezetés) OOPALAP / 7

Természetes objektumok: példap 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) 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 Objektum orientált programozás (Bevezetés) OOPALAP / 8

A természetes objektumok jellemzői Az objektum: egyediséggel rendelkező diszkrét entitás jellemzői: attribútumok, 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 (Bevezetés) OOPALAP / 9

A valós világ egy eleme Absztrakció Objektumtól l objektumig Valós objektum Absztrakt adattípus Absztrakció és/vagy formális leírás 1. 2. Megvalósítása vmely programozá eszközzel (Implementáció) Nyelvi elem Osztály Nyelvi elem Objektum Objektum Objektum Példány létrehozása (Deklaráció) 3. Objektum orientált programozás (Bevezetés) OOPALAP / 10

Objektumtól 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ó definíciójából a "leglényegesebb tulajdonságok kiemelése".) Például a objektumnak a Neptun szempontjából lényegtelen az alkoholszintje, de lényeges, hogy melyik tanszéken dolgozik. Objektum orientált programozás (Bevezetés) OOPALAP / 11

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

A valós világ egy eleme Absztrakció Objektumtól l objektumig Valós objektum Absztrakt adattípus Absztrakció és/vagy formális leírás 1. 2. Megvalósítása vmely programozá eszközzel (Implementáció) Nyelvi elem Osztály Nyelvi elem Objektum Objektum Objektum Példány létrehozása (Deklaráció) 3. Objektum orientált programozás (Bevezetés) OOPALAP / 13

Objektumtól l objektumig: 2. szint Az előzőleg definiált fogalom leképezése egy programozási eszközre (osztálydefiní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.) Objektum orientált programozás (Bevezetés) OOPALAP / 14

A valós világ egy eleme Absztrakció Objektumtól l objektumig Valós objektum Absztrakt adattípus Absztrakció és/vagy formális leírás 1. 2. Megvalósítása vmely programozá eszközzel (Implementáció) Nyelvi elem Osztály Nyelvi elem Objektum Objektum Objektum Példány létrehozása (Deklaráció) 3. Objektum orientált programozás (Bevezetés) OOPALAP / 15

Objektumtól 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 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 adataival, egy vizsgaalkalom típusú objektum a megfelelő adatokkal, és egy hallgató típusú objektum Kisházi Brünhilda adataival. A 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. Objektum orientált programozás (Bevezetés) OOPALAP / 16

Az objektum orientált programozás alapelvei 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. Polimorfizmus (polymorphism) Objektum orientált programozás (Bevezetés) OOPALAP / 17

Az objektum orientált programozás alapelvei Osztály, amelynek részei: adatok (az attribútumok modellezésére) módszerek (a műveletek modellezésére). Objektumok közös tulajdonságait definiálja. Programozás technikai szempontból egy típus. Objektum orientált programozás (Bevezetés) OOPALAP / 18

alapelvek (folyt.) Objektum Egy osztály egy működőképes példánya. Egy adott osztályban definiá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. 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. Objektum orientált programozás (Bevezetés) OOPALAP / 19

alapelvek (folyt.) Egységbezárás: 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 Objektum orientált programozás (Bevezetés) OOPALAP / 20

alapelvek (folyt.) 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. Objektum orientált programozás (Bevezetés) OOPALAP / 21

alapelvek (folyt.) Üzenet Az objektummal való kommunikáció módja. A módszerek aktivizálását (invocation) jelenti. Objektum orientált programozás (Bevezetés) OOPALAP / 22

alapelvek (folyt.) Öröklődés Hierachikus kapcsolat(rendszer). A leszármazott osztály örökli az ős osztály adatait és módszereit. Az örökölt módszereket felül definiálhatja a maga számára. Új (saját, csak rá jellemző) adatokat és módszereket definiálhat. Egy leszármazott osztály csak bővítheti, pontosíthatja az őst, de nem utasíthat el örökölt adatokat vagy módszereket. Objektum orientált programozás (Bevezetés) OOPALAP / 23

alapelvek (folyt.) Polimorfizmus (többalakú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. Objektum orientált programozás (Bevezetés) OOPALAP / 24

Az 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 Objektum orientált programozás (Bevezetés) OOPALAP / 25

Az objektum orientált programkész 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 Objektum orientált programozás (Bevezetés) OOPALAP / 26

Az objektum orientált programkész 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. Objektum orientált programozás (Bevezetés) OOPALAP / 27

Objektum orientált programozási 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 stb... Objektum orientált programozás (Bevezetés) OOPALAP / 28