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.
|
|
- Petra Török
- 9 évvel ezelőtt
- Látták:
Átírás
1 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 és metódusokat, amelyek segítségével az adattagokon műveleteket végezhetünk. Az osztályt, mint típust új objektumok definiálására használjuk, hogy azzal további műveleteket végezzünk. Emellett maximálisan támogatja az öröklődést, a polimorfizmust(virtuális függvények) és az egységbezárást, amik az objektum orientált programozás alapkövei. A példában a Rajzol, VonalRajzol egy elképzelt függvény, KisNyul is lehetne a helyén. Szemléltetésre szolgál. class CTeglalap int Jobb; int Also; ; A Bal, Felso, Jobb, Also változókat adattagoknak, a Rajzol metódust pedig tagfüggvénynek nevezzük. Egy osztálydefiníció egy új típust hoz létre,. Az osztály használatához létre kell hozni a típushoz tartozó objektumot. Ezt nevezzük az osztály példányának. Az osztály objektumát a beépített típusokba tartozó változókhoz hasonlóan vehetjük fel. Másik megoldással, ha dinamikusan akarjuk létrehozni és törölni, akkor a new és delete operátorokkal tehetjük ezt meg. CTeglalap Tegla; Ez a CTeglalap egy példányát(objektumát) hozza létre. Ez automatikusan memóriát foglal le az objektum(példány) részére, és már lehet is vele műveletet végezni. A példány megsemmisülése automatikusan fog történni. CTeglalap *Tegla = new CTeglalap; Ez a CTeglalap egy példányát(objektumát) dinamikusan hozza létre. Mi saját magunk memóriát foglalunk le az objektum(példány) részére, és már lehet is vele műveletet végezni. A példány megsemmisülése mi általunk vezérelten fog történni,nem LESZ AUTOMATIKUS a megsemmisülés. Az objektum mindaddig foglalt marad, amíg mi azt explicit módon(kívülről) fel nem szabadítjuk a delete operátor segítségével. delete Tegla; Egy osztályból tetszőleges példányt(ameddig a memória bírja) hozhatunk létre. A tagokat a. vagy -> operátorral érhetjük el a C struktúrák elemeihez hasonlóan. Az osztály tagjainak elérhetőségét a protected, public és private hozzáférés módos1tókkal állíthatjuk be. Alapértelmezésként minden osztályon belüli tag, ha külön nem adjuk meg private-nak minősül. Az egységbezárás elvének megfelelően a hozzáférés-módosítókkal védjük meg az osztály felhasználójától az osztály belső felhasználásra szánt adatait. Írhatunk persze olyan tagfüggvényeket, amelyek a felhasználó által beadott adatok alapján módosíthatják a védett adattagokat. Másik előnye, hogy a belső adatstruktúrák korlátozottsága miatt az osztály szerzője megváltoztathatja az adatszerkezetek felépítését, anélkül, hogy az osztályt használó programrészen változtatni kellene. A lényeg az, hogy a publikus tagfüggvények hívási módja legyen változatlan. Jelenlegi definíciójával az osztályunk le fog fordulni szépen, csak éppen a példányával nem fogunk tudni dolgozni, mivel a CTeglalap minden adattagja és tagfüggvénye automatikusan private-ként jött létre. class CTeglalap int Jobb; int Also; ; 1
2 Így már hozzáférhetünk minden adattaghoz és függvényhez: CTeglalap Tegla; Tegla.Bal = 5; Tegla.Felso = 10; Tegla.Jobb = 100; Tegla.Also = 150; Tegla.Draw(); A gond az, hogy az egységbezárás(encapsulation) elve nem érvényesül. Ezen alapelv szerint az osztály belső mechanizmusainál használt adatstruktúrákat az osztály használójának nem kellene látnia, mert neki csak a rajzolás a fontos, hogy mi van mögötte az a felhasználónak nem számít, csak rajzoljon a függvény egy téglalapot és kész. Azonban most mindenhez hozzáfér és ez nem szerencsés. Megoldás: class CTeglalap int Jobb; int Also; ; Itt a private kulcsszóra nem is lenne szükségünk, mivel automatikusan private lenne, de jobban olvasható a kód. Itt azonban felmerül egy másik gond, nevezeten, mivel a példányban(objektum) nem tudunk hozzáférni a belső adattagokhoz, valami értelmetlent fogunk rajzolni vagy lehet, hogy a program szabálytalan műveletet fog végrehajtani. A teendő egy publikus függvény megírása, amely beállítja a belső adattagokat a Rajzol függvény használatára. void SetKoordinatak(int a, int b, int c, int d) Bal = a; Felso = b; Jobb = c; Also = d; Itt a private részben akár meg is változtathatnánk az adattagokat: int Szelesseg; int Magassag; Csak a SetKoordinatak és a Rajzol függvényt kellene átírni egy kicsit, hogy jól számoljanak, de a függvény típus paraméterezése maradna olyan, mint amilyen eddig volt. A konstruktor olyan különleges tagfüggvény, amely a példány létrehozásakor automatikusan meghívódik. Általában az adattagok inicializálására, és az osztály használatára való felkészítéséhez szükséges feladatok elvégzésére használjuk. A konstruktor akárhány paramétert kaphat, az alapértelmezett konstruktornak nincsenek paraméterei. Ha nem készítünk konstruktorokat egy osztályhoz, akkor a fordító generál egyet alapértelmezettként, de ez nem inicializálja az adattagokat. Általában mindig saját konstruktort írunk. A túlterhelt konstruktorok. Használatuk igen gyakori. Használatuk oka pedig az, hogy több módszert nyújtanak az új példány inicializálására. Fontos, hogy mindig legyen egy üres, alapértelmezett konstruktor. A konstruktornak nem lehet visszatérési értéke. 2
3 class CTeglalap int Jobb; int Also; //konstruktor és túlterhelés CTeglalap() CTeglalap(int a, int b, int c, int d) SetKoordinatak( a, b, c, d); //desktruktor ~CTeglalap() void SetKoordinatak(int a, int b, int c, int d) Bal = a; Felso = b; Jobb = c; Also = d; ; Látjuk, hogy a konstruktor public-nak vettük fel, hogy példányosítható legyen. CTeglalap Tegla; Tegla.SetKoordinatak(25,25,100,100); Tegla.Rajzol(); vagy, ha mi allokálunk memóriát CTeglalap *Tegla = new CTeglalap; Tegla->SetKoordinatak(25,25,100,100); Tegla->Rajzol(); Túlterhelt létrehozás. CTeglalap Tegla(25,25,100,100); vagy CTeglalap *Tegla = new Cteglalap(25,25,100,100); Láthattuk, hogy nem a malloc függvényt hívjuk meg C++-ban a példány dinamikus létrehozására, hanem mindig a new operátort, mert az meghívja a létrehozott példány konstruktorát. A destruktor olyan különleges tagfüggvény, amely az osztály példány megsemmisülésekor kerül meghívásra. Felhasználható memória felszabadításra vagy egyéb a megsemmisüléshez szükséges feladatokra is. Destruktort nem lehet túlterhelni. A destruktor neve megegyezik az osztály nevével, de van előtte egy ~ jel. A destruktornak nem lehet visszatérési értéke és nem lehetnek paraméterei sem. A destruktor bármilyen szükséges tevékenységet elvégezhet a memóriaterületek felszabadítására mielőtt az objektum megsemmisül. Tagfüggvényeket létrehozhatunk az osztályon belül vagy osztályon belül csak deklaráljuk és kívül írjuk meg(valami.cpp,valami.h). Az osztályon belül definiált tagfüggvények automatikusan inline tagfüggvényeknek számítanak. A kívül megírt függvények csak akkor lesznek inline függvények, ha azokat az inline kulcsszóval deklaráljuk. Tagfüggvényeken belül a this C++ kulcsszó tartalmazza a függvényhívásnál hivatkozott objektum címét vagyis azt az objektumot, aminek a tagfüggvényét meghívtuk. Ha egy adattagot static kulcsszóval deklarálunk, akkor annak csak egyetlen példánya lesz, az osztályból létrehozott objektumok számától függetlenül A statikus adattagokat az osztály nevével és a hatókör feloldó operátorral érhetjük el, meghatározott példányhivatkozás nélkül. A static kulcsszóval deklarált tagfüggvényeket az osztály nevével és a hatókör feloldó operátorral hívhatjuk, objektumhivatkozás nélkül. Az ilyen függvények közvetlenül csak a saját osztályába tartozó statikus adattagokat és tagfüggvényeket érhetnek el. Általában egy osztály minden példányának megvan a saját másolata az osztályhoz tartozó adattagokból. Amennyiben egy adattagot static kulcsszóval deklarálunk, akkor ebből az adattagból csak egyetlen példány fog létrejönni a memóriában, függetlenül a létrehozott osztály példányainak a számától. Alapszabály és a példában is megfigyelhető, hogy egy osztály statikusnak felvett tagjait az osztályon kívül is deklarálnunk és inicializálnunk kell, ugyanúgy, ahogy azt egy általános globális adattaggal tennénk. Mivel a statikus adattagok definíciója az osztályon kívül kap helyet, egyúttal az osztály nevét is meg kell adni a hatókör-feloldó operátorral(ctest::). Mivel a statikus adattag az osztályon kívül létezik, ezért elérhetjük a példányoktól függetlenül, pusztán az osztály neve és a hatókör-feloldó operátor segítségével. Ahogy a példa is jól mutatja, deklarálhatunk statikus függvényt is. A statikus függvények tulajdonságai a következők: Az osztályon kívüli kód úgy hívhatja meg a függvényt, hogy az osztály nevét használja a hatókör-feloldó operátorral, anélkül, hogy egy példányra hivatkozna. Még nem is kell léteznie a példánynak. 3
4 A statikus tagfüggvények közvetlenül csak az osztály statikus adattagjaira és statikus függvényeire hivatkozhatnak. Mivel konkrét példányhivatkozás nélkül is hívhatóak, ezért a statikus tagfüggvényeknél nincs this mutató, ami az objektum(példány) címét tartalmazná. A nem statikus adattagok pedig csak a példány létrehozásakor jönnek létre. A statikus adattagokat és tagfüggvényeket az adott osztályra általánosan érvényes adatok kezelésére szoktuk használni. #include <iostream> #include <string> using namespace std; class CTest static int icount; CTest() ++icount; ~CTest() --icount; static int GetCount() return icount; ; int CTest::iCount = 0; void main() cout << CTest::GetCount() << " objektum letezik\n"; CTest Test1; CTest *ptest2 = new CTest; cout << CTest::GetCount() << " objektum letezik\n"; delete ptest2; cout << CTest::GetCount() << " objektum letezik\n"; getchar(); A program futásának az eredménye: 0 objektum letezik 2 objektum letezik 1 objektum letezik Az öröklés fogalma: olyan alapvető programozási technika, amely lehetővé teszi, hogy a már meglévő osztályainkból újakat tudunk származtatni, valamint az egymással kapcsolatban álló osztályokat hierarchiába tudjuk rendezni. Egy meglévő osztályból újat származtathatunk azáltal, hogy a meglévő osztály nevét feltüntetjük az új osztály deklarációjában. A már meglévő osztályt ősosztálynak, az új osztályt származtatott osztálynak nevezzük. A származtatott osztály örökli az ősosztály minden tagját, a származtatott osztályt új tagokkal láthatjuk el (változók, függvények). A származtatott osztály konstruktora explicit módon inicializálhatja az ősosztályát azáltal, hogy paramétereket ad át az ősosztály konstruktorának. Ha a származtatott osztály konstruktora expliciten nem inicializálja az ősosztály konstruktorát, akkor a fordító automatikusan az ősosztály konstruktorát hívja meg. 4
5 #include <iostream> #include <string> using namespace std; //Õsosztály class CEmberek int igondolat; CEmberek() CEmberek(int iparam) igondolat = iparam; ~CEmberek() void Gondolkodik() igondolat = 1; ; //Származtatott osztály class CProgramozo : public CEmberek CProgramozo() CProgramozo(int iparam) : CEmberek(iparam) ~CProgramozo() ; void main() CProgramozo Geza(25); cout << "Geza " << Geza.GetSorokSzama() << " sort iszik\n"; Geza.SokSortIszik(); cout << "Geza " << Geza.GetSorokSzama() << " sort iszik"; getchar(); Látható, hogy a két osztály nagyon hasonló, a programozó is az emberek halmazába tartozik. Tehát a programozó rendelkezik az emberekre jellemző tulajdonságokkal, ezen felül iszik sört. A : public CEmberek kifejezés hatására a CProgramozo a CEmberek osztályból származó osztály lesz. Ezért örökli a CEmberek osztály adattagjait és tagfüggvényeit. Ha a CProgramozo osztályt teljesen üresen deklaráltuk volna, akkor is rendelkezne az ősosztálya adattagjaival és metódusaival(tagfüggvényeivel). A class CProgramozo : public CEmberek public kulcsszavának hatására az ősosztály minden nyilvános tagja nyilvános marad a származtatott osztályban is. Nagyon ritka az az eset, amikor nem így származtatunk, csak speciális esetekben fordul elő. A CProgramozo osztály taggfüggvénye már a CProgramozo osztály egyedi jellemző függvénye. A konstruktorok és destruktorok meghívásának a sorrendje: Egy származtatott osztály példányosításakor a fordító a következő sorrendben hívja meg a konstruktorokat: 1. Ősosztály konstruktora. 2. Származtatott osztály tagobjektumainak (azon adattagjainak, amelyek objektumok(példányosított osztályok)) konstruktorai. Ezeket a konstruktorokat olyan sorrendben hívja meg, amilyen sorrendben azok az adott osztályban definiálva lettek. 3. Az osztály saját konstruktora. A destruktorok amennyiben definiálva vannak pontosan az ellenkező sorrendben futnak le. 5
6 Így, amikor egy adott konstruktor hajtódik végre, tudni lehet, hogy az ősosztály és a tagobjektumok már inicializálásra kerültek, és így biztonságosan használhatóak. Hasonlóan, amikor egy adott destruktor fut le, tudjuk, hogy sem az ősosztály sem bármelyik tagobjektum nem lett még megsemmisítve, és így azok még mindig használhatóak. Ha az ősosztály egy adattagja védett, azaz deklarációjában szerepel a protected hozzáférés-módosító, akkor a tag elérhető az osztályból származtatott osztályban, de a program más függvényei által nem. Az int igondolat változót nem tudjuk elérni az származtatott osztályból, vannak esetek, amikor erre szükség van. Ezt a következőképpen tehetjük meg. class CEmberek protected: int igondolat; CEmberek() CEmberek(int iparam) igondolat = iparam; ~CEmberek() void Gondolkodik() igondolat = 1; ; Mivel az igondolat változó protected lett, így már a CProgramozo származtatott osztályból is elérhető lesz. Egy származtatott osztály szolgálhat egy másik osztály őseként. Ilyen módon az egymással kapcsolatban álló osztályok többszintű hierarchiája valósítható meg. Az öröklődés segítségével lehetőség nyílik egy osztály korábban megírt adatstruktúráinak és kódjának újrafelhasználására. Ezáltal könnyebben kezelhető a program és lehetőség van a program által kezelt objektumok kapcsolatrendszerének modellezésére. #include <iostream> #include <string> using namespace std; //Õsosztály, a CApolo közvetett(indirekt) őse class CEmberek protected: int igondolat; CEmberek() CEmberek(int iparam) igondolat = iparam; ~CEmberek() void Gondolkodik() igondolat = 1; ; //Származtatott osztály, CApolo közvetlen(direkt) őse class CProgramozo : public CEmberek CProgramozo() CProgramozo(int iparam) : CEmberek(iparam) 6
7 ~CProgramozo() ; //Származtatott osztály class CApolo : public CProgramozo CApolo() CApolo(int iparam) : CProgramozo(iparam) ~CApolo() ; void main() CProgramozo Geza(25); cout << "Geza " << Geza.GetSorokSzama() << " sort iszik\n"; Geza.SokSortIszik(); cout << "Geza " << Geza.GetSorokSzama() << " sort iszik"; getchar(); Az int igondolat bármelyik CEmberek-ből származtatott osztályból elérhető, de nem érhető el közvetlenül az osztályhierarchián kívüli kódrészben. A származtatott osztályok hierarchiájában minden osztály adott tagfüggvényének saját változatával rendelkezhet. Ha ez a függvény virtuális is egyben, akkor ennek meghívásakor mindig az aktuális objektum típusának megfelelő változat fog lefutni, még akkor, ha a hívás egy ősosztályra mutató mutatón keresztül történik. A virtuális függvények a polimorfizmus is támogatják, azaz egyetlen utasítás segítségével több, különféle művelet futhat le, és hogy éppen melyik, az a szóban forgó objektum típusától függ. A virtuális függvények segítségével egyszerű, általános célú rutinok írhatóak, amelyek különböző, de egymással kapcsolatban álló objektumok széles választékát tudják kezelni. A virtuális függvények segítségével továbbá lehetőség van az ősosztály viselkedésének módosítására anélkül, hogy a forráskódon módosítanánk. Amikor a származtatunk, akkor a kód megkettőzése és a lehetséges egyéb redundanciák elkerülése cél. #include <iostream> #include <string> using namespace std; //Õsosztály class CEmberek protected: int igondolat; CEmberek() 7
8 CEmberek(int iparam) igondolat = iparam; ~CEmberek() virtual void Gondolkodik() igondolat = 1; ; //Származtatott osztály class CProgramozo : public CEmberek CProgramozo() CProgramozo(int iparam) : CEmberek(iparam) ~CProgramozo() virtual void Gondolkodik() igondolat = 10; isorokszama += igondolat; ; //Származtatott osztály class CApolo : public CProgramozo CApolo() CApolo(int iparam) : CProgramozo(iparam) ~CApolo() virtual void Gondolkodik() igondolat = 100; isorokszama += igondolat; ; 8
9 void main() CProgramozo Geza(25); CApolo Anett(25); cout << "Geza " << Geza.GetSorokSzama() << " sort iszik\n"; Geza.SokSortIszik(); cout << "Geza " << Geza.GetSorokSzama() << " sort iszik\n"; Geza.Gondolkodik(); cout << "Geza " << Geza.GetSorokSzama() << " -ra gondolt.\n"; Anett.Gondolkodik(); cout << "Geza " << Anett.GetSorokSzama() << " -re gondolt.\n"; getchar(); A program futásának az eredménye: Geza 25 sort iszik. Geza 26 sort iszik. Geza 36 -ra gondolt. Anett 125 -re gondolt. A virtuális függvények az objektum orientált programozás egy fontos vonását támogatják, a polimorfizmust(többalakúság). Akkor beszélünk többalakúságról, ha egyetlen utasítással többfajta különböző művelet hajtható végre, és az, hogy éppen melyik, attól függ, hogy éppen melyik objektumról van szó. Fenti példa jól mutatja ki hogyan gondolkodik és a gondolkodás milyen hatással van a megivott sörök számára. Az öröklés előnyei: Az öröklés segítségével újra felhasználhatóvá válnak a már megírt kódok és a már megtervezett adatstruktúrák. Ezáltal elkerülhető az adat és kód megkettőződése. A programokat könnyebben lehet karbantartani, mivel egy adott feladatot megvalósító kód és adatok általában a programban egyetlen, könnyen elérhető osztály definíciójában szerepelnek ahelyett, hogy szétszórva helyezkednének el a forráskódban. Számos, valós világból származó kapcsolatot lehet hatékonyan modellezni a C++ - ban definiált osztályhierarchiával. Például az emberek osztályából származtatott programozónak is szüksége lehet ápolóra, aki szintén programozó, hogy hatékony és gyors segítséget tudjon nyújtani a programozónak. 9
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
RészletesebbenA C++ öröklés. (Előfeltétel: 12. tétel ismerete)
Az öröklés fogalma: A C++ öröklés (Előfeltétel: 12. tétel ismerete) olyan alapvető programozási technika, amely lehetővé teszi, hogy a már meglévő osztályainkból újakat tudunk származtatni, valamint az
RészletesebbenJava 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
RészletesebbenProgramozá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.)
RészletesebbenOsztá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
RészletesebbenSzá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
RészletesebbenProgramozá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
RészletesebbenC++ 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
RészletesebbenProgramozá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
RészletesebbenStatikus 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
RészletesebbenJava 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
RészletesebbenJava 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
RészletesebbenProgramozás C++ -ban
Programozás C++ -ban 4. Bevezetés az osztályokba 4.1 Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több
RészletesebbenJAVA 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,
RészletesebbenInterfé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
RészletesebbenOOP alapok Egy OOP nyelvet három fontos dolog jellemez. egységbezárás ( encapsulation objektumoknak öröklés ( inheritance
Az objektum-orientált programozás (röviden OOP) a természetes gondolkodást, cselekvést közelítő programozási mód, amely a programozási nyelvek tervezésének természetes fejlődése következtében alakult ki.
RészletesebbenC++ 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
RészletesebbenProgramozás II. 6.Öröklés Dr. Iványi Péter
Programozás II. 6.Öröklés Dr. Iványi Péter 1 Öröklés Programozók lusta emberek, nem szeretnék valamit kétszer leírni Miért veszélyes? Nem hatékony Újra kell tárolni a kódot, újra le kell fordítani Karbantartás
RészletesebbenGlobá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
RészletesebbenObjektumorientá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
RészletesebbenPé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
RészletesebbenProgramozás II. 2. gyakorlat Áttérés C-ről C++-ra
Programozás II. 2. gyakorlat Áttérés C-ről C++-ra Tartalom Új kommentelési lehetőség Változók deklarációjának helye Alapértelmezett függvényparaméterek Névterek I/O műveletek egyszerűsödése Logikai adattípus,
RészletesebbenJava é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:
RészletesebbenOOP. 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
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 8. előadás Öröklődés - megnyitunk egy osztályt egy másik előtt zárt egységeket szeretünk készíteni (láthatósági kérdés:
RészletesebbenMá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
RészletesebbenObjektumok inicializálása
Objektumok inicializálása Miskolci Egyetem Általános Informatikai Tanszék Objektumok inicializálása CPP4 / 1 Tartalom public adattagok inicializálása felsorolással konstruktor objektum tömbök osztály típusú
RészletesebbenObjektumorientált szoftverfejlesztés alapjai
Objektumorientált szoftverfejlesztés alapjai Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben @Katona József Kővári Attila Lektorálta: Dr. Fauszt Tibor DOI:
RészletesebbenMiutá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
RészletesebbenÖröklés és Polimorfizmus
Öröklés és Polimorfizmus Egy létező osztályból egy (vagy több) újat készítünk A létező osztályt ősnek, az újakat utódnak nevezzük Az utódok öröklik az ős minden tagját Az utódok az öröklött tagokat újakkal
RészletesebbenJava és web programozás
Budapesti M szaki Egyetem 2013. szeptember 18. 2. El adás Komplex szám public class Complex { private float repart_; private float impart_; public Complex() { repart_ = 0; impart_ = 0; public Complex(float
RészletesebbenJava V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:
Java V. szint lyszintű ű tagok A final minősítő Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 10. 05. Java V.: szintű tagok JAVA5 / 1 Példányváltozó Az eddig megismert adattagokból
RészletesebbenBevezeté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
Részletesebben1. 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"
RészletesebbenObjektumelvű 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
RészletesebbenProgramozás C++ -ban
8. Dinamikus objektumok Programozás C++ -ban Ahhoz hogy általános prolémákat is meg tudjunk oldani, szükség van arra, hogy dinamikusan hozhassunk létre vagy szüntethessünk meg objektumokat. A C programozási
RészletesebbenDr. 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:
RészletesebbenProgramozás C++ -ban 2007/7
Programozás C++ -ban 2007/7 1. Másoló konstruktor Az egyik legnehezebben érthető fogalom C++ -ban a másoló konstruktor, vagy angolul "copy-constructor". Ez a konstruktor fontos szerepet játszik az argumentum
RészletesebbenProgramozá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
RészletesebbenOsztá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
RészletesebbenOsztá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
RészletesebbenProgramozás II gyakorlat. 8. Operátor túlterhelés
Programozás II gyakorlat 8. Operátor túlterhelés Kezdő feladat Írjunk egy Vector osztályt, amely n db double értéket tárol. A konstruktor kapja meg az elemek számát. Írj egy set(int idx, double v) függvényt,
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 7. előadás AZ OOP alapelvei Egységbezárás(Encapsulation) Az adatokat es a hozzájuk tartozó eljárásokat egyetlen egységben (osztályban) kezeljük. Az osztály adatmezői
RészletesebbenJava VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás: 2006. 03. 07.
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
RészletesebbenISA 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
RészletesebbenOsztály és objektum fogalma
Osztály és objektum fogalma A C++ programozási nyelv I. CPP1/ 1 Az osztály (class) class: adatok és módszerek (method) (függvények) együttese, amely absztrakt adattípusként működik. objektum: egy osztály
RészletesebbenSzé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:
Részletesebbené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
RészletesebbenJava 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
RészletesebbenOOP #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
RészletesebbenProgramozás módszertan
Programozás módszertan p. Programozás módszertan Operátorok túlterhelése a C++ nyelvben Pere László (pipas@linux.pte.hu) PÉCSI TUDOMÁNYEGYETEM TERMÉSZETTUDOMÁNYI KAR INFORMATIKA TANSZÉK Bevezetés Programozás
Részletesebben0.2.1 Operátorok túlterhelése (műveletek definiálhatók felhaszn. típusokra) Kutya. Eb1. Eb2. Név (txt): Rex. Blöki. Német juhász 3
0 Az objektum-orientáltság 0.1 Objektum fogalma Egy rendszer egyedileg azonosítható szereplője adatokkal és működéssel. Egységbezárás (encapsulation) - viselkedés a külvilág felé - belső struktúra (kívülről
RészletesebbenBevezeté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
RészletesebbenBevezeté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
RészletesebbenSzá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
RészletesebbenC++ 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
Részletesebben3. Osztályok II. Programozás II
3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt
RészletesebbenSzármaztatási mechanizmus a C++ nyelvben
Származtatási mechanizmus a C++ nyelvben Miskolci Egyetem Általános Informatikai Tanszék CPP2 / 1 Az öröklődés s fogalma 1. Egy osztály deklarálható valamely más osztály(ok) leszármazottjaként. Az deklaráció
Részletesebben500. AA Megoldó Alfréd AA 500.
Programozás alapjai 2. NZH 2010.05.13. gyakorlat: / Hiány:0 ZH:0 MEGOLD IB.027/51. Hftest: 0 Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti, hogy minden
RészletesebbenProgramozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.
Programozás C++ osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. április 8. Csak bázisosztályként használt/értelmezhető
RészletesebbenProgramozás. Osztályok, Származtatott osztályok. Fodor Attila
Programozás Osztályok, Származtatott osztályok Fodor Attila Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010. március 11. Beadandó feladat
RészletesebbenBevezeté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
RészletesebbenBevezeté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
RészletesebbenObjektumorientá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
RészletesebbenVirtuális függvények (late binding)
Virtuális függvények (late binding) Miskolci Egyetem Általános Informatikai Tanszék Virtuális függvények CPP5 / 1 Azonos nevű függvények megkülönböztetése paraméterszignatúra (függvény overloading) - egy
RészletesebbenBevezetés a programozásba Előadás: Objektumszintű és osztályszintű elemek, hibakezelés
Bevezetés a programozásba 2 7. Előadás: Objektumszű és osztályszű elemek, hibakezelés ISMÉTLÉS Osztály class Particle { public: Particle( X, X, Y); virtual void mozog( ); ); virtual void rajzol( ) const;
RészletesebbenC++ 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
RészletesebbenElemi Alkalmazások Fejlesztése II.
Elemi Alkalmazások Fejlesztése II. Osztályok közötti kapcsolatok öröklődés asszociáció aggregáció kompozíció 1. Feladat Készítsünk programot, amellyel testek térfogatát határozhatjuk meg, illetve megadhatjuk
RészletesebbenC# 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ó
RészletesebbenIII. 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
RészletesebbenSzá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
Részletesebben1. Bevezetés A C++ nem objektumorientált újdonságai 3
Előszó xiii 1. Bevezetés 1 2. A C++ nem objektumorientált újdonságai 3 2.1. A C és a C++ nyelv 3 2.1.1. Függvényparaméterek és visszatérési érték 3 2.1.2. A main függvény 4 2.1.3. A bool típus 4 2.1.4.
RészletesebbenProgramozá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.
RészletesebbenKivé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
Részletesebben- 1 - Konstansok használata. Döntsük el, van-e fordítási idejű hiba az alábbi programrészletekben! a) const char * str="zh"; str[0]++;
Az alábbi feladatokat a AUT.BME.HU tanszéki weboldalon fellelhető AUT C++ Példatárból másoltam ki. A feladatokat a Programozás alapjai 2. ZH-ra való felkészülés jegyében válogattam, a példák nagy részét
RészletesebbenGENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és. Függvénysablonok
GENERIKUS PROGRAMOZÁS Osztálysablonok, Általános felépítésű függvények, Függvénynevek túlterhelése és Függvénysablonok Gyakorlatorientált szoftverfejlesztés C++ nyelven Visual Studio Community fejlesztőkörnyezetben
RészletesebbenSmalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva
Smalltalk 3. Osztályok létrehozása Készítette: Szabó Éva Metaosztály fogalma Mint korában említettük, a Smalltalkban mindent objektumnak tekintünk. Még az osztályok is objektumok. De ha az osztály objektum,
Részletesebben5. Gyakorlat. struct diak {
Rövid elméleti összefoglaló 5. Gyakorlat Felhasználó által definiált adattípusok: A typedef egy speciális tárolási osztály, mellyel érvényes típusokhoz szinonim nevet rendelhetünk. typedef létező_típus
RészletesebbenOBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek
OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN vizsgatételek 1. Az objektumorientált programozás szemlélete, az objektum fogalma 2. Az objektumorientált programozás alapelvei 3. A Java nyelv története, alapvető
RészletesebbenProgramozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 3. rész Tulajdonságok Indexelők Kivételkezelés Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát
RészletesebbenOOP #1 (Bevezetés) v1.0 2003.03.07. 18:39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.
OOP #1 (Bevezetés) v1.0 2003.03.07. 18:39: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_01-1 - E jegyzet másolata
RészletesebbenProgramozás C++ -ban 2007/4
Programozás C++ -ban 2007/4 1. Az adatokhoz való hozzáférés ellenőrzése Egy C programban a struktúrák minden része mindig elérhető. Ugyanakkor ez nem a legkedvezőbb helyzet. Több szempontból is hasznos
RészletesebbenJava 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
RészletesebbenProgramozás C++ -ban
Programozás C++ -ban 6. Konstansok A C nyelvben konstansokat makróval is deklarálhatunk. Ebben az esetben mindenhol ahol a makró előfordul a fordító a definiált értéket behelyettesíti a makró helyére.
RészletesebbenJava 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
RészletesebbenObjektumelvű 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é
RészletesebbenBevezetés a programozásba előadás: Öröklődés
Bevezetés a programozásba 2 5. előadás: Öröklődés emlékeztető Tagfüggvény struct koord { double x,y,r; void set(double ux, double uy) { x=ux; y=uy; r=sqrt(x*x+y*y); } Használat: koord k; k.set(4,5); Egységbezárás
RészletesebbenC++ programozási nyelv Konstruktorok Gyakorlat
C++ programozási nyelv Konstruktorok Gyakorlat Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2004. október A C++ programozási nyelv Soós Sándor 1/17 Tartalomjegyzék
RészletesebbenProgramozási nyelvek Java
Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 9. előadás Interface - típust vezet be, de osztálypéldány nem készíthető belőle (statikus típust ad) - több osztály is
RészletesebbenOsztá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
Részletesebben4. Öröklődés. Programozás II
4. Öröklődés Programozás II Mielőtt belevágunk Egy Tárgy típusú objektumokat tároló tömb i. elemében tároljunk el egy új tárgyat Rossz módszer: tomb[i].setnev( uj.getnev() ); tomb[i].setertek( uj.getertek()
Részletesebben1. 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 (
RészletesebbenC++ programozási nyelv
C++ programozási nyelv Gyakorlat - 9. 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/15 Tartalomjegyzék Hozzáférési
RészletesebbenObjektumorientált programozás IX. Osztályok, objektumok
Objektumorientált programozás IX. Osztályok, objektumok 1 Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik. Ismeretük szükséges,
RészletesebbenProgramozás II gyakorlat. 6. Polimorfizmus
Programozás II gyakorlat 6. Polimorfizmus Típuskonverziók C-ben: void * ptr; int * ptr_i = (int*)ptr; Ez működik C++-ban is. Használjuk inkább ezt: int * ptr_i = static_cast(ptr); Csak egymással
RészletesebbenProgramozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 5. gyakorlat 1 Objektumorientáltság Egységbezárás és információ elrejtése (absztrakt adattípus) Adatok és rajtuk végzett műveletek egységbezárása (osztályok írása, múlt hét) Öröklődés Polimorfizmus
RészletesebbenOOP: 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
RészletesebbenJava és web programozás
Budapesti M szaki Egyetem 2013. szeptember 25. 3. El adás User public class User { private String realname_; private String nickname_; private String password_; public User(String realname, String nickname)
RészletesebbenA 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.
Részletesebben