Alkalmazott Modul III 4. előadás. Objektumorientált programozás: objektumok és osztályok. Procedurális programozás Koncepció
|
|
- Zoltán Gáspár
- 6 évvel ezelőtt
- Látták:
Átírás
1 Eötvös Loránd Tudományegyetem Természettudományi Kar Alkalmazott Modul III 4. előadás : objektumok és osztályok Giachetta Roberto groberto@inf.elte.hu Koncepció A procedurális programozás a felülről lefelé tervezés elvét követi, vagyis a feladatot részfeladatokra bontja a részfeladatokhoz az imperatív megközelítés elvén megoldó algoritmusokat rendel az algoritmusok a programkonstrukciók, vagy vezérlési szerkezetek (szekvencia, elágazás, ciklus) segítségével épülnek fel a megoldó algoritmusok az algoritmus állapotterét alkotó változók segítségével kommunikálnak egymással a változók változtatásával a program állapotot vált, és a program futása az állapotváltozások sorozata, amelyek elvezetnek a végállapothoz ELTE TTK, Alkalmazott modul III 4:2 Alprogramok Az algoritmusok alprogramokként (subroutine) jelennek meg, és meghatározott részfeladatot végeznek el, lehetnek: eljárások (procedure): valamilyen utasítássorozatot futtat, végeredmény nélkül függvények (function): valamilyen matematikai számítást végez el, és megadja annak eredményét Alprogramok meghívhatnak más alprogramokat, és kommunikálhatnak velük adatok átadásával Van egy kiemelt szerepű alprogram, amelyet a program indítások futtat, ez a főprogram feladata a teljes program vezérlése és az adatok összefogása, rá hárul a teljes felelősség Adatkezelés és vezérlés Az adatok a procedurális programozásban lehetnek: globálisak: valamennyi alprogram számára láthatóak, és kezelhetőek, élettartamuk a program teljes futása lokálisak: csak egy alprogram számára láthatóak, élettartamuk az alprogram futása A felső szintű alprogramok között áramló, illetve a program teljes működése során jelen levő adatokat a főprogram tárolja A lokális adatok áramlását az alprogramok között felügyelni, nyomon követni kell a lokális adatok átvitele történhet paraméterként, illetve visszatérési értékként, amely során az adatok átmásolódnak ELTE TTK, Alkalmazott modul III 4:3 ELTE TTK, Alkalmazott modul III 4:4 alprogram 5 Adatkezelés és vezérlés főprogram alprogram 1 alprogram 2 alprogram 3 alprogram 4 alprogram 6 ELTE TTK, Alkalmazott modul III 4:5 Korlátok A programrészek csak az algoritmusok szerint különíthetőek el, aszerint nem, hogy melyik feladatkörben végzik tevékenységüket, tehát nem tagolható kellő mértékben a program Az adatok élettartama nem elég testre szabható, az adat vagy mindenki számára látható, vagy csak egy adott algoritmus számára, nem lehet programegység szerinti adatokat megkülönböztetni A feladat módosítása több funkció módosítását igényelheti, ami mind az alprogramokban, mind az adatkezelésben változásokat jelent, beleértve az általuk meghívott, és az őket meghívó alprogramokra is, tehát jelentős módosításokat kell végezni a programkódban ELTE TTK, Alkalmazott modul III 4:6 1
2 A feladatmódosítás hatásai A feladatmódosítás hatásai főprogram főprogram alprogram 1 alprogram 2 alprogram 3 alprogram 1 alprogram 2 alprogram 3 alprogram 4 alprogram 4 alprogram 5 alprogram 6 alprogram 5 alprogram 6 ELTE TTK, Alkalmazott modul III 4:7 ELTE TTK, Alkalmazott modul III 4:8 Kialakulása A korlátok kiküszöbölése: a programot tagolni kell, de nem a részfunkciók, hanem a betöltött szerep szerint, tehát a programegységeket úgy alakítjuk ki, hogy azok egy adott tárgykörért feleljenek az összetartozó programrészek között szorosabb kapcsolatot, a nem összetartozó programrészek között lazább kapcsolatot kell biztosítani meg kell határozni az adatoknak a programegység szintű láthatóságát, mivel a globális adatok túl általánosan, a lokálisak pedig túl szűkkörűen használhatóak függetleníteni kell az adatokat a főprogramtól, valamint mentesíteni azt a teljes program vezérlésének feladatkörétől Kialakulása Megoldás a felelősség továbbadása, azaz az adatok továbbadása az őket kezelő programegységek számára így egy programegység alá nem csak a műveletek kerülnek, hanem az általuk manipulált adatok ezt nevezzük egységbe zárásnak (enkapszulációnak), így kialakul a programegységen belül a szoros összetartás a programegységek között így már kialakítható egy gyengébb kohézió azáltal, hogy csak bizonyos pontokon engedélyezünk hozzáférést a részegységhez, a többi funkciót, adatot pedig elrejtjük Ennek eredményeként egy módosítás a feladatban csupán egy programegység módosítását vonja maga után ELTE TTK, Alkalmazott modul III 4:9 ELTE TTK, Alkalmazott modul III 4:10 Absztrakció Az absztrakciós szint megválasztása lehetővé teszi, hogy az adott problémát több szinten kezeljük, azaz az összes lehetséges tulajdonságnak egy alkalmas részhalmazát válasszuk ki, és azokat használjuk a megvalósításban a számunkra lényeges tulajdonságok kiemelését, és ezáltal az objektum meghatározását nevezzük absztrakciónak pl.: az autót ábrázolhatjuk rendszámmal, sebességgel és tömeggel, vagy ábrázolhatjuk, mint motor és karosszéria összessége, vagy akár minden egyes alkatrészét különkülön vehetünk pl.: egy háromszöget ábrázolhatunk a 3 pont koordinátáival, vagy a két oldallal és a közrezárt szöggel, stb. ELTE TTK, Alkalmazott modul III 4:11 Objektumok Objektumnak (object) nevezzük a feladat egy adott tárgyköréért felelős programegységet, amely tartalmazza a tárgykör megvalósításához szükséges adatokat, valamint műveleteket az objektum képes önálló működésre, amely során saját adatait manipulálja, saját műveleteit futtatja és kommunikál a programban jelen levő többi objektummal pl.: egy téglalapot kezelhetünk objektumként adatai: szélessége és magassága műveletei: területkiszámítás, méretváltoztatás pl.: egy verem adatszerkezetet kezelhetünk objektumként adatai: elemek tartalmazó tömb és a felhasznált méret műveletei: Push, Pop, Top ELTE TTK, Alkalmazott modul III 4:12 2
3 Objektum-orientált program Objektum-orientáltnak nevezzük azt a programot, amely egymással kommunikáló objektumok összessége alkot minden adat egy objektumhoz tartozik, és minden algoritmus egy objektumhoz rendelt tevékenység, nincsenek globális adatok, vagy globális algoritmusok a program így kellő tagoltságot kap az objektumok mentén az adatok élettartama így összekapcsolható az objektum élettartamával a módosítások általában az objektum belsejében véghezvihetők, ami nem befolyásolja a többi objektumot, így nem szükséges jelentősen átalakítani a programot Alaptulajdonságok Az objektum-orientáltság öt alaptényezője: absztrakció: az objektum reprezentációs szintjének megválasztása enkapszuláció: az adatok és alprogramok egységbe zárása, a belső működés elrejtése nyílt rekurzió: az objektum mindig látja saját magát, eléri műveleteit és adatait öröklődés: az objektum tulajdonságainak átruházása más objektumokra polimorfizmus és dinamikus kötés: a műveletek futási időben történő működéshez kötése, és a viselkedés átdefiniálása ELTE TTK, Alkalmazott modul III 4:13 ELTE TTK, Alkalmazott modul III 4:14 Objektumok állapotai Az objektumok állapottal (state) rendelkeznek, ahol az állapot értékeinek összességét jelenti az objektum mindig tisztában van az állapotával két objektum állapota ugyanaz, ha értékeik megegyeznek az állapot esemény (műveletvégzés, kommunikáció) hatására változhat meg A program teljes állapotát a benne lévő objektumok összállapota adja meg, így az továbbra is imperatív marad Minden objektum egyértelműen azonosítható, és ez független a tárolt értékektől két objektum akkor sem azonos, ha egy állapotban vannak Objektumok Az objektumoknak életciklusa van megszületik: létrejön a memóriában, benne lévő adatok inicializálódnak a konstruktor művelet végzi, feladata a változók kezdőértékeinek beálltása, és a működéshez szükséges tevékenységek elvégzése él: kommunikálhat (üzeneteket fogadhat és küldhet), állapotot válthat meghal: befejezi a működését a destruktor művelet végzi, amely lezárja a működését eltávolítja a memóriából (általában nem kell külön implementálnunk, szintén van alapértelmezett) ELTE TTK, Alkalmazott modul III 4:15 ELTE TTK, Alkalmazott modul III 4:16 Osztályok Az objektumok viselkedési mintáját azaz a tárolható adatokat, és azokkal végezhető műveletek halmazát az osztály tartalmazza tehát az osztály az objektum típusa az osztályból példányosíthatjuk az objektumokat pl. háromszögek és vermek osztálya Az osztályban tárolt adatokat attribútumoknak, vagy mezőknek (field), az általa elvégezhető műveleteket metódusoknak (method) nevezzük, együtt ezek az osztály tagjainak (member) a tagokat elrejthetjük a többi osztály elől a láthatóság szabályozásával, így az osztály megvalósítása, belső működése később könnyen módosítható lesz Osztályok Az osztály kívülről látható részét interfésznek, a kívülről nem látható részét implementációnak nevezzük a metódusok megvalósítása mindig az implementáció része, tehát más osztályok számára a működés maga mindig ismeretlen Az osztályokat úgy kell megtervezni, hogy ne háruljon egyikre se túl nagy felelősség, azaz ne legyenek túl bonyolultak, mert áttekinthetetlenné válik az objektumok működése mindegyikére túl kicsi felelősség, mert ekkor túl sok objektum jelenik meg a programban, és áttekinthetetlenné válik a program működése ELTE TTK, Alkalmazott modul III 4:17 ELTE TTK, Alkalmazott modul III 4:18 3
4 Osztályok tervezése A program szerkezetének és működésének megtervezések az osztályok és objektumok szempontjából történik a szerkezeti tervezésnél az osztályok tagjait, azok kapcsolatait, illetve elhelyezkedését a programban, ez alkotja a statikus tervet a programfutási tervezésnél az osztályok időbeli működését, az objektumok állapotainak változását modellezzük, ez a dinamikus tervezés Az objektumorientált tervezés eszköze a Unified Modelling Language (UML), amelyben 13 diagramtípus segítségével tervezhető meg a program szerkezete és működése ELTE TTK, Alkalmazott modul III 4:19 Az osztálydiagram Az UML diagramok körében az osztályok szerkezetét, a program felépítését az osztálydiagram reprezentálja ábrázolja a rendszerben részt vevő osztályokat, azok felépítését (mezők és metódusok bontásában, típusok és láthatóság megjelölésével): class UML <osztálynév> - <mezőnév>: <típus> - + <metódusnév>(<paraméterek>) : <típus> + az osztályok közötti kapcsolatot relációk formájában, név és multiplicitás megjelölésével ELTE TTK, Alkalmazott modul III 4:20 Osztályok implementációja Az osztályokat minden nyelv más formában implementálja, de az általános jellemzőket megtartja A C# programozási nyelv tisztán objektum-orientált, ezért minden érték benne objektum, és minden típus egy osztály az osztály lehet érték szerint kezelt (struct), vagy referencia szerint kezelt (class), előbbi élettartama szabályozott az őt tartalmazó blokk által, utóbbié független tőle az osztály tagjai lehetnek mezők, metódusok, illetve tulajdonságok (property), utóbbi lényegében a lekérdező (get) és beállító műveletek (set) absztrakciója minden tagot jelöl a láthatósággal, a látható tagokat a public, a rejtett tagokat a private kulcsszóval Osztályok implementációja A C# osztály szerkezete: class/struct <osztálynév> { public/private <típus> <mezőnév>; public/private <típus> <metódusnév> ([ <paraméterek> ]) { <működés> public/private <típus> <tulajdonságnév> { [ get { <működés> ] [ set { <működés> ] ELTE TTK, Alkalmazott modul III 4:21 ELTE TTK, Alkalmazott modul III 4:22 A téglalap osztály megvalósítása: mezői a két oldal mérete, ezeket elrejtjük műveletei az átméretezés, illetve a méretek és a terület lekérdezése, ezeket láthatóvá tesszük A téglalap osztály terve (UML osztálydiagramja): A téglalap osztály megvalósítása C# nyelven: class Teglalap{ // a láthatóságokat tagonként adjuk meg private Int32 meretx; private Int32 merety; public Teglalap(Int32 x, Int32 y) { // konstruktor meretx = x; merety = y; // az alapértelmezett destruktort használjuk public void Meretez(Int32 x, Int32 y){ meretx = x; merety = y; ELTE TTK, Alkalmazott modul III 4:23 ELTE TTK, Alkalmazott modul III 4:24 4
5 // lekérdező műveletek, mint tulajdonságok: public Int32 MeretX { get { return meretx; public Int32 MeretY { get { return merety; public Int32 Terulet { get { return meretx * merety; // osztály vége A verem (stack) osztály megvalósítása: a verem egy tömb és elemszám segítségével írható le, amiket elrejtünk műveletei a behelyezés (push), kivétel (pop), tetőelem (top), illetve méret (size) lekérdezés, ezeket láthatóvá tesszük A verem osztály terve (UML osztálydiagramja): Teglalap t = new Teglalap(10,20); // az objektumpéldány létrehozása t.meretez(20,20); // módosító művelet meghívása az objektumra Console.WriteLine(t.Terulet); // lekérdező tulajdonság meghívása az objektumra ELTE TTK, Alkalmazott modul III 4:25 ELTE TTK, Alkalmazott modul III 4:26 A verem osztály megvalósítása C# nyelven: class Stack { private Single[] values; private Int32 top; public Stack(Int32 maxsize){ // konstruktor values = new Single[maxSize]; top = 0; void Push(Single v) { if (top < values.length) { values[top] = v; top++; // méret növelés ELTE TTK, Alkalmazott modul III 4:27 public void Pop() { if (top > 0) top--; // méret csökkentése public Single Top { // lekérdező tulajdonság get { if (top > 0) return values[top]; else throw new Exception(); // hibajelzés public Int32 Size { get { return top; Stack s = new Stack(10); // verem létrehozása s.push(5.5f); // elem behelyezése ELTE TTK, Alkalmazott modul III 4:28 Objektumok példányosítása A program során objektumokat használunk a kommunikációhoz, ehhez példányosítanunk kell az osztályokat A példányosítás két lépésben történik: deklaráció: megadjuk a változó nevet, valamint a típust (osztályt), ekkor még nem jön létre a változó, pl.: Int32 x; // egész szám típusú változó Teglalap t; // téglalap típusú változó definíció: létrehozzuk a változót a new operátorral, lefoglaljuk a memóriában értékadás segítségével, ekkor futtatjuk a konstruktor műveletet, pl.: x = new Int32(); // a 0 értéket kapja meg t = new Teglalap(1,1); ELTE TTK, Alkalmazott modul III 4:29 Objektumok példányosítása a deklarációhoz nem csak új értéket állíthatunk be, hanem (primitív típusok esetén) azonos típusú konstanssal is létrehozhatjuk a változót, illetve más típusú változóból konvertálhatjuk, pl.: x = 1; x = Convert.ToInt32(Console.ReadLine()); sok esetben a két lépést összevonjuk, és egyszerre deklaráljuk és definiáljuk a változót, pl.: Int32 x = 1; Teglalap t = new Teglalap(1, 1); Minden deklaráció élettartammal rendelkezik, lokális változó esetén a blokk végéig, mező esetén az objektum megsemmisüléséig használható ELTE TTK, Alkalmazott modul III 4:30 5
6 A memória és a mutatók A programok indításuk után bekerülnek a memóriába, és egy számukra fenntartott területen, úgynevezett szegmensben futnak a szegmensben tárolják a programkódot, valamint a változók értékeit A szegmens tekinthető egy vektornak, amelynek bájtjai sorszámozva vannak, és a sorszám alapján lekérhető bármely változó memóriabeli címe mivel a sorszám (32, vagy 64 bites) egész szám, azért az értéke eltárolható, így lehetőségünk van olyan változókat létrehozni, amelyek direkt memóriacímeket tárolnak, őket nevezzük mutatóknak (pointer) Memóriahely foglalás A C# programozási nyelvben a deklaráció során igazából egy mutató keletkezik, amit az értékadáskor egy tényleges objektum memóriacímére állítunk be az ilyen módú változó létrehozást nevezzük manuális, vagy dinamikus memóriafoglalásnak A módszer előnyei: az objektum élettartama függetleníthető a mutató élettartamától, tehát az objektum tovább létezhet, mint a rá hivatkozó mutató az objektumok átadásakor (pl. paraméterként) nem kötelező a teljes objektum átmásolása, csupán a mutató értékének másolása, így megvalósítható a cím szerinti átadás ELTE TTK, Alkalmazott modul III 4:31 ELTE TTK, Alkalmazott modul III 4:32 Érték és referencia típusok A létrehozás és kezelés módjától függően ezért kétféle osztálytípust különböztetünk meg: érték (struct): érték szerint kezelendő típusok, azaz mindig másolódnak a memóriában átadáskor az osztályt a struct kulcsszóval kell megadni élettartamukat befolyásolja a blokk, vagy az őket tartalmazó objektum élettartama többnyire primitív és egyszerű típusokra, amelyek kevés memóriaterületet foglalnak, ezért gyorsan másolhatóak lehetőséget adnak paraméterként a cím szerinti kezelésre a ref kulcsszóval pl.: Boolean, Int32, Char, Decimal, Single, ELTE TTK, Alkalmazott modul III 4:33 Érték és referencia típusok referencia (class): mutatókon keresztül kezelt típusok az osztályt a class kulcsszóval kell megadni blokktól és objektumtól független élettartammal, amíg legalább egy hivatkozás van az objektumra, addig a memóriában van csak a memóriacím másolódik, amennyiben az egész objektumot másolni akarjuk a memóriában, a Clone() metódus meghívásával, vagy paraméterként a value kulcsszóval tehetjük, ez létrehozza a másodpéldányt többnyire összetett típusokra, ahol a másolás művelete költséges lenne pl.: String, (Teglalap, Stack,) ELTE TTK, Alkalmazott modul III 4:34 Pl.: struct Stack{ /**/ // érték szerint kezelt void PrintSize(Stack s){ Console.WriteLine("Verem mérete: " + s.size); void MultiPop(Stack s, Int32 n){ for (Int32 i = 0; i < n; i++) s.pop(); Stack st = new Stack(100); st.push(1); // elemek behelyezése PrintSize(st); // a verem átmásolódik a memóriában MultiPop(st,10); // az st nem fog módosulni Pl.: class Stack{ /**/ // referencia szerint kezelt void PrintSize(Stack s){ Console.WriteLine("Verem mérete: " + s.size); void MultiPop(Stack s, Int32 n){ for (Int32 i = 0; i < n; i++) s.pop(); Stack st = new Stack(100); st.push(1); // elemek behelyezése PrintSize(st); // a verem nem másolódik MultiPop(st,10); // az st módosulni fog ELTE TTK, Alkalmazott modul III 4:35 ELTE TTK, Alkalmazott modul III 4:36 6
7 Biztonságos mutatók A C# nyelv elsődlegesen az úgynevezett biztonságos mutatókat, vagy referenciákat támogatja a referencia típusok megvalósításánál olyan mutatók, amelyek mindig rendelkeznek értékkel, és a működésüket felügyeli a virtuális gép amennyiben nem adunk nekik objektum memóriacímét értékül, az üres (null) hivatkozást kell adnunk mivel az objektum nem semmisül meg a blokk végén, amennyiben egy objektumra nem mutat egyetlen mutató sem, akkor már nem elérhető a program számára, ezért a virtuális gép gondoskodik a megsemmisítéséről (ezt hívjuk szemétgyűjtésnek), hogy ne foglalja feleslegesen a memóriát ELTE TTK, Alkalmazott modul III 4:37 Nyílt rekurzió Az objektum mindig tisztában van saját állapotával, vagyis elérheti mezőit, és azok aktuális értékét, és saját magából is meghívhatja metódusait Lényegében azt mondhatjuk, hogy az objektum rendelkezik saját maga felett, eléri saját magát, ezt nyílt rekurziónak (open recursion) nevezzük a nyílt rekurzióban az objektumon belül mindig elérhetjük az objektum hivatkozását (mutatón keresztül), a C#-ban erre a this kulcsszó használható a nyílt rekurzió amellett, hogy lehetővé teszi a hivatkozáson keresztül is a tagok elérését (this.<tagnév>), lehetőséget ad saját magára való hivatkozás átadására (pl. metódus paraméterében) ELTE TTK, Alkalmazott modul III 4:38 Nyílt rekurzió Pl.: class FirstClass { public SecondClass secclass; public FirstClass(SecondClass sc){ this.secclass = sc; // a mező eléréséhez nyílt rekurzió class SecondClass { public SecondClass(){ FirstClass fc = new FirstClass(this); // objektumhivatkozás átadása nyílt // rekurzióval ELTE TTK, Alkalmazott modul III 4:39 7
Bevezetés a Programozásba II 5. előadás. Objektumorientált programozás és tervezés
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 5. előadás Objektumorientált programozás és tervezés 2014.03.10. Giachetta Roberto groberto@inf.elte.hu
Objektumelvű programozás
Objektum, osztály Objektumelvű programozás Az elemzés együttműködő objektumok rendszereként fogalmazza meg a feladatot. Objektum-központú elemzés A tervezés a feladat tárgyköreit egy-egy objektum felelősségévé
Szoftvertechnológia 3. előadás. Objektumorientált tervezés: alapismeretek. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar
Eötvös Loránd Tudományegyetem Informatikai Kar Szoftvertechnológia 3. előadás Objektumorientált tervezés: alapismeretek Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Actually
OOP #14 (referencia-elv)
OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet
Alkalmazott modul: Programozás 10. fejezet. Strukturált programozás: dinamikus memóriakezelés. Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 10. fejezet Strukturált programozás: dinamikus memóriakezelés Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2015.
Bánsághi Anna anna.bansaghi@mamikon.net. 2014 Bánsághi Anna 1 of 31
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 9. ELŐADÁS - OOP TERVEZÉS 2014 Bánsághi Anna 1 of 31 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív paradigma
Bevezetés a Programozásba II 3. előadás. Biztonságos adattípusok megvalósítása
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 3. előadás Biztonságos adattípusok megvalósítása 2014.02.24. Giachetta Roberto groberto@inf.elte.hu
Bevezetés a Programozásba II 1. előadás. Szoftverfejlesztés, programozási paradigmák
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 1. előadás, programozási paradigmák 2014.02.10. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Széchenyi István Egyetem. Programozás III. Varjasi Norbert varjasin@sze.hu
Programozás III. Varjasi Norbert varjasin@sze.hu 1 A java virtuális gép (JVM) Képzeletbei, ideális számítógép. Szoftveresen megvalósított működési környezet. (az op. rendszer egy folyamata). Feladata:
Alkalmazott modul: Programozás 8. előadás. Strukturált programozás: dinamikus memóriakezelés. Dinamikus memóriakezelés. Dinamikus memóriakezelés
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 8. előadás Strukturált programozás: dinamikus memóriakezelés Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Bevezetés, a C++ osztályok. Pere László
Programozás módszertan II. p. Programozás módszertan II. Bevezetés, a C++ osztályok Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK
Bevezetés a Programozásba II 3. előadás. Biztonságos adattípusok megvalósítása. Biztonságos adattípusok megvalósítása
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 3. előadás Biztonságos adattípusok megvalósítása 2014.02.24. Giachetta Roberto groberto@inf.elte.hu
Alkalmazott modul: Programozás 10. előadás. Objektumorientált programozás: tervezés és megvalósítás
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 10. előadás Objektumorientált programozás: tervezés és megvalósítás Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Java programozási nyelv 4. rész Osztályok II.
Java programozási nyelv 4. rész Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/17 Tartalomjegyzék
Bánsághi Anna 2014 Bánsághi Anna 1 of 33
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 7. ELŐADÁS - ABSZTRAKT ADATTÍPUS 2014 Bánsághi Anna 1 of 33 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív
Bánsághi Anna 2014 Bánsághi Anna 1 of 68
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 8. ELŐADÁS - OBJEKTUMOK, OSZTÁLYOK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív
Programozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 13. előadás Throwable Error Exception RuntimeException IOException Saját (általában) Nem ellenörzött kivételek (Unchecked
és az instanceof operátor
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán
Java VIII. Az interfacei és az instanceof operátor Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 24. Java VIII.: Interface JAVA8 / 1 Az interfészről általában
Programozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;
Java 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. ( Előfeltétel 12. Tétel ) Az osztály egy olyan típus leíró struktúra, amely
Bevezetés a programozásba I 10. gyakorlat. C++: alprogramok deklarációja és paraméterátadása
Pázmány Péter Katolikus Egyetem Információs Technológiai Kar Bevezetés a programozásba I 10. gyakorlat C++: alprogramok deklarációja és paraméterátadása 2011.11.22. Giachetta Roberto groberto@inf.elte.hu
Interfészek. PPT 2007/2008 tavasz.
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése 2 Már megismert fogalmak áttekintése Objektumorientált
JAVA PROGRAMOZÁS 2.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 2.ELŐADÁS 2014-2015 tavasz Tömbök, osztályok, objektumok, konstruktorok Tömbök 2 Referencia típusú változó Elemtípus Primitív Referencia: osztály,
Bevezetés a Programozásba II 2. előadás. Adattípusok megvalósítása egységbe zárással. Adattípusok megvalósítása egységbe zárással
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 2. előadás Adattípusok megvalósítása egységbe zárással 2014.02.17. Giachetta Roberto groberto@inf.elte.hu
Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban
Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban Tartalom OOP ismétlés Osztályok létrehozása Adattagok láthatóságai, elnevezési ajánlások Konstruktor, destruktor this pointer Statikus és dinamikus
Osztályok. 4. gyakorlat
Osztályok 4. gyakorlat Az osztály fogalma Az objektumok formai leírása, melyek azonos tulajdonsággal és operációkkal rendelkeznek. Osztályból objektum készítését példányosításnak nevezzük. Minden objektum
Már megismert fogalmak áttekintése
Interfészek szenasi.sandor@nik.bmf.hu PPT 2007/2008 tavasz http://nik.bmf.hu/ppt 1 Témakörök Polimorfizmus áttekintése Interfészek Interfészek kiterjesztése Eseménykezelési módszerek 2 Már megismert fogalmak
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Sztringek Osztályok alapjai Sztringek Szöveges adatok kezelése Sztring Karakterlánc (string): Szöveges adat Karaktertömbként tárolva A szöveg végét a speciális
Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:
Excel objektumok Az excelben az osztályokat úgynevezett class modulokként hozzuk létre. Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni: View-ba
Számítógép és programozás 2
Számítógép és programozás 2 10. Előadás Öröklődés http://digitus.itk.ppke.hu/~flugi/ Tagfüggvény struct Particle { int x,y; unsigned char r,g,b; void rajzol() { gout
Objektumorientált paradigma és programfejlesztés Bevezető
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
Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus
Eötvös Loránd Tudományegyetem Természettudományi Kar Alkalmazott Modul III 6. előadás Objektumorientált programozás: öröklődés és polimorfizmus 2011.10.24. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
C++ programozási nyelv
C++ programozási nyelv Gyakorlat - 13. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. december A C++ programozási nyelv Soós Sándor 1/10 Tartalomjegyzék Objektumok
C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag
C# osztálydeníció Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem.net C# technológiák tananyag objektum orientált programozás tananyag Tartalom 1 Bevezetés 2 Osztály létrehozása, deníció
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbö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
Eötvös Loránd Tudományegyetem Informatikai Kar Objektumelvű alkalmazások fejlesztése 6. gyakorlat, polimorfizmus 2011.10.27. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Kódismétlődés
Programozási nyelvek Java
-en objektumot tárolunk. Automatikus változók Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 3. előadás - végrehajtási vermen (execution stack) jönnek létre - alprogramok
A C programozási nyelv V. Struktúra Dinamikus memóriakezelés
A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.
Bevezetés a programozásba II. 8. Előadás: Osztályok, objektumok, osztályszintű metódusok
Bevezetés a programozásba II 8. Előadás: Osztályok, objektumok, osztályszintű metódusok vektor.h #ifndef VEKTOR_H #define VEKTOR_H class Vektor { int meret, *mut; public: Vektor(int meret); int szamlal(int
1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon
1. Template (sablon) 1.1. Függvénysablon Maximum függvény megvalósítása függvénynév túlterheléssel. i n l i n e f l o a t Max ( f l o a t a, f l o a t b ) { return a>b? a : b ; i n l i n e double Max (
Alkalmazott modul: Programozás 9. előadás. Strukturált programozás: dinamikus adatszerkezetek
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 9. előadás Strukturált programozás: dinamikus adatszerkezetek Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
C++ programozási nyelv Konstruktorok-destruktorok
C++ programozási nyelv Konstruktorok-destruktorok Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
Java programozási nyelv 5. rész Osztályok III.
Java programozási nyelv 5. rész Osztályok III. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/20 Tartalomjegyzék
Programozás BMEKOKAA146. Dr. Bécsi Tamás 5. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 5. előadás Tömbök átméretezése public static void Resize( ref T[] array, int newsize ) Példa: int[] a=new int[20]; Array.Resize(ref a, 22); 2016. 10. 19.
Programozás II. 4. Dr. Iványi Péter
Programozás II. 4. Dr. Iványi Péter 1 inline függvények Bizonyos függvények annyira rövidek, hogy nem biztos hogy a fordító függvényhívást fordít, hanem inkább az adott sorba beilleszti a kódot. #include
C++ programozási nyelv Struktúrák a C++ nyelvben
C++ programozási nyelv Struktúrák a C++ nyelvben Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. szeptember A C++ programozási nyelv Soós Sándor 1/37 Bevezetés A
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 5. Előadás Dr. Bécsi Tamás Kivételkezelés try Azon utasítások kerülnek ide, melyek hibát okozhatnak, kivételkezelést igényelnek catch( típus [név]) Adott kivételtípus esetén
Java és web programozás
Budapesti Műszaki Egyetem 2015. 02. 11. 2. Előadás Mese Néhány programozási módszer: Idők kezdetén való programozás Struktúrált Moduláris Funkcionális Objektum-orientált... Mese Néhány programozási módszer:
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.
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. Az osztály egy olyan típus leíró struktúra, amely tartalmaz adattagokat
Informatikai Kar. 3. fejezet. alapismeretek. Giachetta Roberto
Informatikai Kar 3. fejezet alapismeretek Giachetta Roberto Actually I made up the term 'Object-Oriented', and I can tell you I did not have C++ in mind. (Alan Kay) adottak) 3:3 Feladat: Stack) adatszerkezetet
Programozási alapismeretek 4.
Programozási alapismeretek 4. Obejktum-Orientált Programozás Kis Balázs Bevezetés I. Az OO programozási szemlélet, egy merőben más szemlélet, az összes előző szemlélettel (strukturális, moduláris, stb.)
ELTE SAP Excellence Center Oktatóanyag 1
Oktatóanyag 1 Oktatóanyag 2 Az oktatás folyamán használt példák a fent látható egyszerű modell implementációi. Oktatóanyag 3 A definíciós részben definiálja a fejlesztő az egyes attribútumokat, metódusokat,
OOP: Java 11.Gy: Enumok, beágyazott osztályok. 13/1 B ITv: MAN
OOP: Java 11.Gy: Enumok, beágyazott osztályok 13/1 B ITv: MAN 2019.04.24 ArrayList Rugalmas tömb A tömbök korlátai Fix méret, nem lehet menet közben megnövelni Ha túl nagyra választjuk, fölösleges helyfoglalás
III. OOP (objektumok, osztályok)
III. OOP (objektumok, osztályok) 1. Természetes emberi gondolkozás Az Objektumorientált paradigma alapelvei nagyon hasonlítanak az emberi gondolkozásra. Érdemes ezért elsőként az emberi gondolkozás elveit
OOP: Java 8.Gy: Abstract osztályok, interfészek
OOP: Java 8.Gy: Abstract osztályok, interfészek 26/1 B ITv: MAN 2019.04.03 Abszrakt metódus és absztrakt osztály. Gyakran előfordul a tervezés során, hogy egy osztály szintjén tudjuk, hogy valamilyen metódus
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközö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?
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? 3. Ismertesse a névtér fogalmát! 4. Mit értünk a "változó hatóköre"
Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 2. Előadás Dr. Bécsi Tamás Tömbök (Arrays) Definíció: típus[] név; (pld. int[] szamok; ) Inicializálás: int[] szamok = new int[4]; int[] szamok = 1,2,4,3,5}; int[] szamok
Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum
Bevezetés a programozásba 2 1. Előadás: Tagfüggvények, osztály, objektum Ismétlés int main() { string s; s; s= bla ; cout
C programozási nyelv Pointerek, tömbök, pointer aritmetika
C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek
Programozás módszertan p.1/46
Programozás módszertan Öröklődés Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA ÉS ÁLTALÁNOS TECHNIKA TANSZÉK MAGYAR TUDOMÁNYOS AKADÉMIA SZÁMÍTÁSTECHNIKAI ÉS
Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat
Kivételkezelés, beágyazott osztályok Nyolcadik gyakorlat Kivételkezelés Nem minden hibát lehet fordítási időben megtalálni Korábban (pl. C-ben) a hibakezelést úgy oldották meg, hogy a függvény hibakódot
Programozási technológia 1.
ngleton Sin ELTE-IK + st: boo ol Programozási technológia 1. 2. gyakorlat: Programozási paradigmák, az objektumorientált tált programozás Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Adatstruktúrák, algoritmusok, objektumok
Adatstruktúrák, algoritmusok, objektumok 3. Az objektumorientált paradigma alapelemei Objektum Osztály Példányosítás A konstruktor és a destruktor Osztályok közötti kapcsolatok Miklós Árpád, BMF NIK, 2006
Globális operátor overloading
Programozás II. 9. gyakorlat Operátor overloading 2: Unáris operátorok, globálisan megvalósított operátorok, > operátorok Kivételkezelés, IO library Globális operátor overloading Előző alkalommal
Generikus osztályok, gyűjtemények és algoritmusok
Programozási, gyűjtemények és algoritmusok bejárása Informatikai Kar Eötvös Loránd Tudományegyetem 1 Tartalom 1 bejárása 2 bejárása 2 Java-ban és UML-ben bejárása Az UML-beli paraméteres osztályok a Java
Objektum orientált programozás Bevezeté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
Java III. I I. Osztálydefiníció (Bevezetés)
Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban
Alkalmazott modul: Programozás 4. előadás. Procedurális programozás: iteratív és rekurzív alprogramok. Alprogramok. Alprogramok.
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás 4. előadás Procedurális programozás: iteratív és rekurzív alprogramok Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Absztrakció. Objektum orientált programozás Bevezetés. Általános Informatikai Tanszék Utolsó módosítá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
Objektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 2. rész Öröklés és többalakúság Nemvirtuális metódusok, elrejtés Virtuális metódusok, elrejtés Típuskényszerítés, az is és as operátorok Absztrakt osztályok, absztrakt
Java III. I I. Osztálydefiníció (Bevezetés)
Java III. I I. Osztálydefiníció (Bevezetés) Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 02. 27. Java III.: Osztály definíció JAVA3 / 1 Szintaktikai jelölések A továbbiakban
Alkalmazott Modul III 3. előadás. Procedurális programozás: alprogramok, kivételkezelés
Eötvös Loránd Tudományegyetem Természettudományi Kar Alkalmazott Modul III 3. előadás Procedurális programozás: alprogramok, kivételkezelés 2011.10.03. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1
Java VI. Öröklődés Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07. Java VI.: Öröklődés JAVA6 / 1 Egy kis kitérő: az UML UML: Unified Modelling Language Grafikus eszköz objektum
ISA szimulátor objektum-orientált modell (C++)
Budapesti Műszaki és Gazdaságtudományi Egyetem ISA szimulátor objektum-orientált modell (C++) Horváth Péter Elektronikus Eszközök Tanszéke 2015. február 12. Horváth Péter ISA szimulátor objektum-orientált
Osztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
Osztálytervezés és implementációs ajánlások
Osztálytervezés és implementációs ajánlások Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2006. 04. 24. Osztálytervezés és implementációs kérdések OTERV / 1 Osztály tervezés Egy nyelv
C++ programozási nyelv
C++ programozási nyelv Gyakorlat - 8. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. november A C++ programozási nyelv Soós Sándor 1/12 Tartalomjegyzék Miért
Programozási technikák Pál László. Sapientia EMTE, Csíkszereda, 2009/2010
Programozási technikák Pál László Sapientia EMTE, Csíkszereda, 2009/2010 Előadás tematika 1. Pascal ismétlés, kiegészítések 2. Objektum orientált programozás (OOP) 3. Delphi környezet 4. Komponensek bemutatása
Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék
Speciális adattagok és tagfüek Miskolci Egyetem Általános Informatikai Tanszék CPP7 / 1 Statikus adattagok Bármely adattag lehet static tárolási osztályú A statikus adattag az osztály valamennyi objektuma
Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;
PHP5 objektumok 1 Osztályok class, new book.php: construct () destruct() $b=new Book(); törlés: $b=null; vagy unset ($b); -elnevezési konvenciók private $isbn; public $title; function
Objektumorientált Programozás VI.
Objektumorientált Programozás Metódusok Paraméterek átadása Programozási tételek Feladatok VI. ÓE-NIK, 2011 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő
Generikus Típusok, Kollekciók
Generikus Típusok, Kollekciók Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) Generikus Típusok, Kollekciók 2013 1 / 26 Tartalomjegyzék 1 Enumeráció 2 Generikus Típusok 3 Kollekciók System.Collections
BME MOGI Gépészeti informatika 8.
BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező
OOP és UML Áttekintés
OOP és UML Áttekintés Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) OOP és UML Áttekintés 2013 1 / 32 Tartalom jegyzék 1 OOP Osztály Öröklődés Interfész, Absztrakt Osztály Kivétel kezelés
Abstract osztályok és interface-ek. 7-dik gyakorlat
Abstract osztályok és interface-ek 7-dik gyakorlat Abstract metódusok és osztályok Az OO fejlesztés során olyan osztályokat is kialakíthatunk, melyeket csak továbbfejlesztésre, származtatásra lehet használni,
Alprogramok, paraméterátadás
ELTE Informatikai Kar, Programozási Nyelvek és Fordítóprogramok Tanszék October 24, 2016 Programozási nyelvek Alprogramok Függvények, eljárások Metódusok Korutinok stb. Alprogramok Alprogram: olyan nyelvi
OOP. Alapelvek Elek Tibor
OOP Alapelvek Elek Tibor OOP szemlélet Az OOP szemlélete szerint: a valóságot objektumok halmazaként tekintjük. Ezen objektumok egymással kapcsolatban vannak és együttműködnek. Program készítés: Absztrakciós
Bevezetés a programozásba Előadás: A const
Bevezetés a programozásba 2 6. Előadás: A const ISMÉTLÉS Interface - Implementation struct Particle { int x,y; unsigned char r,g,b; void rajzol(); }; }; void Particle::rajzol() { gout
Bevezetés a Programozásba II 8. előadás. Polimorfizmus Giachetta Roberto
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 8. előadás 2014.03.31. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Öröklődés
Felhasználó által definiált adattípus
Felhasználó által definiált adattípus C++ Izsó Tamás 2017. február 24. Izsó Tamás Felhasználó által definiált adattípus/ 1 Irodalom Izsó Tamás Felhasználó által definiált adattípus/ 2 Programtervezési
Bevezetés a Python programozási nyelvbe
Bevezetés a Python programozási nyelvbe 7. Gyakorlat osztályok, objektumok (utolsó módosítás 2018. aug. 28.) Szathmáry László Debreceni Egyetem Informatikai Kar 2018-2019, 1. félév OO programozás Pythonban
Algoritmizálás és adatmodellezés tanítása 1. előadás
Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az
8. gyakorlat Pointerek, dinamikus memóriakezelés
8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.
Programozási technológia
Programozási technológia Generikus osztályok Gyűjtemények Dr. Szendrei Rudolf ELTE Informatikai Kar 2018. Generikus osztályok Javaban az UML paraméteres osztályainak a generikus (sablon) osztályok felelnek
Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás
Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért