Az előadás letöltése folymat van. Kérjük, várjon

Az előadás letöltése folymat van. Kérjük, várjon

Programozás III OOP ALAPOK. OBJEKTUM-ORIENTÁLT PARADIGMA Alan Kay diplomamunkája 1969: Tervek és elképzelések a SmallTalk programozási nyelv megtervezése.

Hasonló előadás


Az előadások a következő témára: "Programozás III OOP ALAPOK. OBJEKTUM-ORIENTÁLT PARADIGMA Alan Kay diplomamunkája 1969: Tervek és elképzelések a SmallTalk programozási nyelv megtervezése."— Előadás másolata:

1 Programozás III OOP ALAPOK

2 OBJEKTUM-ORIENTÁLT PARADIGMA Alan Kay diplomamunkája 1969: Tervek és elképzelések a SmallTalk programozási nyelv megtervezése

3 OBJEKTUM-ORIENTÁLT PARADIGMA Objektum-orientált program: Egymással kapcsolatot tartó, együttműködő objektumok összessége, ahol minden objektumnak megvan a jól meghatározott feladata. Alapja: a természetes emberi gondolkozás Az objektumorientált modellezés során elvonatkoztatunk, megkülönböztetünk, osztályozunk, általánosítunk, leszűkítünk, kapcsolatokat építünk, stb.  absztrahálunk. Olyan programozási módszer, amely lehetővé teszi különböző bonyolult változók (objektumok) létrehozását és kezelését.

4 OBJEKTUM-ORIENTÁLT GONDOLKOZÁS, MODELLEZÉS Tényleg a természetes emberi gondolkozás az alapja? Hogyan gondolkozunk? „Ha az emberi agy olyan egyszerű lenne, hogy megérthetnénk, akkor olyan egyszerűek lennénk, hogy nem tudnánk megérteni.” Emerson Pugh

5 OBJEKTUM-ORIENTÁLT GONDOLKOZÁS, MODELLEZÉS De azért mégis: Hogyan gondolkozunk? így alakulnak ki a fogalmaink Eközben a dolgokat megkülönböztetjük a számunkra lényeges tulajdonságaik, viselkedési módjuk alapján. a hasonló dolgok egy osztályba kerülnek; a különbözőek más-más osztályba – osztályozzuk a látottakat: Megfigyeljük a világot, és közben

6 OBJEKTUM-ORIENTÁLT GONDOLKOZÁS, MODELLEZÉS Megfigyeljük a világot, és közben – általánosítunk és specializálunk: így tovább finomítjuk az osztályozást Pl.: Az autó olyan jármű … A háziállat olyan állat … A diák olyan ember … stb… A foci egy speciális sport … Általában: a speciálisnak olyan tulajdonságai, viselkedés- módja van, mint az általánosabbnak, csak vannak még további jellemzői.

7 OBJEKTUM-ORIENTÁLT GONDOLKOZÁS, MODELLEZÉS Vagyis a világ megfigyelése közben – absztrahálunk: Elvonatkoztatunk a számunkra pillanatnyilag nem fontos, közömbös információktól, és kiemeljük az elengedhetetlen fontosságú részleteket. Azaz leegyszerűsítjük a valós világot úgy, hogy csak a lényegre, a cél elérése érdekében feltétlenül szükséges részekre összpontosítunk.

8 Picasso

9

10

11 Az absztrakció révén osztályhierarchiát hozhatunk létre, de dolgozni csak konkrét egyedekkel, vagyis az osztályok példányaival, az objektumokkal tudunk. Az osztály egy-egy fogalom definiálására szolgál. Leírásakor egy-egy speciális típust határozunk meg, abból a célból, hogy később ilyen típusú változókkal tudjunk dolgozni. Az Osztaly típusú változó majd Osztaly típusú objektumot tartalmaz. OBJEKTUM-ORIENTÁLT GONDOLKOZÁS, MODELLEZÉS

12 Az osztályokban megadjuk azokat a tulajdonságokat és viselkedéseket, amelyekkel az ebbe az osztályba tartozó objektumokat jellemezni akarjuk.  A hasonló tulajdonságokkal és viselkedéssel rendelkező objektumok egy osztályba kerülnek. Az objektum az osztály egy példánya – a példányosítás során jön létre. OBJEKTUM-ORIENTÁLT PARADIGMA

13 Az objektum egy információtároló egység, vannak tulajdonságai  adatok viselkedése  metódusok Minden objektum egyedi! Nagy Jóska – objektum Tulajdonságai: név életkor nem … stb. Viselkedése: tanul() barátkozik() … stb. Kis Mari – objektum Tulajdonságai: név életkor nem … stb. Viselkedése: tanul() barátkozik() … stb. Pl.:

14 Példa: Az előző Nagy Jóskához, Kis Marihoz hasonló diákok: Ez egy szabványos leírás, az UML Lehet: példány- változó, osztály- változó; példány- metódus, osztály- metódus. osztály objektumok OBJEKTUM-ORIENTÁLT PARADIGMA

15 Példányváltozó: példányonként más-más lehet az értéke. A példány állapotát írja le. Egy osztály minden példánya saját adattagokkal rendelkezik. A példányosítás során lefoglalódik az adatoknak megfelelő tárrész. Ahány példány van, annyiszor foglalunk helyet a tárban. Osztályváltozó (statikus változó): csak egyetlen példányban létezik

16 OBJEKTUM-ORIENTÁLT PARADIGMA Példány metódus: a példányok viselkedését írja le. Osztálymetódus (statikus metódus): objektumok nélkül is tud dolgozni, nem kell példányosítani. Csak statikus példányváltozókra hivatkozhat. Egy osztálymetódus az osztályok közötti üzenettel hívható: Osztály.osztályMetódus

17 Objektum: adattagok + műveletek (metódusok) Információt tárol, kérésre feladatokat hajt végre. Belső állapota van, üzeneten keresztül lehet megszólítani. Felelős feladatainak korrekt elvégzéséért. Az objektumnak mindig van egy állapota (adattagok pillanatnyi értékei írják le). Két objektumnak ugyanaz az állapota, ha az adattagok értékei megegyeznek. Az objektum műveleteket hajt végre, melyek hatására állapota megváltozhat, de mindig emlékszik állapotára. Minden objektum egyértelműen azonosítható. OBJEKTUM-ORIENTÁLT PARADIGMA – TULAJDONSÁGOK

18 Egy objektumorientált program egymással kommunikáló objektumok összessége, melyben minden objektumnak megvan a feladatköre: OBJEKTUM-ORIENTÁLT PARADIGMA – MŰKÖDÉS

19 Osztály – Példány: Osztály (class): Olyan objektumminta vagy típus, mely alapján példányokat (objektumokat) hozhatunk létre. Minden objektum egy jól meghatározott osztályhoz tartozik. Objektum életciklusa: „megszületik”, „él”, „meghal” Az objektumot létre kell hozni, és inicializálni kell! Objektum inicializálása: – konstruktor (constructor) • adatok kezdőértékadása • objektum működéséhez szükséges tevékenységek végrehajtása OBJEKTUM-ORIENTÁLT PARADIGMA – FOGALMAK

20 Az OOP alapelvei (1): (a többi később) Egységbezárás (encapsulation): az adatokat és a hozzájuk tartozó eljárásokat egyetlen egységben kezeljük (osztály) A feladatok elvégzésének „hogyan”-ja az objektum belügye. Az objektum belseje sérthetetlen. Az objektummal csak az interfészen keresztül lehet kommunikálni. Az osztály adatai, metódusai csak a konkrét objektumon keresztül érhetők el, az osztály változóit csak a metódusokon keresztül változtathatjuk meg. OBJEKTUM-ORIENTÁLT PARADIGMA – ALAPELVEK

21 Egységbezárás: OBJEKTUM-ORIENTÁLT PARADIGMA – ALAPELVEK

22 OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA A korábban említett példa egy lehetséges Java megvalósítása

23 OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA Először az osztályt definiáljuk osztálynév: Diak változók: nev, nem szuletesiEv !!! metódusok: tanul() baratkozik() eletkor() !!!

24 Az osztálystruktúra UML diagramja vezérlő osztály ebben példányosítunk OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA statikus

25 OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA Miért private az adattag?

26 De ki az egyik, ki a másik?! Használjunk konstruktorokat! OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA példányosítás

27 OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA

28 Életkor kiíratása: System.out.println (egyik.eletkor()); De kinek a kora? – Ki kellene íratni a nevet is.

29 Mi a helyzet a korábbi példányosítással? Diak egyik = new Diak() Az üres konstruktor csak akkor jön létre automatikusan, ha nem adunk meg konstruktort. Ha mi magunk definiálunk egyet, akkor az automatikus már nem jön létre. Ha szükségünk van rá, nekünk kell létrehozni. OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA

30 Hogyan lehet megkérdezni az egyes diákok nevét? OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA System.out.println(egyik.getNev() + ” kora: ” + egyik.eletkor()); És hogy lehet értéket beállítani? Pl. hajszínt.

31 OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA

32

33 Mi van, ha több diák objektumot akarunk? Ez még csak deklaráció, nem példányosítás!!! tömb OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA

34 Maga a példány pl. itt jön létre: vagy itt: OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA

35

36 JAVA OSZTÁLYOK Jó és rövid (  ) leírás: Auth Gábor (volt pollackos  ): Java-Forum/Java-suli: show/java_osztalyok

37


Letölteni ppt "Programozás III OOP ALAPOK. OBJEKTUM-ORIENTÁLT PARADIGMA Alan Kay diplomamunkája 1969: Tervek és elképzelések a SmallTalk programozási nyelv megtervezése."

Hasonló előadás


Google Hirdetések