AAO 1. félév EA - PDF 01



Hasonló dokumentumok
Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok

Adatstruktúrák, algoritmusok, objektumok

Objektumorientált paradigma és programfejlesztés Bevezető

Objektumorientált paradigma

Programozás III. - NGB_IN001_3

Programozási alapismeretek 4.

OOP. Alapelvek Elek Tibor

Már megismert fogalmak áttekintése

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

Programozás módszertan p.1/46

Interfészek. PPT 2007/2008 tavasz.

Objektumorientált paradigma és a programfejlesztés

Objektumorientált programozás C# nyelven

Objektumorientált programozás C# nyelven

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

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

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

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

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

Java és web programozá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:

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?

A hierarchikus adatbázis struktúra jellemzői

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

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

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

Programozás alapjai Bevezetés

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

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.

C++ programozási nyelv

Vizuális és eseményvezérelt programozás , II. félév BMF NIK

Objektumorientált programozás C# nyelven

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

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

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

C++ programozási nyelv

Java és web programozás

Adatszerkezetek és algoritmusok

Bevezetés a Python programozási nyelvbe

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

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

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

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

Történeti áttekintés

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

Objektumorientált szoftverfejlesztés alapjai

Öröklés és Polimorfizmus

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

Osztályok. 4. gyakorlat

Név: Neptun kód: Pontszám:

Integrált ügyviteli rendszer: Kettős könyvelés modul

Autóipari beágyazott rendszerek. Komponens és rendszer integráció

OOP #14 (referencia-elv)

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

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

Miskolci Egyetem Alkalmazott Informatikai Intézeti Tanszék A minőségbiztosítás informatikája. Készítette: Urbán Norbert

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

OOP és UML Áttekintés

9. A FORGÁCSOLÁSTECHNOLÓGIAI TERVEZŐ-RENDSZER FUNKCIONÁLIS STRUKTÚRÁJA

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

Az élet szép, környezetünk tele van fákkal, virágokkal, repdeső madarakkal, vidáman futkározó állatokkal.

Java és web programozás

Dr. Mileff Péter

Objektumelvű programozás

Aronic Főkönyv kettős könyvviteli programrendszer

Programozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás

OBJEKTUMORIENTÁLT TERVEZÉS ESETTANULMÁNYOK. 2.1 A feladat

Objektumok inicializálása

JAVA PROGRAMOZÁS 2.ELŐADÁS

Széchenyi István Szakképző Iskola

III. OOP (objektumok, osztályok)

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

OpenCL alapú eszközök verifikációja és validációja a gyakorlatban

Bánsághi Anna Bánsághi Anna 1 of 54

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

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

1. Bevezetés A C++ nem objektumorientált újdonságai 3

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

A.26. Hagyományos és korszerű tervezési eljárások

58. Osztály, objektum fogalma, implementációs lehetőségek(shagreen) 59. Egységbezárás (elvi háttere, gyakorlati megvalósítás) (Shagreen)

é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

Digitális kártyák vizsgálata TESTOMAT-C" mérőautomatán

Információtartalom vázlata

Globális operátor overloading

Alkatresz::Alkatresz(string n; int csz, int a) { nev = n; cikkszam = csz; ar = a; };

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

KELE3. Felhasználói kézikönyv

KETTŐS KÖNYVELÉS PROGRAM CIVIL SZERVEZETEK RÉSZÉRE

Java programozási nyelv

A KÖZPONTI KÖLTSÉGVETÉSI SZERVEK ELEMI BESZÁMOLÓJÁNAK PÉNZÜGYI (SZABÁLYSZERŰSÉGI) ELLENŐRZÉSÉNEK MÓDSZERTANA május 001-1

Bánsághi Anna 1 of 67

Adóigazgatási szakügyintéző

Az Egri Kistérség területfejlesztési koncepciója. és programja

Hallgatók a Tudomány Szolgálatában

Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r

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

Átírás:

AAO. félév EA - PDF 0. Szamitasi modellek es programozasi paradigmak 00. V.0 szeptember. Modellezési alapelvek A modellezés celja a vilag minel teljesebb kor megertese Elemek, folyamatok, osszefuggesek, viszonyok A modellezes soran a fenti cel erdekeben az ember: abrazolasokat keszit a vilagrol, majd lekepezi a vilag egyes szeleteit az altala hasznalt eszkozokben (ennek soran egy vagy tobb szempontot kiemel mas szempontokkal szemben). A modellezes celja 00. V.0 szeptember. Modellezési alapelvek Absztrakcio Lenyeg kiemelese, a jellegzetessegek leegyszer sitett lekepezese Megkulonboztetes Elemek meghatarozasa, elemek es tulajdonsagaik szetvalasztasa Osztalyozas Elemek tipusokba, csoportokba sorolasa Altalanositas es specializacio Elemtipusok b vitese es sz kitese, elemhierarchiak kialakitasa Kapcsolatok meghatarozasa Kulonboz kapcsolattipusok meghatarozasa, elemek kozotti kapcsolatok felallitasa Ismeretseg, leszarmazas, tartalmazas, kompozicio... A modellezes folyamata 00. V.0 szeptember. Programozási paradigmák Paradigma: szemleletmod; modellezesi, problemadefinicios es problemamegoldasi modszer Programozasi paradigma: a szamitogep konkret feladatok megoldasara torten felhasznalasanak, iranyitasanak modja A paradigma fogalma 00. V.0 szeptember. Programozási paradigmák A programozasi nyelveket altalaban egy-egy paradigma ihleti Celjuk egy adott programozasi paradigma legfontosabb jellemz inek megvalositasa A programozasi paradigmak egy-egy szamitasi modellre epulnek A programozasi nyelvek absztrakcios szintje folyamatosan n A kiindulopont a szamitogep konkret hardvermegvalositasa volt Minden uj paradigma noveli az absztrakcio szintjet Neha holtagak is keletkeznek, igy egyes magasabb absztrakcios szintet kepvisel nyelvek kihalnak, de a fenti allitas a f fejl desi iranyokra is igaz Programozasi paradigmak es programozasi nyelvek 00. V.0 szeptember. Programozási megoldások Imperativ szamitasi modellek ( hogyan szamitsuk ki ) Turing-modell Alan Turing nevehez f dik () Nincs hozza kapcsolodo programozasi paradigma (csak elvi jelent sege van) Neumann-modell Neumann Janos nevehez f dik () Proceduralis/strukturalt programozasi paradigma Utasitasorientalt; az egyes m veletek megismetelhet k; tobbszoros ertekadas; valtozok; alapvet en soros vegrehajtast feltetelez modell ektumorientalt modell ektumorientált (OO) programozási paradigma Adatorientalt; adatok es a rajtuk vegezhet m veletek osszerendelese ka; uzenetaramlas az egyes kozott; a modell nem feltetelez soros vegrehajtast Adatfolyamelv modell Adatfolyamelv programozasi paradigma Adatorientalt (bemen adatokbol kimen adatok); adatok kiertekelese rendelkezesre allaskor Szamitasi modellek es programozasi paradigmak () 00. V.0 szeptember. Programozási megoldások Deklarativ szamitasi modellek ( mit akarunk kiszamitani ) Funkcionalis/applikativ szamitasi modell Funkcionalis programozasi paradigma Fuggvenyek redukcioja automatikus behelyettesitesekkel Pelda (ML programozasi nyelv) Logikai alapu szamitasi modell Logikai programozasi paradigma Egymassal osszefuggesben lev allitasok levezetese (rezolucio) mintaillesztessel es kovetkeztetesekkel Pelda (Prolog programozasi nyelv) Szamitasi modellek es programozasi paradigmak () fun factorial 0 = factorial n = n * factorial(n-) testvér(x,y) :- szül (Z,X), szül (Z,Y). szül (X,Y) :- apa(x,y). szül (X,Y) :- anya(x,y). anya(klára, Jancsi). apa(péter, Jancsi). apa(péter, Ilona). apa(józsef, Péter).?- testvér(jancsi, Ilona) igen. 00. V.0 szeptember. Programozási megoldások A szamitasi modellek, szamitogep-architekturak es programozasi nyelvek osszefuggese Szamitasi modell Programozasi nyelv Szamitogep-architektura Specifikacios eszkoz Megvalositasi eszkoz Vegrehajto eszkoz 00. V.0 szeptember. Programozási megoldások fejl dése Kulonboz szamitasi modelleken alapulo architekturak versenye 0 0 0 0 0 000 Neumann-fele szamitasi modell Adatfolyamelv szamitasi modell Funkcionalis/applikativ szamitasi modell Logikai alapu szamitasi modell Elemi m veletek szintjen parhuzamos modellek 0 00. V.0 szeptember. 0 A Neumann-architektúra A Neumann-architektura alapvet felepitese Adat/utasitas Vezerles ALU Bemenet Kimenet Memoria Vezerles 00. V.0 szeptember. A Neumann-architektúra Utasitasok es adatok tarolasa egy kozos memoriaban Adatok tarolasa nevesitett valtozokban (elkulonitett memoriarekeszek)

Nincs kuls megkulonboztetes az utasitas es az adat kozott, csak az aktualis programallapot dont az ertelmezesr l Az utasitasok sorozata a programbol, kuls beavatkozas nelkul is modosithato Folyamatos, ciklikus programvegrehajtas A vegrehajtas a memoria els rekeszet l indul, majd ha elerte a memoria veget, ismet az els rekeszt l folytatodik Felteteles es feltetel nelkuli vezerlesatadas A kovetkez utasitas vegrehajtasa fuggjon az el eredmenyet l Megismetelhet m veletek, ertekadasok Soros, szinkron m kodes A Neumann-architektura f bb jellemz i 00. V.0 szeptember. A Neumann-architektúra Az ENIAC szamitogep () PDF 0. Az objektumorientalt programozasi paradigma V. Internet Komponensalapu rendszerek RAD programozas Online terjesztes Kotegelt rendszerek Egyedi szoftver Nincs terjesztes Tobbfelhasznalos rendszerek Valos idej megoldasok Adatbaziskezeles Szoftvertermekek Elosztott rendszerek Beagyazott rendszerek Olcsobb hardver Hagyomanyos terjesztes Asztali rendszerek Szakert i rendszerek Parhuzamos programozas Neuralis halozatok A szoftverkrízis. A szoftveres megoldasok szerepe folyamatosan er sodik A szoftverek felhasznalasi aranya (meg mindig) igen gyorsan n Kihivasok a szoftverfejlesztes modszereivel szemben 0 0 0 0 0 000 V. A szoftverkrízis. A szoftverekkel szembeni elvarasok egyre magasabbak Az elet mind tobb teruleten alkalmazunk szoftveres megoldasokat Tudomany, oktatas, ipar, ugyvitel, bankszektor, allamigazgatas, otthonok... Az olcsobbodo hardver egyre szelesebb retegek szamara elerhet Az atlagos felhasznalo szamitastechnikai ismereteinek szintje rohamosan csokken A hardver teljesitmenye rendkivul gyorsan novekszik A fentiekb l kovetkez en az ar/teljesitmeny arany meg gyorsabban javul Ezzel parhuzamosan a szoftver funkciogazdagsagaval, sebessegevel, kenyelmevel, hasznalhatosagaval kapcsolatos kovetelmenyek folyamatosan emelkednek A szoftver fejl desi uteme egyre jobban lemarad a hardver fejl desi uteme mogott Kihivasok a szoftverfejlesztes modszereivel szemben V. A szoftverkrízis. A szoftver rendkivul jol formalhato nyersanyag Szinte nincsenek fizikai korlatok A szoftver nem fizikai (anyagi) jelleg A szoftver el allitasa alapvet en nem jar kozvetlen fizikai nyersanyagigennyel A szoftver, mint er forras mennyisege nem korlatos (vegtelenul tobbszorozhet ) A szoftvernek alapvet en nem kell alkalmazkodnia kuls korulmenyekhez Viszonylag keves a jogi korlat Ezen a teren igen gyors (es sokszor onkenyes) a valtozas Barmilyen algoritmus es barmilyen adatstruktura elkepzelhet, felepithet, modosithato Kihivasok a szoftverfejlesztes modszereivel szemben V. A szoftverkrízis. A programok min segi bonyolultsaga folyamatosan novekszik A szoftver eredend en osszetett szellemi alkotas Nincsenek, illetve nehezen onthet k formaba jelent sebb ismetl elemek Tervezesi mintak Tudasinverzio A m kodesi allapotok szama rendkivul magas Osszetettebb programok elvi helyessegenek bizonyitasa egyel re nem lehetseges A teljes kor teszteles ezert szinte lehetetlen Rendszeresek es gyakoriak a valtoztatasi igenyek A fejleszt k reszer l (hibajavitas, platformvaltas, fejleszt rendszervaltas...) A felhasznalok reszer l (hibajavitas, uj funkciok, funkcionalis modositasok...) Kihivasok a szoftverfejlesztes modszereivel szemben V. A szoftverkrízis. Az ember attekint kepessege korlatos Teljesen automatizalt szoftverel allitasra egyel re nincs mod A bonyolultsag ujra es ujra kezelhetetlenul magas szintet er el A szoftverhibak kovetkezmenyei egyre sulyosabbak lehetnek Kihivasok a szoftverfejlesztes modszereivel szemben Folyamatosan uj megoldasokra van szukseg az egyre novekv absztrakcios szint es bonyolultsag eredmenyes, hatekony es biztonsagos kezelesehez V. Procedurális/strukturált program A problemat az algoritmus (a kód) oldalarol kozeliti meg A szukseges funkciok meghatarozasa (funkcionalis dekompozicio) A programvegrehajtas (vezerles) pontos menetenek leirasa A funkciok szamara szukseges adatstrukturak meghatarozasa A problema megoldasat a funkciok egymas utan, a megfelel sorrendben torten vegrehajtasa adja meg Jellemz k: A fuggvenyek definicioja hatarozza meg a program szerkezetet Globalis adatstrukturak Egy un. f program fogja ossze, amely fuggvenyeket hiv meg A f program komoly szerepet jatszik es gyakran igen bonyolult A vegrehajtas menetet szigoruan megszabja a megirt programkod Definicio es jellemz k V. Procedurális/strukturált program Tipikus felepites program Almodul Almodul Almodul Almodul Almodul Almodul Almodul V.

ektumorientált program A problemat az adatok oldalarol kozeliti meg A szukseges absztrakt rendszerelemek meghatarozasa A fenti rendszerelemek adatainak es (az adatokkal vegezhet ) absztrakt m veleteinek meghatarozasa, majd ezek osszerendelese Ezzel csoportokba ( tipusokba ) soroljuk az egyes elemeket A problema megoldasat az egyes kozotti kommunikacio, az egyes m veletek allapotvaltozasoktol fugg vegrehajtasa adja meg Az kapcsolodasi felulettel rendelkeznek, melynek segitsegevel uzeneteket valtanak egymassal Jellemz k: Az egyes magukban foglaljak az algoritmusokat Minden objektum a problema egy reszet irja le es magaban foglalja a reszfeladat megoldasahoz tartozo algoritmikus elemeket A f program jelent sege igen csekely Gyakorlatilag csak inditasi pontkent szolgal, lenyegi funkciot altalaban nem lat el Definicio es jellemz k 0 V. 0 ektumorientált program Tipikus felepites V. Meghatarozzuk a szoftverrendszer absztrakt elemeit Meghatarozzuk az elemek allapotteret Adatelemek Meghatarozzuk az elemek viselkedesmodjat Funkciok vegrehajtasa Allapotvaltoztatasok Meghatarozzuk az elemek kozotti kapcsolattartas feluleteit es protokolljat Uzenetvaltasok tipusa Pontosan definialt, megbizhato kapcsolodasi feluletek...mindezt a megvalositas konkret reszleteinek ismerete nelkul.. alapelv: Absztrakció V. Az adatait es a rajtuk vegezhet m veleteket szoros egysegbe zarjuk Az adatok csak a definialt m veletek segitsegevel erhet k el Mas m veletek nem vegezhet k az on Az egysegbezaras vedi az adatokat a teves modositasoktol. alapelv: Egységbezárás V. Az absztrakciok megvalositasanak reszleteit elrejtjuk a kulvilag el l Az on belul elkulonitjuk a bels (privat) es a kuls (nyilvanos) adatokat es m veleteket A privat adatok es m veletek a konkret megvalositashoz szuksegesek A nyilvanos adatok es m veletek a szoftverrendszer tobbi objektuma szamara (is) elerhet k Tajekozodas az objektum allapotarol Az objektum allapotanak modositasa Uzenetvaltas. alapelv: Adatrejtés V. A mar meglev objektumtipusok alapjan keszithetunk uj tipusokat, melyek rendelkeznek az stipus tulajdonsagaival Ez egy specializacios m velet ( szarmaztatas ) A leszarmazottak oroklik az stipus tulajdonsagait A leszarmazottak b vithetik, esetenkent akar sz kithetik az stipus allapotteret, illetve m veleteit Teljes leszarmazasi hierarchiakat is letrehozhatunk Kivalo lehet seg a kozos tulajdonsagok, m veletek osszevonasara es ujrahasznositasara Az alapelv kovetkezetes alkalmazasaval elerhet, hogy a mar megvalositott funkcionalitas kes bb a megvalositas reszleteinek ismerete nelkul is felhasznalhato legyen Jol atgondolt el zetes tervezest igenyel. alapelv: Öröklés V. A kulonboz, egymasbol szarmazo objektumtipusok hasonlo veletei a konkret objektumtol fugg en mas-mas konkret megvalositassal rendelkezhetnek Ugyanaz a m velet nemileg elter lehet az stipus es a leszarmazott tipus eseteben Az alapelv lehet seget teremt ra, hogy azonos nevvel hivatkozzunk az azonos celu, de a leszarmazasi hierarchia kulonboz szintjein masmas megvalositast kivano m veletekre Az egyes stipusok leszarmazottai mindenre alkalmasak, amire az adott stipus alkalmas volt Minden olyan helyzetben es funkcioban, ahol az stipus szerepelhet, annak barmely leszarmazottja is szerepelhet. alapelv: Többalakúság V. A mar megvalositott objektumtipusokat kesz (binaris) formaban mas programokban is felhasznalhatjuk Jo tervezes es dokumentalas eseten az nyilvanos adatai es veletei elegend ek a kes bbi felhasznalashoz Szintaktikai b vitesekkel (pl. tulajdonsagok, esemenyek ) kenyelmesebbe tehet a kuls felhasznalas Az egyes objektumtipusokat egymasba agyazva osszetettebb tipusokat hozhatunk letre A kesz, ujrafelhasznalhato objektumtipusokat csoportokba fogva akar nagyobb szoftver-epit elemeket (komponenseket es komponensgy jtemenyeket) is letrehozhatunk A korabban emlitett alapelvekre epitve a kodujrafelhasznalas lehet sege jelenti az igazi attorest a szoftvertechnologiaban. alapelv: Kódújrafelhasználás PDF 0. Az objektumorientalt paradigma alapelemei ektum Osztaly Peldanyositas A konstruktor es a destruktor Osztalyok kozotti kapcsolatok

V. ektum Az objektum allapottal rendelkez entitas, amely a benne tarolt adatok felhasznalasaval feladatokat hajt vegre es egyeb kal kommunikal Adatokat es algoritmusokat tartalmaz Sajat feladatait onalloan vegzi Sajat eletciklussal rendelkezik A kulvilaggal meghatarozott uzeneteken keresztul tartja a kapcsolatot Az objektum sajat adatait mez knek, beepitett algoritmusait metodusoknak nevezzuk Az metodusaikkal vesznek reszt az uzenetvaltasokban Az uzenetek elemei: celobjektum, metodus, parameterek, eredmeny Definicio V. ektum Az objektum allapotat mez i aktualis erteke hatarozza meg Az objektum allapota az elvegzett m veletek hatasara megvaltozhat Ket objektum allapota akkor egyezik meg, ha minden megfelel mez ertekuk megegyezik Az objektum mindig megjegyzi aktualis allapotat Az objektum viselkedeset az altala ismert (az objektumba epitett) algoritmusok hatarozzak meg Minden objektum egyertelm en azonosithato Az onalloak (sajat eletciklusuk hatarozza meg ket) Ha ket objektum allapota megegyezik, maguk az akkor sem azonosak Allapotok, viselkedes es azonossag V. Osztály Az osztaly egy adott objektumtipust hataroz meg annak adataival (mez k) es beepitett algoritmusaival (metodusok) Az osztalyok egyfajta mintat, sablont adnak az hoz Az osztalyok tehat azonos adatszerkezet es viselkedes at irnak le Minden objektum valamilyen letez osztalyba tartozik Mas kifejezessel elve az egyes azon osztalyok peldanyai, amelyekhez tartoznak Egy osztalybol tobb peldany is letrehozhato Egy osztaly osszes peldanya ugyanazokat a mez ket es metodusokat tartalmazza Az egyes peldanyok letrehozasuk pillanataban azonos allapotuak, ezt kovet en viszont onalloan m kodnek tovabb Leteznek az osztalyra (es nem az egyes objektumpeldanyokra) jellemz mez k es metodusok is Definicio V. Osztály Pelda: az Auto osztaly es ket peldanya (UML) Auto Gyarto Tipus Rendszam Beindul() Leall() Megy() Fordul() Szerviz() EgyikKocsi : Auto Suzuki Ignis WD MT KQX- MasikKocsi : Auto Lamborghini Murcielago LP0 KQX- Mez definiciok Metodusdefiniciok Osztaly (tipus) ektum (peldany) ektum (peldany) Mez ertekek Mez ertekek EgyikKocsi.Beindul(); EgyikKocsi.Megy(); MásikKocsi.Beindul(); Peldanyositas Peldanyositas V. ektumorientált szoftverciklus ektumorientalt elemzes (OOA) A megoldando feladat leirasa osztalyok es segitsegevel ektumorientalt tervezes (OOD) A feladatleiras objektumkozpontu reszekre bontasa (dekompozicioja) Logikai modell az osztalyok es Fizikai modell a logikai modellt megvalosito modulok es folyamatok Statikus es dinamikus jellemz k ektumorientalt programozas (OOP) A modell megvalositasa egymassal kommunikalo, dinamikusan letrehozott segitsegevel, melyek egy-egy osztaly peldanyai OO stilusu programokat barmilyen nem OO nyelven is lehet irni, csak nagyon nehez Reszletesebb, pontosabb informaciok kes bb (a szoftvertechnologiaval foglalkozo tantargyak kereteben) Elemzes, tervezes, megvalositas V. Metódusok általános típusai Ahhoz, hogy az at hasznalhassuk, el szor letre kell hozni ket Ez a m velet a peldanyositas Alapja az osztaly megadott definicioja A peldanyositast kovet en erhet k el az metodusai es ekkortol erhet el az mez inek erteke A konstruktor egy olyan metodus, amelynek segitsegevel peldanyok () hozhatok letre egy osztalybol Feladatai: Uj objektum letrehozasa Az objektumhoz tartozo mez k kivant kezd ertekenek beallitasa Egyeb szukseges kezdeti m veletek vegrehajtasa Minden osztalyhoz tartoznia kell konstruktornak Ha kulon nem definialunk konstruktort, akkor is letrejon ektumok letrehozasa (peldanyositas): konstruktor V. Metódusok általános típusai Az at az utolso hasznalat utan fel kell szamolni Minden objektum kulon-kulon szuntethet meg (onalloan leteznek) A destruktor egy olyan metodus, melynek segitsegevel letez szuntethet k meg Egyetlen feladata az objektum megszuntetese Az felszamolasa lehet a programozo feladata vagy tortenhet automatikusan is

Egy objektum akkor szamolhato fel automatikusan, ha a kes bbiekben mar biztosan nincs ra szukseg Az automatikus felszamolas fejlettebb es joval kevesbe hibaerzekeny megoldas Automatikus felszamolas eseten nincs feltetlenul szukseg destruktorra ektumok megszuntetese (felszamolas): destruktor V. Metódusok általános típusai Modosito metodusok Megvaltoztatjak az objektum allapotat Kivalaszto metodusok Hozzaferest biztosit az objektum adataihoz, de nem valtoztatjak meg ket (igy az objektum allapotat sem) Iteracios metodusok Az objektum adatainak valamely reszhalmazan lepkednek vegig, es az adott reszhalmazra vonatkozoan vegeznek el m veleteket Modosito, kivalaszto es iteracios metodusok 0 V. 0 Egy osztaly leszarmazottai oroklik az osztaly jellemz it Rendelkeznek ugyanazokkal a mez kkel Tartalmazzak ugyanazokat a metodusokat Ebben a specializacios kapcsolatban a leszarmazottat utodnak, az eredeti osztalyt sosztalynak nevezzuk A leszarmazottak b vithetik az sosztaly adatait es algoritmusait Uj mez ket adhatnak a meglev khoz Uj metodusokat definialhatnak Meglev metodusok m kodeset modosithatjak A leszarmazottak minden m veletre kepesek, amelyre az sosztaly kepes volt Az utodosztaly peldanyai hasznalhatok az sosztaly peldanyai helyett. Leszarmazas (un. IS-A kapcsolat) V. Pelda: leszarmazas (UML) Auto Meghajtas Rendszam Beindul() Leall() Halad() Fordul() Hajo Merules Hivokod Beindul() Leall() Halad() Elsullyed() Repul Szarnyfesztav Hatotavolsag Felszall() Halad() Leszall() Jarm Gyarto Gyartas ideje Tipus Tulajdonos Beindul() Leall() Halad() Szerviz() Leszarmazas V. Az asszociacio osztalyok kozotti tetsz leges tipusu viszony Altalaban az asszociacio konkret elnevezese fejezi ki a viszonyt Szerep (pl. az ember az auto tulajdonosa) Cselekves (pl. az ember vezeti az autot) Multiplicitas: vannak egy-egy, egy-tobb es tobb-tobb tipusu asszociaciok Iranyultsag: az asszociacio lehet egy- vagy ketiranyu Asszociacios kapcsolat all fenn ket osztaly kozott, ha az egyiknek a sajat helyes m kodesehez ismernie kell a masikat Pelda: egy osztaly hasznal egy masik osztalyt (un. USES-A kapcsolat). Asszociacio V. Pelda: asszociacio (UML) Hallgato Iskola tanul 0..* Leckekonyv birtokol Oktato 0..* alkalmaz oran vesz reszt Asszociacio V. Az aggregacio az asszociacio specialis esete: tartalmazasi kapcsolat A kapcsolat aszimmetrikus es tranzitiv A tartalmazo osztaly peldanyai magukban foglaljak a tartalmazott osztaly egy vagy tobb peldanyat A tartalmazo es a tartalmazott osztaly egymastol fuggetlenul letezhetnek A tartalmazott atveheti (de nem orokli) a tartalmazo egyes jellemz it A kompozicio az aggregacio specialis esete: szigoru tartalmazasi kapcsolat Egy tartalmazottnak mindig csak egy tartalmazoja lehet Egy tartalmazo viszont tetsz leges szamu tartalmazott peldannyal rendelkezhet A tartalmazo es a tartalmazott eletciklusa kozos. Aggregacio es kompozicio (un. HAS-A kapcsolat) Pelda: aggregacio es kompozicio (UML) Képen: Windows képnyomtatási ablak Az OOP néhány csapdája Mire kell ugyelni az osztalyok kialakitasanal? Rossz dontes az osztalyok kozotti kapcsolat tipusanak megvalasztasanal Pl. leszarmazas helyett aggregacio vagy forditva Leszarmazasi kapcsolat helytelen kialakitasa Az sosztaly tul keveset vagy tul sokat tud Onkentelenul (nem lathato modon) beepitett feltetelezesek Az sosztaly feltetelez bizonyos allapotvaltozasokat, a metodusok

vegrehajtasi sorrendjet ez nem biztos, hogy a leszarmazottaknal is igaz lesz Felduzzasztott osztalyok A tul sok mez es metodus, a tul hosszu metodusok azt jelezhetik, hogy valamilyen modon fel kell bontani az osztalyt Elnevezesi anomaliak PDF 0. Egysegbezaras, adatrejtes Nevterek Lathatosagi szintek Osztaly es peldany szint tagok Tulajdonsagok V. 00. oktober. Egységbezárás Az adatait es a rajtuk vegezhet m veleteket szoros egysegbe zarjuk Az adatok csak a definialt m veletek segitsegevel erhet k el Mas m veletek nem vegezhet k az on Az egysegbezaras vedi az adatokat a teves modositasoktol Definicio (ismetles) V. 00. oktober. Adatrejtés Az absztrakciok megvalositasanak reszleteit elrejtjuk a kulvilag el l Az on belul elkulonitjuk a bels (privat) es a kuls (nyilvanos) adatokat es m veleteket A privat adatok es m veletek csak a megvalositashoz szuksegesek A nyilvanos adatok es m veletek a szoftverrendszer tobbi objektuma szamara (is) elerhet k Tajekozodas az objektum allapotarol Az objektum allapotanak modositasa Uzenetvaltas Definicio (ismetles) V. 00. oktober. Névterek Az OO paradigma jellemz je az elnevezesek oriasi szama Minden osztalynak, objektumnak, mez nek, metodusnak egyedi nevet kell adni, hogy a kes bbiekben hivatkozni lehessen ra Nem konny jol megjegyezhet, a celt kes bb is felidez neveket adni A programok meretevel egyenes aranyban n a nevutkozesek valoszin sege A programok altalaban nem csak sajat osztalyokat hasznalnak fel A névtér, mint az elnevezesek ervenyessegenek tartomanya, hierarchikus logikai csoportokra bontja az elnevezeseket Minden elnevezesre csak a sajat nevteren belul lehet hivatkozni Ennek megfelel en a sajat nevteren belul minden elnevezes egyedi A nevterek altalaban tetsz leges melysegben egymasba agyazhatok Azonos elnevezesek mas-mas nevtereken belul szabadon hasznalhatok, igy er sen lecsokken a nevutkozesi problema jelent sege V. 00. oktober. Névterek Pelda Ceg Termek Funkcio Funkcio Kiiro Feldolgozo Kiiro Szintaktikai variaciok nevterre: Cég.Termék.Funkció.Kiíró Cég.Termék.Funkció.Kiíró Cég.Termék.Funkció.Feldolgozó Cég/Termék/Funkció/Kiíró Cég/Termék/Funkció/Kiíró Cég/Termék/Funkció/Feldolgozó Nevterpotlek technika: Cég_Termék_Funkció_Kiíró Cég_Termék_Funkció_Kiíró Cég_Termék_Funkció_Feldolgozó V. 00. oktober. Láthatósági szintek A lathatosagi szintek segitsegevel kulonitjuk el az osztaly bels, illetve kivulr l is elerhet tagjait Az egyes mez k es metodusok lathatosaga kulon-kulon szabalyozhato Alapvet lathatosagi szintek: Nyilvanos (public) Az adott tagot az osztaly sajat metodusai, az osztaly leszarmazottainak metodusai es az osztalyt hasznalo mas osztalyok metodusai hasznalhatjak Ezzel a szinttel valosul meg az osztaly kulvilag szamara lathato felulete Vedett (protected) Az adott tagot az osztaly sajat metodusai es az osztaly leszarmazottainak metodusai hasznalhatjak Ez a szint a leszarmazottak szamara tesz elerhet ve bizonyos funkciokat Privat (private) Az adott tagot csak az osztaly sajat metodusai hasznalhatjak Ezzel a szinttel valosul meg az osztaly szigoruan bels jelleg funkcionalitasa Mez k es metodusok vedelme V. 00. oktober. Láthatósági szintek A lathatosagi szintek segitsegevel hatekonyan, biztonsagosan (adatrejtessel egyutt) valosithato meg az egysegbezaras Az osztalyok a kivulr l is lathato elemeiket bocsatjak mas osztalyok rendelkezesere A nyilvanos mez k adatokat, a nyilvanos metodusok m veleteket tesznek elerhet ve Az egyes osztalyok megvalositasi reszletei modosithatok anelkul, hogy az osztalyt hasznalo mas osztalyoknak err l tudniuk kellene A megvalositast vegz algoritmusok nincsenek kihatassal az osztalyt hasznalo kodra Konkret OO nyelvi megvalositasokban altalaban tovabbi lathatosagi szintek is leteznek Osszegzes V. 00. oktober. Példány szint tagok A peldany szint tagok a peldanyositott sajat adatmez i, valamint sajat adatain m veleteket vegz metodusai. A peldany szint mez k taroljak a peldanyok allapotat Az egyes metodusok programkodjat altalaban nem tartalmazza kulon-kulon az osztaly minden peldanya A metodusok minden peldanynal azonosak es nem modosithatok, ezert a metodusok programkodjat az osztalyon belul szokas tarolni Szukseg lehet azonban arra, hogy a peldany szint metodusok hivatkozni tudjanak arra az objektumra, amelyen a m veletet vegzik Pelda: atadas parameterkent vagy eredmenykent; elnevezesek egyertelm sitese

Ezt altalaban egy rejtett parameterrel valositjak meg Megnevezese nyelvi megvalositasonkent valtozik ( this, Self, Me...) Mindig minden peldanymetodusbol elerhet, erteke a peldany maga ektumokhoz tartozo mez k es metodusok V. 00. oktober. Osztály szint tagok Az osztaly szint tagok az egyes osztalyokhoz tartozo egyedi adatmez k, valamint az ezeken m veleteket vegz metodusok. Osztaly szint adatmez k Minden osztaly pontosan egyet tartalmaz bel luk, fuggetlenul az osztalybol letrehozott objektumpeldanyok szamatol Osztaly szint metodusok Akkor is elerhet k, ha az osztalybol egyetlenegy peldany sem letezik Csak osztaly szint adatmez ket hasznalhatnak Specialis osztaly szint metodus az osztaly szint konstruktor Feladata az osztaly szint adatmez k kezd ertekenek beallitasa Altalaban az osztalyra torten els hivatkozas el tt fut le automatikusan Konkret peldanyt nem igenyl feladatok vegrehajtasara is alkalmasak Pelda: f program megvalositasa Osztalyokhoz tartozo mez k es metodusok 0 V. 00. oktober. 0 Osztály és példány szint tagok Osszehasonlito tablazat Osztalyonkent egyegy peldany (van konkret objektum, amelyen m kodnek) Osztalyonkent egyegy peldany (nincs konkret objektum, amelyen m kodnek) Metodusok (funkciotagok) Minden egyes objektumhoz sajat peldany Egyetlen, az osztalyhoz tartozo peldany Mez k (adattagok) Peldany (objektum) szint tagok Osztaly szint tagok V. 00. oktober. Tulajdonságok Intelligens mez k egy szintaktikai cukorka A tulajdonsag olyan nyelvi elem, amely felhasznalas szempontjabol adatmez kent, megvalositas szempontjabol metoduskent viselkedik Az adott osztaly felhasznaloi mez nek latjak a tulajdonsagot A kulvilag mez kent hivatkozhat a tulajdonsagra A tulajdonsagot megvalosito osztaly kulon-kulon metodust rendelhet a tulajdonsag olvasasi es irasi m veletehez Olvasaskor a megfelel metodus egy valodi (altalaban privat) mez erteket is visszaadhatja, de akar szamitassal is el allithatja a visszaadott erteket Iraskor a megfelel metodus egy valodi (altalaban privat) mez erteket is modosithatja, de vegezhet egyeb m veleteket is vagy akar modositas el tt ellen rizheti az atadott erteket A tulajdonsag tehat felfoghato intelligens mez kent A tulajdonsagok a mez khoz es a metodusokhoz hasonloan kulonboz lathatosagi szintekhez sorolhatok PDF 0. Orokles Bevezet Definicio, terminologia Tobbszoros orokles Specialis metodusok orokl dese V.0 00. oktober. Öröklés A mar meglev objektumtipusok alapjan keszithetunk uj tipusokat, melyek rendelkeznek az stipus tulajdonsagaival Ez egy specializacios m velet ( szarmaztatas ) A leszarmazottak oroklik az stipus tulajdonsagait A leszarmazottak b vithetik, esetenkent akar sz kithetik az stipus allapotteret, illetve m veleteit Teljes leszarmazasi hierarchiakat is letrehozhatunk Kivalo lehet seg a kozos tulajdonsagok, m veletek osszevonasara es ujrahasznositasara Az alapelv kovetkezetes alkalmazasaval elerhet, hogy a mar megvalositott funkcionalitas kes bb a megvalositas reszleteinek ismerete nelkul is felhasznalhato legyen Jol atgondolt el zetes tervezest igenyel Definicio (ismetles) V.0 00. oktober. Öröklés. pelda Geometriai alakzatok kezelese Alakzat Pozicio Iranyszog Mozgat() Forgat() Kirajzol() Teglalap Kirajzol() Ellipszis Kirajzol() Kor Kirajzol() A leszarmazottak ugyanazt a funkciot biztositjak kulonboz, rajuk jellemz megvalositasban V.0 00. oktober. Öröklés. pelda Jarm vek osztalyozasa Jarm Sebesseg Gyorsit() Lassit() Foldi jarm Vizijarm Uszik() Legi jarm Repul() Auto Kamion Csonak Hajo Tolat() Repul Raketa A leszarmazottak mind rendelkeznek seik osszes adatmez jevel es metodusaval A leszarmazottak vithetik is az orokolt funkciok koret

V.0 00. oktober. Öröklés A leszarmazottak tenyleges felepitese Csonak <Jarm mez i> <Vizijarm mez i> Sajat mez k <Jarm metodusai> <Vizijarm metodusai> Sajat metodusok Csonak Vizijarm Jarm V.0 00. oktober. Öröklés Terminologia Peldany szint tag Mez vagy metodus Osztaly szint tag Statikus mez vagy statikus metodus Funkciotag Metodus / tagfuggveny Adattag Adatmez / mez / tagvaltozo Leszarmazott A szarmazasi fa alacsonyabb szint eleme s A szarmazasi fa magasabb szint eleme Az osztalyhierarchiaban egy szinttel magasabban lev osztaly Kozvetlen s Egymasbol leszarmazo osztalyok hierarchikus rendszere ( szarmazasi fa ) Osztalyhierarchia Kifejezes Jelentese, szinonimai V.0 00. oktober. Többszörös öröklés Tobbszoros orokles eseten egy osztalynak tobb se van Ez egy sokat vitatott lehet seg nehany OOP megvalositasban El nyok: Egyszerre tobb sosztaly kepessegei orokolhet k Tobb szarmaztatasi szempont ervenyesithet egyszerre Tobb s tulajdonsagait otvoz vegyes osztalytipusok Nagyobb rendszereknel gyakran felmerul az igeny ra Hatranyok: Igen nehez megvalositani Komoly megvalositasi problemak: adatmez k oroklese, kozos kozvetett sok (leszarmazas tobb utvonalon) Nagyobb rendszereknel szinte lehetetlen jol, kovetkezetesen megvalositani Bonyolult Bonyolitja a programozasi nyelv eszkozeit, a programok tervezeset Orokles egynel tobb sosztallyal V.0 00. oktober. Többszörös öröklés Problémák Adatmez k oroklese, leszarmazas tobb utvonalon Dolgozo Feln tt Gyermek Szemely Ferfi N Diak Beosztott Vezet Hallgato Tegyuk fel, hogy a Dolgozo osztalynak es a Ferfi osztalynak is van egy Szakma mez je. A Hallgato melyiket orokolje? Tegyuk fel, hogy a Szemely osztalynak van egy Tanul() nev metodusa, amelynek a viselkedeset a Diak osztaly es a Feln tt osztaly is modositja. A Hallgato.Tanul() hivas melyiket hasznalja? V.0 00. oktober. Speciális metódusok örökl dése A konstruktorok es destruktorok nem feltetlenul orokl dnek Az letrehozasakor vegre kell hajtani minden egyes s valamelyik konstruktorat is Ez szinten resze a konstruktorok alapvet feladatkorenek Hivasi sorrend A konstruktorok leszarmazas szerinti sorrendben hajtodnak vegre El szor az sok adatait kell inicializalni, hiszen a leszarmazottak ezeket akar mar a sajat konstruktorukban is fel kivanhatjak hasznalni A destruktorok leszarmazas szerinti forditott sorrendben hajtodnak vegre El szor az utodok esetleges bels objektumait kell felszamolni, hiszen az utodok destruktora meg hivatkozhat az sok bels objektumaira Konstruktorok es destruktorok PDF 0. Tobbalakusag Bevezet Adatmez k tobbalakusaga Nemvirtualis metodusok Virtualis metodusok Absztrakt metodusok, absztrakt osztalyok Lezart metodusok, lezart osztalyok Interfeszek V.0 00. oktober. Többalakúság A kulonboz, egymasbol szarmazo objektumtipusok hasonlo veletei a konkret objektumtol fugg en mas-mas konkret megvalositassal rendelkezhetnek Ugyanaz a m velet nemileg elter lehet az stipus es a leszarmazott tipus eseteben Az alapelv lehet seget teremt ra, hogy azonos nevvel hivatkozzunk az azonos celu, de a leszarmazasi hierarchia kulonboz szintjein masmas megvalositast kivano m veletekre Az egyes stipusok leszarmazottai mindenre alkalmasak, amire az adott stipus alkalmas volt Minden olyan helyzetben es funkcioban, ahol az stipus szerepelhet, annak barmely leszarmazottja is szerepelhet Definicio (ismetles) V.0 00. oktober. Adatmez k többalakúsága Az orokolt mez k a leszarmazottakban is elerhet k Az elerest az adott mez hozzaferesi szintje szabalyozza Orokles soran a mez k statikusan viselkednek A mez k jellemz i (viselkedesuk, tipusuk, meretuk, nevuk) nem valtoztathatok meg orokles utjan Minden leszarmazott tartalmazza minden korabbi s osszes mez jet, emellett tetsz legesen b vitheti is a mez k koret A mez k ennelfogva (a mai OO programnyelvekben) nem kepesek tobbalaku viselkedesre V.0 00. oktober. Nemvirtuális metódusok A nemvirtualis metodusok a leszarmazottakban is elerhet k Az elerest az adott metodus hozzaferesi szintje szabalyozza

Orokles soran a nemvirtualis metodusok viselkedese korlatozottan modosithato A nemvirtualis metodusok a leszarmazottakban ujra deklaralhatok Viselkedesuk mar a program leforditasakor eld l, attol fugg en, hogy az adott metodust milyen kontextusban hasznaljuk Az oroklesnek tehat itt minimalis szerepe van Lenyegeben egy azonos nev metodust keszitettunk a leszarmazottban, aminek nincs kapcsolata az s azonos nev metodusaval Altalaban van lehet seg az sosztaly azonos nev metodusanak eleresere a leszarmazottbol is, igy manualisan korlatozott kapcsolat teremthet A nemvirtualis metodusok nem alkalmasak tobbalakusag megvalositasara veletek statikus jelleg megvalositasa V.0 00. oktober. Nemvirtuális metódusok Nemvirtualis metodus hivasakor az adott objektum deklaralt tipusanak megfelel osztaly adott nev metodusa hivodik meg Az at a programon belul tagvaltozokban taroljuk A tagvaltozok deklaralt tipusa valasztja ki a hivando nemvirtualis metodust Ez az informacio mar forditaskor ismert, igy a forditoprogram el re elkeszitheti a hivast megvalosito gepi kodot (statikus kotes) El nyok: Egyszer megvalositas; nincs futasi idej teljesitmenyveszteseg Hatranyok: Nem alkalmasak tobbalakusag megvalositasara A statikus (forditasi idej vagy korai ) kotes V.0 00. oktober. Virtuális metódusok A virtualis metodusok a leszarmazottakban is elerhet k Az elerest az adott metodus hozzaferesi szintje szabalyozza Orokles soran a nemvirtualis metodusok viselkedese szabadon modosithato A virtualis metodusok a leszarmazottakban felulbiralhatok Viselkedesuk attol fugg en valtozik, hogy az adott m veletet vegrehajto konkret objektum milyen tipusu (mely osztaly peldanya) A tenylegesen vegrehajtando m velet kivalasztasa tehat futasi id ben tortenik A virtualis metodusok a tobbalakusag megvalositasanak legf bb eszkozei A virtualis metodus fogalma az objektumorientalt programozasi paradigma egyik legfontosabb eleme veletek dinamikus jelleg megvalositasa V.0 00. oktober. Virtuális metódusok Virtualis metodus hivasakor az adott objektum tenyleges tipusanak megfelel osztaly adott nev metodusa hivodik meg A tagvaltozok tartalma nemcsak a deklaralt osztaly lehet, hanem annak osszes leszarmazottja is Csak a hivas pillanataban derul ki, hogy a tagvaltozo tenylegesen mely osztaly egy peldanyat tartalmazza A metodushivast tehat futasi id ben kell el kesziteni El nyok: Tobbalakusag; rendkivuli rugalmassag Hatranyok: Teljesitmenyveszteseg; nagyobb tarigeny; bonyolultabb megvalositas A dinamikus (futasi idej vagy kes i ) kotes V.0 00. oktober. Alakzat.Mozgat() Alakzat.Forgat() Kor.Kirajzol() VMT Alakzat.Mozgat() Alakzat.Forgat() Ellipszis.Kirajzol() VMT Alakzat.Mozgat() Alakzat.Forgat() Alakzat.Kirajzol() VMT Virtuális metódusok Megvalositas A virtualismetodus-tabla (VMT) Alakzat +Mozgat() +Forgat() +Kirajzol() Ellipszis +Kirajzol() Kör +Kirajzol() E : Ellipszis K : Kor Alakzat A; Alakzat E = new Ellipszis(); Alakzat K = new Kör(); A = K; A.Kirajzol(); // Kör A = E; A.Kirajzol(); // Ellipszis E A K V.0 00. oktober. Absztrakt osztályok Absztrakt osztaly: legalabb egy absztrakt metodust tartalmazo osztaly Absztrakt metodus: deklaralt, de (altalaban) meg nem valositott virtualis metodus, amelyet az t tartalmazo osztaly valamennyi leszarmazottja koteles un. felulbiralassal megvalositani Az absztrakt osztalyok nem peldanyosithatok Celjuk az orokles kikenyszeritese, nem a tenyleges megvalositas Segitsegukkel altalanos funkcionalitas irhato el az oroklesi hierarchia fels bb szintjein Mivel az absztrakt metodusokat kotelez megvalositani, ezek funkciojara a leszarmazott osztalyokat felhasznalo egyeb osztalyok biztosan szamithatnak Az orokles kotelez ve tetele 0 V.0 00. oktober. 0 Lezárt osztályok A lezart osztalyok es lezart metodusok lehet seget adnak az orokles eseti jelleg megakadalyozasara Veglegesnek szant osztalyok, illetve metodusok eseten lehet celszer alkalmazni ezt a megoldast Csak osztalyszint tagokat tartalmazo osztalyok Biztonsagi es gyakorlati megfontolasok (hatekonysag, tamogatas, jogvedelem) Lehet seget adnak a teljesitmeny bizonyos optimalizalasara Feltetelezhet, hogy az osztaly minden tarolt peldanya pontosan megegyez adatszerkezettel es viselkedessel rendelkezik Mivel nincsenek leszarmazottak, nincs tobbalakusag sem A lezart osztalyok virtualis metodusai nemvirtualissa alakithatok Er s korlatozast jelentenek a fejlesztes soran Hasznalatuk alapos megfontolast igenyel Az orokles (es ezzel a tobbalakusag) megakadalyozasa V.0 00. oktober. Interfészek Az interfeszek olyan ures osztalyok, amelyek nem tartalmaznak megvalositast Altalaban metodusokat tartalmaznak, de mez ket nem Egyeb, metodusokhoz kot nyelvi konstrukciokat (tulajdonsagok, esemenyek) szinten tartalmazhatnak Egy osztaly akkor tamogat egy interfeszt, ha kotelez en vallalja, hogy megvalositja a benne foglalt funkcionalitast Egy osztaly altalaban tetsz leges szamu interfeszt tamogathat

Az interfesz-fogalom un. CAN-DO kapcsolatot valosit meg Sajat, kulonallo (az osztalyhierarchiatol fuggetlen) oroklesi hierarchiaval rendelkeznek Interfesz tipusu valtozok segitsegevel azonos viselkedes, de mas jelleg osztalyok hasznalhatok azonos kontextusban Adott funkcionalitas el irasa orokles helyett V.0 00. oktober. Interfészek Osztalyok onkent vallalt megvalositasi kotelezettsegei IDolgozó Feln tt Személy Férfi IDiák ITancos IDiak +Dolgozik() +Dolgozik() +Jegyzetel() +Tanul() +Vizsgazik() ITáncos +Tangozik() +Kering zik() Hallgató Az osztalyoktol es egymastol fuggetlen Tobb interfeszt interfesz-hierarchiak tamogato osztaly +Tangozik() +Kering zik() +Dolgozik() +Jegyzetel() +Tanul() +Vizsgazik() Osztalyhierarchia Tamogatott Interfeszek PDF 0. Kodujrafelhasznalas (roviditett vazlat) Bevezet Kepvisel k (delegaltak) Esemenyek Komponensek 00. V0. szeptember. Kódújrafelhasználás A mar megvalositott objektumtipusokat kesz (binaris) formaban mas programokban is felhasznalhatjuk Jo tervezes es dokumentalas eseten az nyilvanos adatai es veletei elegend ek a kes bbi felhasznalashoz Szintaktikai b vitesekkel (pl. tulajdonsagok, esemenyek ) kenyelmesebbe tehet a kuls felhasznalas Az egyes objektumtipusokat egymasba agyazva osszetettebb tipusokat hozhatunk letre A kesz, ujrafelhasznalhato objektumtipusokat csoportokba fogva akar nagyobb szoftver-epit elemeket (komponenseket) is letrehozhatunk A fenti alapelvekre epitve ez az alapelv jelenti az igazi attorest a szoftvertechnologiaban 0 Definicio (ismetles) 00. V0. szeptember. Képvisel k (delegáltak) A képvisel (delegalt) olyan specialis nyelvi elem, melynek segitsegevel egy osztalyhoz kuls osztalyok utolag is kapcsolodni tudnak A kepvisel el irja az uzenetek formatumat A kuls osztaly tetsz leges lehet, a kepvisel n keresztuli kommunikacio egyetlen feltetele a formatum betartasa Lehet ve teszik, hogy egy osztaly metodusai kuls osztalyok metodusait ismeretlenul is meg tudjak hivni Uzenetkuldesi funkcio kuls osztalyok reszere Ezzel lehet ve valik, hogy egy osztaly kepes legyen metodusokat meghivni olyan egyeb osztalyokbol, amelyek meg nem is leteznek Univerzalis visszahivasi funkcio megvalositasa Ertesitesi funkcio megvalositasa Kapcsolodas kuls (akar meg nem letez ) osztalyokhoz 00. V0. szeptember. Események Az esemeny olyan allapotvaltozas, amelynek bekovetkezese mas osztalyok erdekl desere tarthat szamot Szinten eseménynek nevezzuk azt a nyelvi elemet, melynek segitsegevel megvalosul a kuls osztalyok ertesitese Az ertesitesi folyamat altalanos menete: Az esemeny irant erdekl osztaly feliratkozik az esemenyt kozzetev osztalynal A feliratkozas soran az osztaly meghatarozott formatumu sajat esemenykezel t ad at a kozzetev osztalynak A kozzetev osztaly valamely metodusaban kivaltodik az esemeny Err l az esemenyr l az osztaly metodushivas (a megadott esemenykezel hivasa) utjan ertesiti a feliratkozott osztalyt ektumorientalt megvalositasa kepvisel vel tortenhet Egy esemenyre altalaban akar tobb osztaly is feliratkozhat Legnagyobb szerepe az esemenyvezerelt programozasban es komponensek kialakitasanal van Erdekelt osztalyok ertesitese tortenesekr l 00. V0. szeptember. Komponensek A komponensek olyan osztalyok vagy osztalygy jtemenyek, amelyek keszen (binaris formaban), valtoztatas nelkul felhasznalhatok es osszekapcsolhatok Onallo logikai (es altalaban fizikai) egyseget kepeznek Felhasznalasukhoz altalaban nincs szukseg arra, hogy forraskodjuk rendelkezesre alljon Az ket felhasznalo osztalyokkal metodusok (interfeszek), tulajdonsagok es esemenyek utjan erintkeznek Segitsegukkel nagyobb rendszerek keszithet k kezelhet keretek kozott A rendszereket konnyebb kisebb elemekre bontva megvalositani Kulonboz nyelveken irt komponensek is egyuttm kodhetnek Ujrafelhasznalhato szoftver-epit elemek