Bánsághi Anna
|
|
- Hunor Illés
- 8 évvel ezelőtt
- Látták:
Átírás
1 ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna 1. ELŐADÁS - C# ÁTTEKINTÉS Bánsághi Anna 1 of 84
2 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 84
3 I. C# ÁTTEKINTÉS Szoftver keretrendszer A C# lényegi elemei A C# program Érték- és referencia típusok Típuskonstrukciók 6. Változók, paraméterek 7. Utasítások, kifejezések, operátorok 8. Generikusok 9. Kivételkezelés 10. Attribútumok 11. XML dokumentáció 2015 Bánsághi Anna 3 of 84
4 1. SZOFTVER KERETRENDSZER 1980-ban jelent meg a SmallTalk, az első tisztán objektumorienált nyelv minden elem objektum és egyben egy osztály példánya az osztályok teljes származtatási hierarchiában helyezkednek el virtuális gépen futó teljesen hordozható kód memóriafelügyelet, szemétgyűjtés 2015 Bánsághi Anna 4 of 84
5 SZOFTVER KERETRENDSZER a programkönyvtárak és a virtuális gép együttese, mely tartalmazza a fejlesztéshez szükséges gépfüggetlen API-kat és felügyeli a programok futásának folyamatát 2015 Bánsághi Anna 5 of 84
6 FORDÍTÁS ÉS FUTTATÁS a programnyelvi kód egy alacsonyszintű, gépfüggetlen köztes nyelvre fordul, ez a köztes nyelvű kód a köztes nyelvű kód hordozhatóságát, gyorsaságát, hibamentességét, memóriafelügyeletét a virtuális gép, és azon belül a futattó környezet biztosítja, amely platformfüggő gépi kódot állít elő az ellenőrzött és biztonságos gépi kódot az operációs rendszer futtatja 2015 Bánsághi Anna 6 of 84
7 2015 Bánsághi Anna 7 of 84
8 .NET NET KERETRENDSZER virtuális gép: Common Language Runtime (CLR) köztes nyelv: Common Intermediate Language (CIL) egységes típusrendszer: Common Type System (CTS) teljes körű programkönyvtár: Framework Class Library (FCL) 2015 Bánsághi Anna 8 of 84
9 kliens-szerver alkalmazások (ASP.NET), relációs adatbáziskezelés (ADO.NET), kódbiztonság: Code Access Security (CAS) grafikus felhasználói felület (WinForms), Microsoft SQL Server integráció technológiák egységesítése: grafikus felhasználói felület (WPF), szolgáltatás orientált üzenetkezelés (WCF), folyamatkezelés (WWF), biztonságos adatkezelés (Windows CardSpace) nyelvbe ágyazott adatbázis lekérdezések (LINQ), funkcionális programozás, AJAX támogatás párhuzamos lekérdezések (PLINQ), nyelvi szintű párhuzamosítás (TPL), szerződés alapú programozás platform független alkalmazás architektúra (Windows Runtime), grafikus felhasználói felület (Modern UI) 2015 Bánsághi Anna 9 of 84
10 GRAFIKUS FELHASZNÁLÓI FELÜLETEK Windows Forms (WinForms) az elsőként kifejlesztett felület, amely raszteres grafikára épül, és teljes mértékben processzor által vezérelt Windows Presentation Foundation (WPF) a később kifejlesztett felület, mely vektoros grafikára épül, célja a 3D gyorsítókártyák lehetőségeinek kihasználása Modern UI hordozható eszközökre szánt, egyszerűsített, letisztult felület, amely a WPF architektúrára épít 2015 Bánsághi Anna 10 of 84
11 2. A C# LÉNYEGI ELEMEI a C# egy általános célú, típusbiztos, objektumorientált nyelv célja a programozói produktivitás elősegítése, ezért az egyszerűség, a kifejezőerő és a teljesítmény hármasa között egyensúlyoz platform-független, de legjobban a.net keretrendszerben működik 2015 Bánsághi Anna 11 of 84
12 OBJEKTUMORIENTÁLTSÁG az OO paradigma három fő pillére (egységbezárás, származtatás, polimorfizmus) mellett a C# nyelv specialitásai: egységes típusrendszer új típuskonstrukciós eszközök (interface, delegate) új tagfüggvények (tulajdonság, esemény, indexelő) 2015 Bánsághi Anna 12 of 84
13 EGYSÉGES TÍPUSRENDSZER a C# alapvető építőeleme az adatokat és az azokon végezhető műveleteket egységbezáró típus minden típus egyetlen közös ősből (System.Object) származik, ezért minden típus rendelkezik bizonyos alapvető funkciókkal, pl. a ToString metódussal tetszőleges típus példánya string-é konvertálható 2015 Bánsághi Anna 13 of 84
14 SYSTEM.OBJECT TAGJAI var objektum = new Object(); Type tipus = objektum.gettype(); foreach( MemberInfo tag in tipus.getmembers() ) { Console.WriteLine( tag ); Boolean Equals(System.Object) Boolean Equals(System.Object, System.Object) Int32 GetHashCode() System.Type GetType() System.String ToString() Boolean ReferenceEquals(System.Object, System.Object) Void.ctor() 2015 Bánsághi Anna 14 of 84
15 ÚJ TÍPUSKONSTRUKCIÓS ESZKÖZÖK a hagyományos OO paradigma szerint az egyetlen típuskonstrukciós eszköz az osztály deklarálása (class) a C#-ban más típuskonstrukciók is vannak, például az interfész, mely annyiban különbözik az osztálytól, hogy csupán deklarálja a tagokat, de nem implementálja azokat az interfészek a többszörös öröklődés kiváltására használhatók 2015 Bánsághi Anna 15 of 84
16 ÚJ TAGFÜGGVÉNYEK a műveletek nemcsak metódusokat, hanem tulajdonságokat és eseményeket is magukba foglalnak a tulajdonság valamely objektum állapotának egy darabkáját testesíti meg az esemény az objektum állapotváltozásáért felelős 2015 Bánsághi Anna 16 of 84
17 TÍPUSBIZTOSSÁG egy példányhoz csak a típusán megvalósított műveleteken keresztül férhetünk hozzá, ezzel őrizve meg a példány belső konzisztenciáját a C# statikusan típusos nyelv, azaz fordítási időben kerül kikényszerítésre a típusbiztosság a C# erősen típusos nyelv is, azaz az objektumokat deklarálnunk kell, illetve csak a típuson megengedett műveletek hajthatók végre 2015 Bánsághi Anna 17 of 84
18 MEMÓRIAGAZDÁLKODÁS a C# programok az automatikus memóriagazdálkodást a futtató környezetre bízzák a CLR tartalmaz egy szemétgyűjtő algoritmust, mely időről időre felszabadítja a referencia nélküli memóriaszeleteket nincs szükség explicit (programozó által kezdeményezett) memóriafelszabadításra a mutató típus megmaradt, de csak unsafe blokkon belül használható 2015 Bánsághi Anna 18 of 84
19 PLATFORMOK a C# tipikusan Windows platformokon futó programok írására alkalmas több platformon futó alkalmazásokhoz a Java-t érdemes választani 2015 Bánsághi Anna 19 of 84
20 WINDOWS RUNTIME a Windows 8-ban megjelentek az érintőképernyős Metro stílusú alkalmazások a mobil és az érintőképernyős grafikus alkalmazások fejlesztéséhez szükséges könyvtárakat tartalmazza a WinRT 2015 Bánsághi Anna 20 of 84
21 3. A C# PROGRAM a program logikai tagolását az egymásba ágyazható biztosítják névterek a program fizikai tagolását az assembly -k biztosítják, melyek tartalmazhatnak típusokat, típusok megvalósítását, valamint más assembly-kre történő referenciákat alkalmazás könyvtár ASSEMBLY FAJTÁK belépési ponttal rendelkezik,.exe kiterjesztésű nincs belépési pontja, általában.dll kiterjesztésű 2015 Bánsághi Anna 21 of 84
22 ALKALMAZÁS FUTTATÁS az alkalmazás futása egy különálló alkalmazás tartományban történik, melybe minden hivatkozott típus és osztálykönyvtár betöltődik ha egy alkalmazást több példányban futtatunk, akkor minden példánynak saját alkalmazás tartománya jön létre, ahova a hivatkozott típusok és osztálykönyvtárak külön-külön betöltődnek így az egyes alkalmazások futása teljesen szeparált módon történik ugyanazon vagy más alkalmazások futásától 2015 Bánsághi Anna 22 of 84
23 BELÉPÉSI PONT az alkalmazás indítás akkor történik, amikor a futtató környezet meghív egy speciális metódust, az alkalmazás belépési pontját, a statikus Main metódust habár létezik a metódusnevek túlterhelése, a Main metódusból kizárólag egyetlen létezhet egy alkalmazáson belül ha az alkalmazás olyan könyvtárakat tölt be, melyek szintén tartalmaznak Main metódust, akkor kívülről kell megadni, hogy melyik lesz az alkalmazás belépési pontja a futtató környezet mindig látja a Main metódust, annak láthatóságától függetlenül 2015 Bánsághi Anna 23 of 84
24 ALKALMAZÁS TERMINÁLÁSA az alkalmazás terminálása visszaadja a vezérlést a futtató környezetnek a terminálás előtt az alkalmazás objektumain automatikusan lefutnak a destruktorok, hacsak nem hívtuk meg explicite a szemétgyűjtő eljárást, például a GC.SuppressFinalize metódussal 2015 Bánsághi Anna 24 of 84
25 AUTOMATIKUS MEMÓRIAKEZELÉS amikor egy objektum létrejön, akkor lefoglalódik számára egy memóriaszelet, lefut a konstruktor, és az objektum élővé válik ha egy objektum vagy bármely része elérhetetlenné válik futási időben, akkor az objektum megsemmisítésre lesz kijelölve ha egy objektum megsemmisítésre lett jelölve, akkor valamikor később lefut a destruktora amint az objektum destruktora lefutott vagy az objektum sérülése miatt nem tudott lefutni, akkor az objektum gyűjtésre lesz kijelölve valamikor később a szemétgyűjtő felszabadítja azokat a memóriaszeleteket, ahol gyűjtésre kijelölt objektumok helyezkednek el 2015 Bánsághi Anna 25 of 84
26 DEKLARÁCIÓK a program építőköveit, elemeit deklarálnunk kell a C# program névterekbe szervezett, ahol egy névtéren belül lehetnek típus deklarációk és beágyazott névtér deklarációk névtér deklaráció típus deklarációk: namespace osztály deklaráció class rekord deklaráció struct interfész deklaráció interface felsorolási típus deklaráció enum delegált deklaráció delegate 2015 Bánsághi Anna 26 of 84
27 TAGOK a névterek és a különféle típusok tagokból épülnek fel, melyeket az adott elem utáni pont és a tag nevével érünk el valamely típus tagjait vagy a típus deklarációban adjuk meg, vagy származtatjuk az őstípusból a konstruktorokat és a destruktorokat kivéve minden tag öröklődik az öröklött tagok nem feltétlenül érhetők el a származtatott típusban, ez függ az ősben megadott láthatóságtól public, protected, internal, protected internal, private 2015 Bánsághi Anna 27 of 84
28 SZIGNATÚRA ÉS TÚLTERHELÉS a metódusok, a példány konstruktorok, az indexelők és az operátorok szignatúrájuk alapján azonosíthatók be szignatúra = metódus/operátor neve + formális paraméterek típusa és fajtája * az egyedileg beazonosítható szignatúra teszi lehetővé a fenti tagok túlterhelését osztályokban, rekordokban és interfészekben a visszatérési típus és a params módosító nem része a szignatúrának * formális paraméterek fajtája: érték, referencia, output, tömb 2015 Bánsághi Anna 28 of 84
29 HATÓKÖRÖK egy név hatóköre az a programrész, ahonnan az adott néven deklarált elem elérhető a hatókörök egymásba ágyazhatók, és egy belső hatókörben használt név felüldefiniálja a külső hatókörben használt nevet, így a külső név rejtett lesz a belső hatókörben névtéren, osztályon, rekordon vagy felsorolási típuson belül deklarált tag - a deklarálás helyétől függetlenül - elérhető ugyanazon típus egy másik tagján belül adott nevet mindig el lehet érni a minősítők megadásával 2015 Bánsághi Anna 29 of 84
30 MINŐSÍTETT NEVEK class A { namespace X { class B { class C { // A // X // X.B // X.B.C namespace Y { class D { // X.Y // X.Y.D namespace X.Y { class E { // X.Y // X.Y.E 2015 Bánsághi Anna 30 of 84
31 NEVEK ELREJTÉSE EGYMÁSBA ÁGYAZÁSSAL class A { void F() { int i = 1; // lokális változó, elfedi az i tagot this.i = 5; // az i tag elérhető a this minősítővel void G() { i = 1; int i = 0; // az i tag deklarálása utoljára történik, // de hatóköre a teljes A osztályra kiterjed NEVEK ELREJTÉSE SZÁRMAZTATÁSSAL class A { public void F() { class B : A { new public void F() { // az A.F tag elfedett a new módosítóval 2015 Bánsághi Anna 31 of 84
32 4. TÍPUSOK érték közvetlenün tartalmazza az adatot struct, enum, bool, integral, floating-point két azonos értékű adatot tároló változó két különböző adatot jelent, így az egyik változón végzett művelet semmilyen haátssal nincs a másik változóban tárolt adatra referencia az adatra mutató referenciát tartalmazza class, interface, array, delegate két referencia mutathat ugyanazon objektumra, így az egyik referencián keresztül végrehajtott művelet eredeménye a másik referencián keresztül is érzékelhető mutató csak unsafe környezetben használható a szemétgyűjtő nem működik rajta 2015 Bánsághi Anna 32 of 84
33 2015 Bánsághi Anna 33 of 84
34 2015 Bánsághi Anna 34 of 84
35 ÉRTÉKTÍPUSOK egy értéktípusú változó értéket tárol, nem lehet null vagy referencia változóhoz történő hozzárendelés esetén létrejön az érték egy újabb másolata minden értéktípus a System.ValueType-ból származik az értéktípusok lezártak (sealed), tehát nem lehet belőlük származtatni az értéktípusok implicite rendelkeznek paraméternélküli konstruktorral, mely a változókat inicializálja a struct típusoknak nem lehet paraméternélküli konstruktort deklarálni, mivel az már létezik implicite az egyszerű típusok két néven érhetők el, például int és System.Int Bánsághi Anna 35 of 84
36 TÍPUSKONSTRUKCIÓS ESZKÖZÖK enum nevesített konstansokat tartalmazó típus. Minden felsorolt típus valamely egész típuson (kivéve char) alapul struct felhasználói értéktípusok létrehozására 2015 Bánsághi Anna 36 of 84
37 REFERENCIA TÍPUSOK egy referencia típusú változó referenciát tárol, mely egy adott típus egy példányára, azaz egy objektumra mutat a null minden esetben azt jelzi, hogy az objektum nem létezik változóhoz történő hozzárendelés esetén a referencia másolódik le, nem az objektum az object egy álnév a System.Object típusra, minden C#-beli típus ősére két object típusú kifejezés pontosan akkor egyenlő, ha ugyanarra az objektumra mutatnak vagy mindkettő null két string típusú kifejezés pontosan akkor egyenlő, ha minden karakterpozícióban megegyeznek vagy mindkettő null 2015 Bánsághi Anna 37 of 84
38 TÍPUSKONSTRUKCIÓS ESZKÖZÖK class adattagokat és tagfüggvényeket tartalmazó típusok deklarálására való. Támogatja az egyszeres öröklődést interface egy szerződést definiál. Az az osztály vagy rekord, mely megvalósít egy interfészt, be kell hogy tartsa ezt a szerződést. Támogatja a többszörös öröklődést delegate egy vagy több alprogram vagy metódus összekapcsolására szolgáló adatszerkezet. Egy delegate hívásakor a listájában lévő összes metódus meghívódik a megadott paraméterre array azonos típusú elemek tárolására szolgáló adatszerkezet. A deklaráció az elemek megadásával történik 2015 Bánsághi Anna 38 of 84
39 BOXING ÉS UNBOXING a C#-ban az egységes típusrendszer központi fontosságú minden típus, még az értéktípusok is a System.Object leszármazottai tehát bármely értéktípuson értelmezett a ToString metódus vagy egészeken a MaxValue tulajdonság ez egy kis zavart eredményez, hiszen az értéktípusok lényege, hogy a hatékony kezelés érdekében kizárólag értéket tárolnak, nincsenek adattagjaik vagy tagfüggvényeik a megoldást a boxing művelet jelenti, amely tetszőleges értéktípusnak megengedi, hogy úgy viselkedjen mint egy referencia típus 2015 Bánsághi Anna 39 of 84
40 BOXING amellett, hogy a memóriában megtalálható a változó az értékével, a CLR karbantart a változónak egy "dobozt", amely tartalmazza az eredeti változó adatait, és minden olyan további információt, ami ahhoz szükséges, hogy a változó referencia típusként tudjon működni úgy tűnhet, hogy drága dolog az egységes típusrendszer, valójában azonban a fordító nagyon jól optimalizál 2015 Bánsághi Anna 40 of 84
41 BOXING PÉLDA static void Main() { // a 3 egy int értéktípusú konstans, // ám itt objektumként hivatkozunk rá, meghívjuk a ToString metódusát Console.WriteLine( 3.ToString() ); 2015 Bánsághi Anna 41 of 84
42 BOXING ÉS UNBOXING MANUÁLISAN static void Main() { int x = 10; object xbox = x; // az x változó értéktípus // xbox az x bedobozolt másolata // Console.WriteLine( Object v ) hívódik meg Console.WriteLine( "x értéke: {0", xbox ); // Console.WriteLine( int v ) hívódik meg Console.WriteLine( "x értéke: {0", x ); static void Main() { object box = 10; int x = (int)box; // a box referencia típus, és egy objektumra mutat // x a box kidobozolt értéke, értéktípus 2015 Bánsághi Anna 42 of 84
43 5. TÍPUSKONSTRUKCIÓK értéktípusok deklarálására struct enum referencia típusok deklarálására array class interface delegate 2015 Bánsághi Anna 43 of 84
44 STRUCT kis, egyszerű adatszerkezetek deklarálására megvalósíthatnak interfészt nincs közöttük öröklődés, implicite lezártak (sealed) a static vagy const mezőket kivéve nem lehet inicializálni a mezőket nem definiálható paraméter nélküli konstruktor vagy destruktor definiálhatók paraméteres konstruktorok a new operátor nélkül is példányosíthatók a ValueType.Equals metódussal hasonlítható össze, hogy két példány azonos értékű mezőkkel rendelkezik-e 2015 Bánsághi Anna 44 of 84
45 STRUCT DEKLARÁLÁSA [attribútumok] módosítók struct Név : interfészek { tag_deklarációk (alapértelmezetten private hozzáférésűek) módosítók new, public, protected, internal, private 2015 Bánsághi Anna 45 of 84
46 // a Pont adatszerkezetet tartalmazó rekord struct Pont { public double x, y; // a mezők általában publikusak // nem jellemzők a tulajdonságok (get, set) public Pont( double x, double y ) { // két paraméteres konstruktor this.x = x; this.y = y; // a Main belépési pontot tartalmazó osztály class PontTeszt { static void Main() { var p1 = new Pont( 2, 3 ); Pont p2; p2.x = 2; p2.y = 3; // változó deklarálása és inicializálása // változó deklarálása Console.WriteLine( p1.equals(p2) ); // a mezők érték szerint összehasonlítása 2015 Bánsághi Anna 46 of 84
47 ENUM felsorolható elemek deklarálására csak class-ba vagy struct-ba ágyazható az első elem értéke alapértelmezettan a 0, a többié 1-gyel növekszik inicializálással a fenti sorrend felüldefiniálható az alapértelmezett egész alaptípus az int 2015 Bánsághi Anna 47 of 84
48 ENUM DEKLARÁLÁSA [attribútumok] módosítók enum Név : alaptípus { tag_deklarációk (kizárólag public hozzáférésűek) módosítók new, public, protected, internal, private alaptípus byte, sbyte, short, ushort, int, uint, long, ulong 2015 Bánsághi Anna 48 of 84
49 enum Színek { Piros, Zöld, Kék class FelsoroltTeszt { static void Main() { Színek szin = Színek.Piros; int sorszam = (int)szin; Console.WriteLine( "{0 {1", szin, sorszam ); // Piros Bánsághi Anna 49 of 84
50 // Flags attribútum használata, kiiratásnál a ToString metódus másképp működik [Flags] enum Napok : byte { // az alaptípus byte-ra állítva Hétfő = 1, // az értékek 2 hatványai a bitműveletek miatt Kedd = 2, Szerda = 4, Csütörtök = 8, Péntek = 16, Szombat = 32, Vasárnap = 64 class FelsoroltTeszt { static void Main() { Napok hétvége = Napok.Szombat Napok.Vasárnap; // bitenkénti VAGY operátor Console.WriteLine( hétvége ); // Szombat, Vasárnap 2015 Bánsághi Anna 50 of 84
51 ARRAY azonos típusú elemek tárolására egy tömb lehet egy- vagy többdimenziós, illetve egyenetlen a dimenziók száma és elemszáma deklaráláskor rögzítődik, és nem változhat meg az értéktípusú elemeket tartalmazó tömb 0-kal, míg a referencia típusú elemeket tartalmazó tömb null elemekkel inicializálódik az egyenetlen tömb elemei tömbök, azaz referencia típusú elemek, így null-lal inicializálódnak egy n elemű tömb indextartománya 0 és n-1 közé esik minden tömb a System.Array őstípus valamely leszármazottjának példánya, tehát objektum 2015 Bánsághi Anna 51 of 84
52 TÖMBÖK MINT OBJEKTUMOK using System.Linq; public static void Main() { // 2-dimenziós tömb, azaz mátrix var t1 = new int[2, 4] { {1,2,3,4, {5,6,7,8 ; // egyenetlen tömb var t2 = new int[2][] { new int[] {1,2, new int[] {3,4,5 ; Console.WriteLine( t1[0,1] ); Console.WriteLine( t2[0][1] ); Console.WriteLine( "A tömb {0 dimenziós", t1.rank ); Console.WriteLine( "Az első rész-tömb elemeinek összege {0", t2[0].sum() ); 2015 Bánsághi Anna 52 of 84
53 CLASS komplex felhasználói típusok létrehozására a nem-statikus osztályokból példányosítással hozhatók létre az objektumok (new), és az egyes objektumok állapota változik meg valamely tag hívásával egy tipikus C# programban különféle objektumok kommunikálnak egymással a statikus osztályok nem példányosíthatók, és mivel nincs objektum, melyen keresztül elérhetők lennének a tagok, ezért magán az osztályon keresztül érjük el a tagokat az Object.Equals metódussal hasonlítható össze, hogy két, azonos típusú példány ugyanazon a memóriacímen helyezkedik-e el (a referenciák megegyeznek) egy osztály példányait a mezők értéke alapján összehasonlítandó, felül kell definiálni vagy az Object.Equals metódust, vagy az == és!= operátorokat 2015 Bánsághi Anna 53 of 84
54 CLASS DEKLARÁLÁSA [attribútumok] módosítók class Név : ősosztály, interfészek { tag_deklarációk (alapértelmezetten private hozzáférésűek) módosítók new, public, protected, abstract, sealed internal, private, 2015 Bánsághi Anna 54 of 84
55 // a Pont adatszerkezetet tartalmazó osztály class Pont { public double X { get; set; // általában tulajdonságokat használunk public double Y { get; set; // mezők helyett public Pont() { // felüldefiniálható paraméter nélküli konstruktor this.x = this.y = 0; public Pont( double x, double y ) { this.x = x; this.y = y; // a Main belépési pontot tartalmazó osztály class PontTeszt { static void Main() { Pont p1 = new Pont( 2, 3 ); // objektum példányosítása és inicializálása Pont p2 = p1; // p2 egy álnév az előzőleg létrehozott objektumra Console.WriteLine( p1.equals(p2)); // referenciák összehasonlítása 2015 Bánsághi Anna 55 of 84
56 CLASS - SZÁRMAZTATÁS más osztályok viselkedésének újrafelhasználására, kiterjesztésére, módosítására szolgál újrafelhasználás a példány konstruktorokat, a statikus konstruktorokat és a destruktorokat kivéve minden ősosztálybeli tag implicite öröklődik, így azok implementálás nélkül újra felhasználhatók a származtatott osztályban kiterjesztés a származtatott osztályban új tagokat lehet deklarálni, így az ősosztály egy kiterjesztett változatát kapjuk módosítás az öröklött tagok elfedhetők vagy felüldefiniálhatók (újra implementálhatók), így módosítva az ősosztálybeli tagok jelentését 2015 Bánsághi Anna 56 of 84
57 SZÁRMAZTATÁS JELLEMZŐI egy osztálynak csak egyetlen közvetlen őse lehet, bár maga a származtatás tranzitív művelet: A B B C A C tetszőleges ősosztálybeli tag elfedhető (new) a származtatott osztályban, bár a polimorfizmus megszűnik az ősosztálybeli virtual tagok felüldefiniálhatók (override) a származtatott osztályban az absztrakt osztályok nem példányosíthatók, és a metódusok csak szignatúrával szerepelnek, implementáció nélkül az ősosztálybeli absztrakt tagokat kötelező felüldefiniálni az első közvetlen, nem-absztrakt származtatott osztályban az interfész hasonlít egy kizárólag absztrakt metódusokat tartalmazó absztrakt osztályra, melyet implementálni kell az interfészt megvalósító osztályban a származtatott osztály minden ősbeli tagot örököl, viszont csak a nem private tagokhoz fér hozzá 2015 Bánsághi Anna 57 of 84
58 POLIMORFIZMUS JELLEMZŐI jelentése: többalakúság fordítási és futási idejű típus egy származtatott osztálybeli objektum a program futásának bizonyos pontjain viselkedhet úgy, mintha ősosztálybeli objektum volna. Ilyenkor az objektum fordítási idejű típusa különbözik az objektum futási idejű típusától korai és késői kötés az ősben definiált vagy implementált virtuális metódusok felüldefiniálhatók a leszármazottban, azaz saját definíció és implementáció adható. Futás alatt a CLR a futási idejű típus alapján hívja meg a metódusokat, tehát fordítási időben az ős metódusát hívjuk, míg futási időben a leszármazottét 2015 Bánsághi Anna 58 of 84
59 származtatás felüldefiniálás felüldefiniálása elfedés TAGOK TÖBBALAKÚSÁGA az ős tagjainak átvétele minden módosítás nélkül az ősosztálybeli virtual vagy abstract tagok nem virtuális tagok elfedése új implementációval 2015 Bánsághi Anna 59 of 84
60 FELÜLDEFINIÁLÁS, ELFEDÉS mezők nem lehetnek virtuálisak, csak a tulajdonságok, metódusok, események, indexelők az ősosztálybeli implementáció megmarad, a közvetlen ős tagja hívható a base kulcsszóval ha A B és B C, és B-ben felüldefináltunk egy A-beli virtuális tagot, az a C szempontjából virtuális, tehát felüldefiniálható C-ben ha C-ben meg akarjuk akadályozni a B-ben felüldefiniált tag újbóli felüldefiniálását, azt a sealed módosítóval jelezzük ha meg akarjuk szüntetni az ős és a leszármazott közötti virtuális hívást, akkor a leszármazottban a new módosítóval fedjük el az ősosztálybeli tagot 2015 Bánsághi Anna 60 of 84
61 public class A { public virtual void Egyik() { public virtual void Masik() { public virtual void Harmadik() { public virtual void Negyedik() { public class B : A { public override void Egyik() { // új funkcionalitás... public override void Masik() { // új funkcionalitás... base.masik(); // A.Egyik felüldefiniálása // A.Masik felüldefiniálása // A.Masik hívása public sealed override void Harmadik() { // A.Harmadik lezárása // új funkcionalitás... public new void Negyedik() { // új funkcionalitás... // A.Negyedik elfedése 2015 Bánsághi Anna 61 of 84
62 INTERFACE olyan, mint egy absztrakt ősosztály, nem tartalmaz implementációt az interfészt megvalósító osztálynak vagy rekordnak implementálnia kell az interfész tagjait nem példányosítható tagjai lehetnek események, metódusok, indexelők, tulajdonságok egy osztály vagy rekord egy vagy több interfészt is megvalósíthat az explicite megvalósított tagok publikusak és nem-statikusak kell hogy legyenek 2015 Bánsághi Anna 62 of 84
63 INTERFACE DEKLARÁLÁSA [attribútumok] módosítók interface Név : interfészek { tag_deklarációk (kizárólag public hozzáférésűek) módosítók new, public, protected, internal, private 2015 Bánsághi Anna 63 of 84
64 FONTOSABB BEÉPÍTETT INTERFÉSZEK IEnumerable, IEnumerable<T> esetén IDisposable IQueryable<T> INotifyPropertyChange foreach és LINQ használata using utasítással használt erőforrások esetén lekérdezhető adatforrások kéréseihez IComparable<T>, IComparer<T> grafikus felületek adatkötéseihez IEquatable<T>, IEqualityComparer<T> egyenlőség-vizsgálatokhoz IList<T>, ICollection<T> IDictionary<K, T> általánosított rendezésekhez általánosított változékony gyűjteményekhez gyűjteményekben való keresésekhez 2015 Bánsághi Anna 64 of 84
65 PONTOK RENDEZÉSE class Pont : IComparable<Pont> { public double X { get; set; public double Y { get; set; public Pont( double x, double y ) { this.x = x; this.y = y; // a System.IComparable.CompareTo<T> metódus megvalósítása public int CompareTo( Pont that ) { if( that == null ) return 1; // a System.Double.CompareTo megvalósított metódusok hívása return this.x.compareto( that.x ) + this.y.compareto( that.y ); // a System.Object.ToString metódus felüldefiniálása public override string ToString() { return "(" + this.x.tostring() + "," + this.y.tostring() + ")"; 2015 Bánsághi Anna 65 of 84
66 class Teszt { static void Main() { List<Pont> pontok = new List<Pont>(); pontok.add( new Pont(1, 2)); pontok.add( new Pont(2, 3)); pontok.add( new Pont(1, 1)); // a List generikus típus Sort metódusát hívjuk, mely // az imént megvalósított Pont.CompareTo metódust használja pontok.sort(); foreach( var pont in pontok ) { Console.WriteLine( pont ); // a Pont.ToString metódus hívása 2015 Bánsághi Anna 66 of 84
67 DELEGATE arra szolgálnak, hogy metódusokat adhassunk át paraméterként más metódusoknak a delegált deklaráció egy függvény-szignatúra típust definiál egy delegált példány egységbezár egy hívási listát, melyben egy vagy több, azonos szignatúrájú és visszatérési típusú metódus referencia található egy delegált példány hívása során az argumentumain meghívódnak a listában található metódusok 2015 Bánsághi Anna 67 of 84
68 DELEGATE DEKLARÁLÁSA [attribútumok] módosítók delegate visszatérési_típus Név ( formális_paraméterek ); módosítók new, public, protected, internal, private 2015 Bánsághi Anna 68 of 84
69 class Szoveg { public string Mondat { get; set; public Szoveg( string mondat ) { this.mondat = mondat; public void Kettospont() { this.mondat = this.mondat.replace( ' ', ':' ); public void Nagybetus() { this.mondat = this.mondat.toupper(); public void Kisbetus() { this.mondat = this.mondat.tolower(); 2015 Bánsághi Anna 69 of 84
70 // delegált deklaráció a megfelelő visszatérési típussal és szignatúrával delegate void AtalakitoDelegate(); class Teszt { static void Main() { var szoveg = new Szoveg( "Delegált teszt" ); // delegált típusú referencia létrehozása AtalakitoDelegate atalakito; // a "szoveg" objektum néhány metódusát felvesszük a delegált metódusok közé atalakito = szoveg.kettospont; atalakito += szoveg.nagybetus; // meghívjuk a delegáltat, melyhez hozzá van rendelve // a "szoveg" objektum és annak néhány metódusa atalakito(); Console.WriteLine( szoveg.mondat ); // DELEGÁLT:TESZT 2015 Bánsághi Anna 70 of 84
71 PÉLDA 1. Tegyük fel, hogy egy netes vásárlást megvalósító alkalmazáson dolgozunk, és feladatunk a kosárban található áruk ellenértékenek számítása. A számítás egyik lépése a kedvezmények kalkulációja. class Kosar { public void Feldolgozas() { int kedvezmeny = 5; // a feldolgozás során beállítjuk a kedvezményt //... class KosarTeszt { static void Main() { var kosar = new Kosar(); kosar.feldolgozas(); // külső programból hívódik meg a Feldolgozás metódus 2015 Bánsághi Anna 71 of 84
72 2. Egy idő utána az üzlet oldaláról kérés érkezik, hogy a délelőtti vásárlásokra nagyobb kedvezményt adjunk Módosítjuk tehát a Feldolgozás metódust class Kosar { public void Feldolgozas() { int kedvezmeny = 5; if( DateTime.Now.Hour < 12 ) { kedvezmeny = 10; // Bánsághi Anna 72 of 84
73 3. A következő héten újabb kérés érkezik az üzlet oldaláról, hogy módosítsunk a kedvezmények számításán Ekkor arra gondolunk, hogy jó lenne a kedvezmény kalkulációt delegálni oda, ahol kitalálják class KosarTeszt { static void Main() { var kosar = new Kosar(); // paramétere egy int típusú értékkel kosar.feldolgozas( 5 ); // paramétere egy kulcs-érték párokat tartalmazó asszociatív tömb kosar.feldolgozas( new Dictionary ); // paramétere egy kedvezményt számító metódus kosar.feldolgozas( kedvezmenykalkulacio ); 2015 Bánsághi Anna 73 of 84
74 DELEGATE DEKLARÁCIÓ, PÉLDÁNYOSÍTÁS, HÍVÁS delegate int KedvezmenyDelegate(); // delegált típus deklarálása class KosarTeszt { static void Main() { // delegált explicit példányosítása, és egy metódus hozzárendelése var delegalt_1 = new KedvezmenyDelegate( class.method ); // delegált implicit példányosítása, és egy metódus hozzárendelése KedvezmenyDelegate delegalt_2 = class.method; var kosar = new Kosar(); // a delegált példány paraméterként való átadása kosar.feldolgozas( delegalt_1 ); class Kosar { public void Feldolgozas( KedvezmenyDelegate kedvezmenyszamitas ) { // a delegált példányhoz rendelt metódusok hívása int kedvezmeny = kedvezmenyszamitas(); 2015 Bánsághi Anna 74 of 84
75 delegate int KedvezmenyDelegate(); class Kalkulacio { public static int Szamitas() { int kedvezmeny = 5; if( DateTime.Now.Hour < 12 ) { kedvezmeny = 10; else if( DateTime.Now.Hour < 20 ) { kedvezmeny = 15; return kedvezmeny; class Kosar { public void Feldolgozas( KedvezmenyDelegate kedvezmenyszamitas ) { int kedvezmeny = kedvezmenyszamitas(); class KosarTeszt { static void Main() { var kosar = new Kosar(); KedvezmenyDelegate delegalt = Kalkulacio.Szamitas; kosar.feldolgozas( delegalt ); 2015 Bánsághi Anna 75 of 84
76 NÉVTELEN PÉLDÁNYOSÍTÁS minden objektum létrehozható név nélkül is, ekkor a kódban nem tudunk hivatkozni rá var pont = new Pont(); // nevesített Pont objektum new Pont(); // név nélküli Pont objektum // nevesített delegáltak példányosítása var delegalt_1 = new KedvezmenyDelegate( Kalkulacio.Szamitas ); KedvezmenyDelegate delegalt_2 = Kalkulacio.Szamitas; kosar.feldolgozas( delegalt_1 ); // explicit // implicit // név nélküli delegáltak példányosítása kosar.feldolgozas( new KedvezmenyDelegate( Kalkulacio.Szamitas )); // explicit kosar.feldolgozas( Kalkulacio.Szamitas ); // implicit 2015 Bánsághi Anna 76 of 84
77 GENERIKUS ACTION ÉS FUNC OSZTÁLYOK ha.net 1.1-et használnánk, meg is állhatnánk, de a.net 3.5-re kiforrott a generikusok és az Action és a Func osztályok technikája mindenhol, ahol delegate típusú paramétert várunk, ott használható a megfelelő szignatúráju Func vagy Action ez azt jelenti, hogy a fenti példában nincs szükség a delegate típusra, helyette használhatjuk a Func<int>-et kosar.feldolgozas( new KedvezmenyDelegate( Kalkulacio.Szamitas )); // explicit kosar.feldolgozas( new Func<int>( Kalkulacio.Szamitas )); // explicit kosar.feldolgozas( Kalkulacio.Szamitas ); // implicit 2015 Bánsághi Anna 77 of 84
78 class Kalkulacio { public static int Szamitas() { int kedvezmeny = 5; if( DateTime.Now.Hour < 12 ) { kedvezmeny = 10; else if( DateTime.Now.Hour < 20 ) { kedvezmeny = 15; return kedvezmeny; class Kosar { public void Feldolgozas( Func<int> kedvezmenyszamitas ) { int kedvezmeny = kedvezmenyszamitas(); class KosarTeszt { static void Main() { var kosar = new Kosar(); kosar.feldolgozas( Kalkulacio.Szamitas ); 2015 Bánsághi Anna 78 of 84
79 4. Tegyük fel, hogy a menedzsment újra módosít a kedvezmények számításán, és bevezet egy "különleges" státuszt, ami a kosár tartalma alapján határozott meg 2015 Bánsághi Anna 79 of 84
80 class Kalkulacio { public static int Szamitas( bool kulonleges ) { int kedvezmeny = 5; if( kulonleges ) { kedvezmeny = 40; else if( DateTime.Now.Hour < 12 ) { kedvezmeny = 10; else if( DateTime.Now.Hour < 20 ) { kedvezmeny = 15; return kedvezmeny; class Kosar { public void Feldolgozas( Func<bool, int> kedvezmenyszamitas ) { int kedvezmeny = kedvezmenyszamitas( true ); class KosarTeszt { static void Main() { var kosar = new Kosar(); kosar.feldolgozas( Kalkulacio.Szamitas ); 2015 Bánsághi Anna 80 of 84
81 NÉVTELEN FÜGGVÉNYEK.NET 3.5-ben a delegate kulcsszó két jelentéssel bír 1. függvény-szignatúra típus deklarálására (ahogy eddig) 2. helyben kifejtett névtelen függvény deklarálására tovább finomítva a kódot, ahelyett, hogy létrehoznánk egy új osztályt a kedvezmények számítására, használhatunk névtelen függvényeket is, megelőzve a névtereink elszennyeződését // Func<string, int> szignatúrájú névtelen függvény explicit példányosítása new Func<string, int> delegate(string s) { Console.WriteLine( s ); return 0; // Func<string, int> szignatúrájú névtelen függvény implicit példányosítása delegate(string s) { Console.WriteLine( s ); return 0; 2015 Bánsághi Anna 81 of 84
82 class Kosar { public void Feldolgozas( Func<bool, int> kedvezmenyszamitas ) { int kedvezmeny = kedvezmenyszamitas( true ); class KosarTeszt { static void Main() { var kosar = new Kosar(); kosar.feldolgozas( delegate( bool kulonleges ) { int kedvezmeny = 5; if( kulonleges ) { kedvezmeny = 40; else if( DateTime.Now.Hour < 12 ) { kedvezmeny = 10; else if( DateTime.Now.Hour < 20 ) { kedvezmeny = 15; return kedvezmeny; )); 2015 Bánsághi Anna 82 of 84
83 LAMBDA KIFEJEZÉSEK a delegált névtelen metódusok haszna a.net beépített metódusainál kézzelfogható, viszont a mi kódunk tovább egyszerűsíthető a delegált névtelen függvényt lecserélhetjük egy megfelelő paraméterekkel rendelkező lambda kifejezésre delegate(string s) { Console.WriteLine( s ); return 0; s => { Console.WriteLine( s ); return 0; 2015 Bánsághi Anna 83 of 84
84 class Kosar { public void Feldolgozas( Func<bool, int> kedvezmenyszamitas ) { int kedvezmeny = kedvezmenyszamitas( true ); class KosarTeszt { static void Main() { var kosar = new Kosar(); kosar.feldolgozas( kulonleges => { int kedvezmeny = 5; if( kulonleges ) { kedvezmeny = 40; else if( DateTime.Now.Hour < 12 ) { kedvezmeny = 10; else if( DateTime.Now.Hour < 20 ) { kedvezmeny = 15; return kedvezmeny; ); 2015 Bánsághi Anna 84 of 84
Bánsághi Anna anna.bansaghi@mamikon.net
ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 2. ELŐADÁS - C# ÁTTEKINTÉS - 2 2015 Bánsághi Anna 1 of 64 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64
RészletesebbenC# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem
C# nyelv alapjai Krizsán Zoltán 1 Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag Tartalom Bevezetés Lokális változó Utasítások Szójáték Why do all real
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Láthatósági szintek Névterek és hatókörök Osztály szintő tagok Beágyazott osztályok
RészletesebbenC# osztályok. Krizsán Zoltán
C# osztályok Krizsán Zoltán Fogalma Önálló hatáskőrrel rendelkező, absztrakt adattípus, amely több, különböző elemet tartalmazhat. Minden esetben a heap-en jön létre! A programozó hozza létre, de a GC
RészletesebbenEseményvezérelt alkalmazások fejlesztése II. A.NET keretrendszer és a C# programozási nyelv. Objektumorientált programozási nyelvek A Smalltalk nyelv
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II A.NET keretrendszer és a C# programozási nyelv Objektumorientált programozási nyelvek A Smalltalk nyelv 1980-ban
RészletesebbenProgramozás 2., I. kötet Az objektumorientált paradigma alapjai
TÁMOP-4.1.1.F-14/1/KONV-2015-0009 A GÉPÉSZETI ÉS INFORMATIKAI ÁGAZATOK DUÁLIS ÉS MODULÁRIS KÉPZÉSEINEK KIALAKÍTÁSA A PÉCSI TUDOMÁNYEGYETEMEN Achs Ágnes Szendrői Etelka Programozás 2., I. kötet Az objektumorientált
RészletesebbenObjektumorientált programozás C# nyelven
Objektumorientált programozás C# nyelven 1. rész Osztályok és objektumok Mezık és metódusok Konstruktor és destruktor Névterek és hatókörök Láthatósági szintek Osztály szintő tagok Beágyazott osztályok
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 BMEKOKAA146. Dr. Bécsi Tamás 1. Előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 1. Előadás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu Programozás
RészletesebbenMagas szintű programozási nyelvek 2 Előadás jegyzet
Magas szintű programozási nyelvek 2 Előadás jegyzet 1. Rendszerfejlesztés 0. lépés: Elemzés (analízis) 1. lépés: Tervezés a, technológia független rész b, technológia függő rész 2. lépés: Megvalósítás
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észletesebbenSzámítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás
Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási
RészletesebbenVB C++ C# JScript J# Common Language Specification. ADO.NET and XML. Base Class Library. Common Language Runtime. Operating System
P r o g r a m o z á s i n y e l v e k I I. C # E jegyzet másolata nem használható fel szabadon,az előadás anyagának kivonata. Ezen teljes jegyzetről,vagy annak bármely részéről bármely másolat készítéséhez
RészletesebbenProgramozási Paradigmák és Technikák
Programozási Paradigmák és Technikák Öröklődés Interfészek Kivételkezelés Rekurzió Eseménykezelés Programozási Paradigmák és Technikák Öröklődés Öröklődés a C# nyelvben Öröklődés feladatok Gyakorló feladatok
RészletesebbenJAVA PROGRAMOZÁS 3.ELŐADÁS
Dr. Pál László, Sapientia EMTE, Csíkszereda JAVA PROGRAMOZÁS 3.ELŐADÁS 2014-2015 tavasz Polimorfizmus, absztrakt osztályok, interfészek 2 Példa - Hengerprogram 3 Példa - Hengerprogram 4 Példa - Hengerprogram
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észletesebbenProgramozás II. labor
Programozás II. labor 1. rész Programozási tételek Öröklődés Interfészek Eseménykezelés Kivételkezelés Visszalépéses keresés Programozás II. Programozási tételek OOP alapok ismétlése Öröklődés Öröklődés
RészletesebbenProgramozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia
Öröklés ism. Programozás alapjai II. (9. ea) C++ többszörös öröklés, cast, perzisztencia Szeberényi Imre BME IIT Egy osztályból olyan újabb osztályokat származtatunk, amelyek rendelkeznek
Részletesebben117. AA Megoldó Alfréd AA 117.
Programozás alapjai 2. (inf.) pót-pótzárthelyi 2011.05.26. gyak. hiányzás: kzhpont: MEG123 IB.028/117. NZH:0 PZH:n Minden beadandó megoldását a feladatlapra, a feladat után írja! A megoldások során feltételezheti,
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észletesebbenC# Nyelvi Elemei. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei / 18
C# Nyelvi Elemei Tóth Zsolt Miskolci Egyetem 2013 Tóth Zsolt (Miskolci Egyetem) C# Nyelvi Elemei 2013 1 / 18 Tartalomjegyzék 1 Object 2 Típusok 3 String 4 RegEx Tóth Zsolt (Miskolci Egyetem) C# Nyelvi
RészletesebbenObjektumorientált programozás C# nyelven III.
Objektumorientált programozás C# nyelven III. Kivételkezelés Tulajdonságok Feladatok Készítette: Miklós Árpád Dr. Kotsis Domokos Hallgatói tájékoztató A jelen bemutatóban található adatok, tudnivalók és
RészletesebbenINFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek középszint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK KÖZÉPSZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM
RészletesebbenProgramozás I. Metódusok C#-ban Egyszerű programozási tételek. Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu
Programozás I. 3. előadás Tömbök a C#-ban Metódusok C#-ban Egyszerű programozási tételek Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Szoftvertechnológia
RészletesebbenC#, OOP. Osztályok tervezése C#-ban
C#, OOP Osztályok tervezése C#-ban OOP Létrehozás (creating) Megszüntetés (destroying) Túlterhelés (overlading) Felsorolás típus (enumerated types) 2 Hajó osztály Sailboat class using System; class Sailboat
RészletesebbenEmlékeztető: a fordítás lépései. Szimbólumtábla-kezelés. Információáramlás. Információáramlás. Információáramlás.
Emlékeztető: a fordítás lépései Forrás-kezelő (source handler) Szimbólumtábla-kezelés Fordítóprogramok előadás (A, C, T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus elemző
RészletesebbenPHP5 Új generáció (2. rész)
PHP5 Új generáció (2. rész)...avagy hogyan használjuk okosan az osztályokat és objektumokat PHP 5-ben. Cikksorozatom elõzõ részében képet kaphattunk arról, hogy valójában mik is azok az objektumok, milyen
Részletesebben.NET Microsoft.Net Framework
1.oldal.NET Microsoft.Net Framework Előadás jegyzet Előadó: Pócza Krisztián ELTE,2008.NET Framework alapjai Hasznos tudnivalók A jegyzet Pócza Krisztián.NET Framework és Programozása I. című előadása alapján
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é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észletesebben3. Gyakorlat Ismerkedés a Java nyelvvel
3. Gyakorlat Ismerkedés a Java nyelvvel Parancssori argumentumok Minden Java programnak adhatunk indításkor paraméterek, ezeket a program egy tömbben tárolja. public static void main( String[] args ) Az
RészletesebbenSzámítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás
Számítástechnika II. BMEKOKAA153 1. Előadás Dr. Bécsi Tamás Bemutatkozás Előadó: Dr. Bécsi Tamás St.106, (1)463-1044, becsi.tamas@mail.bme.hu Közlekedés-, és Járműirányítási Tanszék www.kjit.bme.hu A tantárgyi
RészletesebbenBevezetés a programozásba 2
Bevezetés a programozásba 2 7. Előadás: STL konténerek, sablonok http://digitus.itk.ppke.hu/~flugi/ Vector int int main() { vector v(10); int int sum=0; for for (int i=0;i
RészletesebbenINFORMATIKAI ALAPISMERETEK
Informatikai alapismeretek emelt szint 1021 ÉRETTSÉGI VIZSGA 2011. május 13. INFORMATIKAI ALAPISMERETEK EMELT SZINTŰ ÍRÁSBELI ÉRETTSÉGI VIZSGA JAVÍTÁSI-ÉRTÉKELÉSI ÚTMUTATÓ NEMZETI ERŐFORRÁS MINISZTÉRIUM
RészletesebbenC# gyorstalpaló. Készítette: Major Péter
C# gyorstalpaló Készítette: Major Péter Adattípusok Logikai változó Egész szám (*: előjel nélküli) Lebegőponto s szám Típus Típusnév másképpen (egyenértékű) Helyigény (bit) Példa bool Boolean 8 (!) true,
RészletesebbenBevezetés a Programozásba II 11. előadás. Adatszerkezetek megvalósítása. Adatszerkezetek megvalósítása Adatszerkezetek
Pázmány Péter Katolikus Egyetem Információs Technológiai és Bionikai Kar Bevezetés a Programozásba II 11. előadás 2014.05.12. Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Adatszerkezetek
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észletesebbenWebes alkalmazások fejlesztése 8. előadás. Webszolgáltatások megvalósítása (ASP.NET WebAPI)
Eötvös Loránd Tudományegyetem Informatikai Kar Webes alkalmazások fejlesztése 8. előadás (ASP.NET WebAPI) 2016 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto A webszolgáltatás
RészletesebbenVizuális és eseményvezérelt programozás BMF NIK
Vizuális és eseményvezérelt programozás BMF NIK A.NET keretrendszer Definíció Vázlatos felépítés A köztes nyelv és a.net futtatókörnyezet Menet közbeni fordítás és optimalizálás Egységes típusrendszer
RészletesebbenA C# PROGRAMOZÁSI NYELV
A C# PROGRAMOZÁSI NYELV 2010.02.23. Bevezetés C# nyelv jellemzői 2 Kis és NAGY betű érzékeny Minden utasítást pontos vessző zár. Utasítás zárójel a:,. .NET Framework keretrendszerek 3 Microsoft.NET Framework
RészletesebbenEseményvezérelt alkalmazások fejlesztése II 1. előadás. A.NET keretrendszer és a C# programozási nyelv. A.NET keretrendszer Eredete
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 1. előadás és a C# programozási nyelv 2015 Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto
Részletesebben1.1 Szakdolgozat témája... 2. 1.2 A Program célja... 2. 1.4 A használt technológiák ismertetése... 2. 2 A program megtervezése...
1 Bevezető... 2 1.1 Szakdolgozat témája... 2 1.2 A Program célja... 2 1.3 Fejlesztői környezet... 2 1.4 A használt technológiák ismertetése... 2 2 A program megtervezése... 4 2.1 Az ablak kinézetének megtervezése:...
RészletesebbenAccess adatbázis elérése OLE DB-n keresztül
Access adatbázis elérése OLE DB-n keresztül Készítsünk egy grafikus felülető alkalmazást, ami lehetıvé teszi egy Access adatbázisban tárolt hallgatói adatok (EHA, Név, e-mail cím) lekérdezését (összes
RészletesebbenII. Programozási technológiák
II. Programozási technológiák 1 II.1 A gépi kódú program Az algoritmuslépések kódja + memória címek. II.2 Programkészítő programok MOV AX,1234h ;0B8h 34h 12h - szám (1234h) az AX reg.-be MUL WORD PTR [5678h]
RészletesebbenProgramozá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
RészletesebbenPál László. Sapientia EMTE, Csíkszereda, 2014/2015
Objektumorientált programozás Pál László Sapientia EMTE, Csíkszereda, 2014/2015 2. ELİADÁS Visual Basic bevezetı Visual Basic.NET nyelvi elemek 2 Visual Basic.NET programozási nyelv Nyelvi elemek: Általában
RészletesebbenProgramozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.
Programozás III CSOMAGOK Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek. A Java is csomagok halmaza: csomagokban van a fejlesztő környezet és az osztálykönyvtárak is: rt.jar fájl
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észletesebbenProgramozási nyelvek Java
Objektum-orientált szemlélet - Egységbe zárás (incapsulation) - Információ elrejtés - Öröklődés altípusosság dinamikus kötés Öröklődés Programozási nyelvek Java - kiterjesztem, kibővítem, megváltoztatom
RészletesebbenC# feladatok gyűjteménye
C# feladatok gyűjteménye Készítette: Fehérvári Károly I6YF6E Informatika tanár ma levelező tagozat 1) Feladat: ALAPMŰVELETEK Készítsünk programot, amely bekér két egész számot. Majd kiszámolja a két szám
RészletesebbenEntity Framework alapú adatbáziselérés
Entity Framework alapú adatbáziselérés Dr. Johanyák Zsolt Csaba http://johanyak.hu A gyakorlat célja Model-first megközelítéssel Entity-Framework modell létrehozása, majd ebből adatbázis generálása LocalDB-ben.
RészletesebbenPHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19
PHP II. WEB technológiák Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) PHP II. 2014 1 / 19 Tartalomjegyzék Objektum Orientált Programozás 1 Objektum Orientált Programozás Öröklődés 2 Fájlkezelés
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észletesebbenHelyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?
A "java Villa -v" parancs jelentése: A java interpreter elindítja a Villa osztály statikus main metódusát, és átadja neki paraméterként a "-v" stringet. A java interpreter elindítja először a Villa osztály
RészletesebbenAlkalmazott 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
RészletesebbenEseményvezérelt alkalmazások fejlesztése II 12. előadás. Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto
Eötvös Loránd Tudományegyetem Informatikai Kar Eseményvezérelt alkalmazások fejlesztése II 12. előadás Objektumrelációs adatkezelés (ADO.NET) Giachetta Roberto A jegyzet az ELTE Informatikai Karának 2014.
RészletesebbenRIA Rich Internet Application
Áttekintés RIA Rich Internet Application Komplex felhasználói felülettel rendelkező web-alkalmazások Bevezető Flex áttekintés ActionScript Felhasználói felület tervezése Események Szerver oldali szolgáltatásokkal
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é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észletesebbenOAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1.
OAF Gregorics Tibor: Minta dokumentáció a 3. házi feladathoz 1. Feladat Szimuláljuk különféle élőlények túlélési versenyét. A lények egy pályán haladnak végig, ahol váltakozó viszonyok vannak. Egy lénynek
RészletesebbenA.NET Framework és programozása C# nyelven. Kedd 16-17 30 I104
A.NET Framework és programozása C# nyelven Kedd 16-17 30 I104 Feltételek I104 Visual Studio 2013 Letölthető http://msdn.mik.uni-pannon.hu oldalról Aki saját gépet hoz, annak javasolt a legújabb verzió
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észletesebbenBevezetés a C++ programozási nyelvbe
Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C++ programozási nyelvbe Oktatási segédlet Összeállította: Ficsor Lajos 2001. 1. A C++ programozási nyelv története A C++ programozási nyelv
RészletesebbenProgramozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char
RészletesebbenBá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
RészletesebbenA hierarchikus adatbázis struktúra jellemzői
A hierarchikus adatbázis struktúra jellemzői Az első adatbázis-kezelő rendszerek a hierarchikus modellen alapultak. Ennek az volt a magyarázata, hogy az élet sok területén első közelítésben elég jól lehet
RészletesebbenSTL. Algoritmus. Iterátor. Tároló. Elsődleges komponensek: Tárolók Algoritmusok Bejárók
STL Elsődleges komponensek: Tárolók Algoritmusok Bejárók Másodlagos komponensek: Függvény objektumok Adapterek Allokátorok (helyfoglalók) Tulajdonságok Tárolók: Vektor (vector) Lista (list) Halmaz (set)
RészletesebbenC# versus Java. Óbudai Egyetem, Java Standard Edition Mérnök Informatikus szak, BSc Labor 3. Bedők Dávid v0.4
C# versus Java Óbudai Egyetem, Java Standard Edition Mérnök Informatikus szak, BSc Labor 3 Bedők Dávid 2016.10.01. v0.4 Azonosságok I. Curly-bracket nyelvek ({}) C, C++, PHP, JavaScript, stb.) ProgrammingTheorem
Részletesebben15. Programok fordítása és végrehajtása
15. Programok fordítása és végrehajtása Programok fordítása és végrehajtása. (Fordítás és interpretálás, bytecode. Előfordító, fordító, szerkesztő. A make. Fordítási egység, könyvtárak. Szintaktikus és
RészletesebbenA.NET keretrendszer (.NET Framework) három alapvetõ összetevõbõl áll:
Bevezetés Üdvözöljük a C# adatbázis-programozás mesteri szinten tanfolyamán! Amint az Olvasó bizonyára tudja, a technológiai forradalom következõ lépcsõje elkerülhetetlenül a.net felület lesz. A.NET erõssége,
RészletesebbenInformációs Technológia
Információs Technológia (Struktúra, mutatók, függvényhívás) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 október 14/21. Struktúra
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é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észletesebbenInformációs Technológia
Információs Technológia A C programozási nyelv (Típusok és operátorok) Fodor Attila Pannon Egyetem Műszaki Informatika Kar Villamosmérnöki és Információs Rendszerek Tanszék foa@almos.vein.hu 2010 szeptember
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é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. február 25. Osztályok C++ osztályok Bevezetés Objektum-orientáltság
RészletesebbenBevezetés a C++ programozásba
Bevezetés a C++ programozásba A program fogalma: A program nem más, mint számítógép által végrehajtható utasítások sorozata. A számítógépes programokat különféle programnyelveken írhatjuk. Ilyen nyelvek
RészletesebbenDelegátumok C#-ban Krizsán Zoltán iit
Krizsán Zoltán Események kezelése Nem kell vizuális felületnek letnek lennie. segíts tségével valósíthatja meg a.net. 2 Típusos fv.. pointer Biztonságos kódkk dkészítés s miatt tiltott a pointer aritmetika
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észletesebbenKészítette: Nagy Tibor István
Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke
RészletesebbenIsmerjük meg a Monót!
Ismerjük meg a Monót! A Mono haszna például abban áll, hogy segítségével a Linux képessé válik a Microsoft.NET rendszerével való munkára. Amennyiben írtunk már valaha Linux-munkafelületen futtatható programot,
Részletesebben2011.11.29. JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése
Tartalom Integrált fejlesztés Java platformon JUnit JUnit használata Tesztelési technikák Demo 2 A specifikáció alapján teszteljük a program egyes részeit, klasszikus V-modell szerint Minden olyan metódust,
RészletesebbenSzoftverprototípus készítése. Szoftverprototípus készítése. Szoftverprototípus készítése 2011.10.23.
Szoftverprototípus készítése Dr. Mileff Péter A prototípus fogalma: a szoftverrendszer kezdeti verziója Mi a célja? Arra használják, hogy bemutassák a koncepciókat, kipróbálják a tervezési opciókat, jobban
RészletesebbenGenerikus 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
Részletesebbenstrings.xml res/values/strings.xml fájlban hozzuk létre a hiányzó string adatforrásainkat A jelenlegi helyett ez álljon: <resources> <string
Resource Objects Adatforrás elemeket hivatkozás (referencia, mutató) segítségével használhatunk, ezek karakterláncok (stringek), képek, azonosítók vagy akár fájlok is lehetnek A mappastruktúra egységesen
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észletesebbenSzámítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás
Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás 2. előadás Console I/O bővebben Lásd mintaprogram 2015.09.21. Számítástechnika I. 2. Előadás 2 Számábrázolásról
RészletesebbenC# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán
C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán C# feladatgyűjtemény Kovács Emőd, Radványi Tibor, Király Roland, Hernyák Zoltán Publication date 2011 A tananyag a TÁMOP-4.1.2-08/1/A-2009-0046
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é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észletesebbenWCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens
WCF, Entity Framework, ASP.NET, WPF 1. WCF service-t (adatbázissal Entity Framework) 2. ASP.NET kliens 3. WPF kliens Hozzunk létre egy ASP.NET Empty Web Site projektet! A projekt neve legyen WCFAPP1. Ez
RészletesebbenKalapácsvetés 2016 szöveges
Kalapácsvetés 2016 Ebben a feladatban a 2016. évi nyári olimpiai játékokon az atlétika férfi kalapácsvetés döntőjének eredményeit kell feldolgoznia. A döntő 6 dobási sorozatból állt, de a 3. sorozat után
RészletesebbenA PROGAMOZÁS ALAPJAI 1. Függvény mint függvény paramétere. Függvény mint függvény paramétere. Függvény mint függvény paramétere
2012. április 10. A PROGAMOZÁS ALAPJAI 1 Vitéz András egyetemi adjunktus BME Híradástechnikai Tanszék vitez@hit.bme.hu Miről lesz ma szó? alaki szabályok használata - mintapélda használata - mintapélda
Részletesebben1. Az adatbázis fogalma, fontosabb összetevÿi, felhasználási módjai
4. tétel Az egyed-kapcsolat modell 1. Az adatbázis fogalma, fontosabb összetevÿi, felhasználási módjai 1.1. Adatbáziskezelÿ rendszer (DBMS - DataBase Management System) A DBMS komplex SW-HW rendszer, mely
RészletesebbenSzervlet-JSP együttműködés
Java programozási nyelv 2007-2008/ősz 10. óra Szervlet-JSP együttműködés Kérés továbbítás technikái legradi.gabor@nik.bmf.hu szenasi.sandor@nik.bmf.hu Szervlet-JSP együttműködés Témakörök Osztálykönyvtár
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észletesebbenAlkalmazott modul: Programozás
Eötvös Loránd Tudományegyetem Informatikai Kar Alkalmazott modul: Programozás Feladatgyűjtemény Összeállította: Giachetta Roberto groberto@inf.elte.hu http://people.inf.elte.hu/groberto Frissítve: 2015.
RészletesebbenProgramozás 3. Dr. Iványi Péter
Programozás 3. Dr. Iványi Péter 1 Egy operandus művelet operandus operandus művelet Operátorok Két operandus operandus1 művelet operandus2 2 Aritmetikai műveletek + : összeadás -: kivonás * : szorzás /
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észletesebbenWebszolgáltatások kommunikációs overhead-jének becslése
Webszolgáltatások kommunikációs overhead-jének becslése Simon Balázs, sbalazs@iit.bme.hu Dr. Goldschmidt Balázs, balage@iit.bme.hu Dr. Kondorosi Károly, kondor@iit.bme.hu Budapesti Műszaki Egyetem, Irányítástechnika
Részletesebben