Előadást letölteni
Az előadás letöltése folymat van. Kérjük, várjon
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
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. 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.
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? Megfigyeljük a világot, és közben – osztályozzuk a látottakat: a hasonló dolgok egy osztályba kerülnek; a különbözőek más-más osztályba í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.
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 … A foci egy speciális sport … stb… Á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
11
OBJEKTUM-ORIENTÁLT GONDOLKOZÁS, MODELLEZÉS
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.
12
OBJEKTUM-ORIENTÁLT PARADIGMA
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.
13
OBJEKTUM-ORIENTÁLT PARADIGMA
Az objektum egy információtároló egység, vannak tulajdonságai adatok viselkedése metódusok Minden objektum egyedi! Pl.: 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.
14
OBJEKTUM-ORIENTÁLT PARADIGMA
Példa: Az előző Nagy Jóskához, Kis Marihoz hasonló diákok: Lehet: példány-változó, osztály-változó; példány-metódus, osztály-metódus. osztály objektumok Ez egy szabványos leírás, az UML
15
OBJEKTUM-ORIENTÁLT PARADIGMA
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-ORIENTÁLT PARADIGMA – TULAJDONSÁGOK
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ó.
18
OBJEKTUM-ORIENTÁLT PARADIGMA – MŰKÖDÉS
Egy objektumorientált program egymással kommunikáló objektumok összessége, melyben minden objektumnak megvan a feladatköre:
19
OBJEKTUM-ORIENTÁLT PARADIGMA – FOGALMAK
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
20
OBJEKTUM-ORIENTÁLT PARADIGMA – ALAPELVEK
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.
21
OBJEKTUM-ORIENTÁLT PARADIGMA – ALAPELVEK
Egységbezárás:
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
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
Az osztálystruktúra UML diagramja statikus vezérlő osztály ebben példányosítunk
25
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
Miért private az adattag?
26
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
példányosítás De ki az egyik, ki a másik?! Használjunk konstruktorokat!
27
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
28
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
Életkor kiíratása: System.out.println (egyik.eletkor()); De kinek a kora? – Ki kellene íratni a nevet is.
29
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
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.
30
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
Hogyan lehet megkérdezni az egyes diákok nevét? 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
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
33
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
Mi van, ha több diák objektumot akarunk? tömb Ez még csak deklaráció, nem példányosítás!!!
34
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
Maga a példány pl. itt jön létre: vagy itt:
35
OBJEKTUM-ORIENTÁLT PARADIGMA – JAVA PÉLDA
36
Auth Gábor (volt pollackos ): Java-Forum/Java-suli:
JAVA OSZTÁLYOK Jó és rövid () leírás: Auth Gábor (volt pollackos ): Java-Forum/Java-suli:
Hasonló előadás
© 2024 SlidePlayer.hu Inc.
All rights reserved.