Objektumorientált paradigma és programfejlesztés Bevezető

Hasonló dokumentumok
Objektumorientált paradigma és a programfejlesztés

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:

Adatstruktúrák, algoritmusok, objektumok

OOP. Alapelvek Elek Tibor

Adatstruktúrák, algoritmusok, objektumok

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

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

Objektum orientált alapelvek

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

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

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

Objektumorientált paradigma

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

és az instanceof operátor

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

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

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

Adatstruktúrák Algoritmusok Objektumok

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

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

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

III. OOP (objektumok, osztályok)

Adatstruktúrák, algoritmusok, objektumok

Programozási nyelvek Java

Programozási alapismeretek 4.

Programozási nyelvek Java

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

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

UML (Unified Modelling Language)

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

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

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?

Bánsághi Anna 1 of 67

Java és web programozás

Objektumelvű programozás

OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN

Programozási technológia 1.

Programozási nyelvek Java

Programozás módszertan p.1/46

A programozás alapjai előadás. Amiről szólesz: A tárgy címe: A programozás alapjai

Programfejlesztési Modellek

TestLine - OO Programozás alapjai Minta feladatsor

Objektumorientált szoftverfejlesztés alapjai

C++ programozási nyelv

Algoritmusok, adatszerkezetek, objektumok

Osztályok. 4. gyakorlat

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

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

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

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

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

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

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

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

Egy Erlang refaktor lépés: Függvényparaméterek összevonása tuple-ba

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

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.

Java és web programozás

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Java és web programozás

Bevezetés az informatikába

Objektum-orientált programozás

OOP #14 (referencia-elv)

Interfészek. PPT 2007/2008 tavasz.

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

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

Adatstruktúrák, algoritmusok, objektumok

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

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

JAVA PROGRAMOZÁS 3.ELŐADÁS

Java. Perzisztencia. ANTAL Margit. Java Persistence API. Object Relational Mapping. Perzisztencia. Entity components. ANTAL Margit.

Méréselmélet MI BSc 1

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

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

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

14. Objektum-orientált tervezés

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

Felhasználó által definiált adattípus

Szoftverminőségbiztosítás

Programozás alapjai (ANSI C)

Objektumorientált felbontás

Funkcionális és logikai programozás. { Márton Gyöngyvér, 2012} { Sapientia, Erdélyi Magyar Tudományegyetem }

Objektumorientált Programozás VI.

Abstract osztályok és interface-ek. 7-dik gyakorlat

OOP és UML Áttekintés

Objektum orientáltság alapjai A Java nyelv Fordítás - futtatás

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

Struktúra nélküli adatszerkezetek

A gyakorlat során az alábbi ábrán látható négy entitáshoz kapcsolódó adatbevitelt fogjuk megoldani.

Objektumorientáció, objektumorientált szemlélet

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

Programozási nyelvek Java

Programozás alapjai II. (3. ea) C++ Programfejlesztés. Néhány programozási módszer. Feladatanalízis. Modellezés Tervezés. Implementáció (programozás)

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

Már megismert fogalmak áttekintése

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



Átírás:

Objektumorientált paradigma és programfejlesztés Bevezető Vámossy Zoltán vamossy.zoltan@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Ficsor Lajos (Miskolci Egyetem) prezentációja alapján

Objektumorientált paradigma MODELLEZÉS ÉS PROGRAMKÉSZÍTÉS Vámossy Zoltán (OE NIK) 2/ 30

Bevezető fogalmak Program, programozás: 1. műveletek sorozata egy bizonyos cél elérése érdekében; 2. utasítássorozat, amely megmondja a számítógépnek, hogyan kezeljen egy problémát; 3. programtervezés, írás és tesztelés (belövés) [Idegen szavak és kifejezések szótára, Akadémiai Kiadó] Vámossy Zoltán (OE NIK) 3/ 30

Bevezető fogalmak Paradigma: gör-lat 1. bizonyításra v. összehasonlításra adott példa 2. nyelvt ragozási minta 3. tud Az adott korszakban elfogadott tudományos tételek együttese; a kor tudományos világképe. [Idegen szavak és kifejezések szótára, Akadémiai Kiadó] Vámossy Zoltán (OE NIK) 4/ 30

Bevezető fogalmak Programozási paradigma: Az a mód, ahogyan egy-egy programozási nyelv létrehozására felhasználják a programozási alapfogalmakat, valamint az a stílus, amelyet az így létrehozott nyelvek sugallnak. [Idegen szavak és kifejezések szótára, Akadémiai Kiadó] Vámossy Zoltán (OE NIK) 5/ 30

Bevezető fogalmak Absztrakció lat. 1. elvonatkoztatás, elvonás; a leglényegesebb tulajdonságok kiemelése és általánosítása; 2. elvont fogalom [Idegen szavak és kifejezések szótára, Akadémiai Kiadó] Vámossy Zoltán (OE NIK) 6/ 30

Előadásrész tematika Cél: az objektumorientált programozási paradigma segítségével történő modellezés és programkészítés megismertetése Tartalom: Programozás mint modellkészítés Modellezés objektumokkal Objektumorientált program Vámossy Zoltán (OE NIK) 7/ 30

Objektumorientált paradigma PROGRAMOZÁS MINT MODELLKÉSZÍTÉS Vámossy Zoltán (OE NIK) 8/ 30

Programké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épzü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 Vámossy Zoltán (OE NIK) 9/ 30

Programozási nyelvek A programozási eszközök absztrakciós szintjei különbözőek: Assembly: adott számítógép architektúra utasításkészletének leképezése Imperatív programnyelvek: adatszerkezetek és algoritmusok absztrakciós szintje a valós világ fogalmaihoz nem közeli Objektumorientált nyelvek: együttműködő objektumok absztrakciós szintje A valóságban is léteznek Vámossy Zoltán (OE NIK) 10/ 30

Programozás mint modellké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 absztrakt modelljét (analízis modell) kell leképezni a programozási eszközre Ezt a folyamatot megkönnyíti az, ha az analízis modell elemei könnyen leképezhetők a nyelvi elemekre Vámossy Zoltán (OE NIK) 11/ 30

Az OOP szemlé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 Természetes objektumok jellemzői: Egyéniség (különállás) Struktúra (adatok) Állapot (adatainak aktuális értéke) Viselkedés (más objektumokkal való kapcsolat, módosítják az állapotot, illetve az állapot befolyásolhatja a viselkedés működését) Vámossy Zoltán (OE NIK) 12/ 30

Objektumorientált paradigma MODELLEZÉS OBJEKTUMOKKAL Vázlatos kép Vámossy Zoltán (OE NIK) 13/ 30

Objektumok jellemzői Az objektum: egyediséggel rendelkező diszkrét entitás Jellemzői: attribútumok, műveletek Attribútum együttes: objektum állapot; az állapot időbeli változása az objektum viselkedése Műveletek (metódusok): ezek modellezik az objektum viselkedését Adat és művelet egy helyen! Vámossy Zoltán (OE NIK) 14/ 30

Objektumtól objektumig A valós világ eleme Absztrakció 1. szint 2. szint Valós objektum Absztrakció és/vagy formális leírás Absztrakt adattípus Megvalósítása programozási eszközzel (implementáció) Nyelvi elem Nyelvi elem 3. szint Objektum1 Osztály Objektum2 Objektum3 Példányosítás Vámossy Zoltán (OE NIK) 15/ 30

Objektumtól objektumig 1. szint Tanulmányozzuk a valós objektumokat, és megkeressük azoknak a probléma megoldása szempontjából fontos adatait és viselkedésmintáit. (Az absztrakció fogalmából: A leglényegesebb tulajdonságok kiemelése ) Megkeressük azon objektumcsoportokat, amelyek azonos adatokkal és viselkedésmintákkal rendelkeznek, és elnevezzük ezeket a csoportokat. (Az absztrakció fogalmából: általánosítás ) Vámossy Zoltán (OE NIK) 16/ 30

Objektumtól objektumig A valós világ egy eleme Absztrakció 1. szint 2. szint Valós objektum Absztrakció és/vagy formális leírás Absztrakt adattípus Megvalósítása programozási eszközzel (implementáció) Nyelvi elem Nyelvi elem 3. szint Objektum1 Osztály Objektum2 Objektum3 Példányosítás Vámossy Zoltán (OE NIK) 17/ 30

Objektumtól objektumig 2. szint Az előzőleg definiált fogalom leképzése a programozási eszközre (osztálydefiníció). Ez egy minta a program működéséhez szükséges objektumok létrehozására Vámossy Zoltán (OE NIK) 18/ 30

Objektumtól objektumig A valós világ egy eleme Absztrakció 1. szint 2. szint Valós objektum Absztrakció és/vagy formális leírás Absztrakt adattípus Megvalósítása programozási eszközzel (implementáció) Nyelvi elem Nyelvi elem 3. szint Objektum1 Osztály Objektum2 Objektum3 Példányosítás Vámossy Zoltán (OE NIK) 19/ 30

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. Vámossy Zoltán (OE NIK) 20/ 30

Példa 1. szint Vámossy Zoltán (OE NIK) 21/ 30

Példa 1. szint Vámossy Zoltán (OE NIK) 22/ 30

Példa 2. szint class Autó { private string gyártó; private string típus; private string rendszám; private float sebesség; public Autó(string gy, string t, string r) { gyártó = gy; típus = t; rendszám = r; } Vámossy Zoltán (OE NIK) } public void Beindul() { sebesség = 0.0F; } public void Leáll() { } public void Megy() { } public void Fordul() { } public void Szervíz() { } 23/ 30

Példa 3. szint Vámossy Zoltán (OE NIK) 24/ 30

Példa 3. szint class Vezérlő { static void Main() { Autó EgyikKocsi = new Autó("Suzuki", "Ignis 4WD 5MT", "KQX-987"); Autó MásikKocsi = new Autó("Lamborghini","Murcuélago LP640","KQX-988"); EgyikKocsi.Beindul(); EgyikKocsi.Megy(); MásikKocsi.Beindul(); MásikKocsi.Megy(); EgyikKocsi.Fordul(); EgyikKocsi.Szervíz(); MásikKocsi.Leáll(); } } Vámossy Zoltán (OE NIK) 25/ 30

OO programkészítés folyamata A probléma leírásában keressük az objektumokat Objektumcsoportok közös tulajdonságait osztályokkal írjuk le Megkeressük az osztályok kapcsolatait Az osztályokat és kapcsolataikat implementáljuk Létrehozunk 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 Vámossy Zoltán (OE NIK) 26/ 30

Objektumorientált program Egymással kommunikáló objektumok halmaza Struktúra: osztályok és objektumok közötti kapcsolatok Objektumok: az osztályok példányai Dinamikusan létrehozott objektumok kommunikálnak Működés: üzenetváltások (előre definiált üzenetkészletből) Üzenetáramlás Üzenetek hatására objektum állapotváltozás Megoldás algoritmusát a rendelkezésre álló objektumok közötti üzenetsorozat szolgáltatja (Nem feltételez szekvenciális végrehajtást) Vámossy Zoltán (OE NIK) 27/ 30

Objektumorientált paradigma OBJEKTUMORIENTÁLT SZOFTVERCIKLUS Részletek majd a Szoftvertechnológia című tárgyban Vámossy Zoltán (OE NIK) 28/ 30

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 Vámossy Zoltán (OE NIK) 29/ 30

Köszönöm a figyelmet! Vámossy Zoltán (OE NIK) 30/ 30