Bánsághi Anna
|
|
- Géza Fülöp
- 8 évvel ezelőtt
- Látták:
Átírás
1 ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna 2. ELŐADÁS - C# ÁTTEKINTÉS Bánsághi Anna 1 of 64
2 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 64
3 I. C# ÁTTEKINTÉS 1. Szoftver keretrendszer 2. A C# lényegi elemei 3. A C# program 4. Érték- és referencia típusok 5. Típuskonstrukciók Változók, paraméterek Utasítások, kifejezések, operátorok Generikusok Kivételkezelés Attribútumok XML dokumentáció 2015 Bánsághi Anna 3 of 64
4 6. VÁLTOZÓK, PARAMÉTEREK változók, konstansok statikus mező példány mező tömb eleme paraméterek érték paraméter referencia paraméter kimenő paraméter lokális paraméter 2015 Bánsághi Anna 4 of 64
5 VÁLTOZÓ FAJTÁK statikus változó vagy statikus mező, mely létrejön, amikor az alkalmazás tartomány is, a statikus konstruktorok előtt példány változó vagy mező, akkor jön létre, amikor az objektum példányosul (class esetén), vagy amikor a változó deklarálódik (struct esetén) tömb elem a tömb létrehozásával egy időben jön létre 2015 Bánsághi Anna 5 of 64
6 VÁLTOZÓ JELLEMZŐK a változó egy memóriatartalmat reprezentál minden változónak van típusa, ami meghatározza, hogy milyen típusú érték tárolható abban a változóban egy változó típusa nem változtatható meg, míg az értéke igen a változó értékéhez való hozzáférés előtt definiálni kell azt automatikusan alapértelmezett értéket kap, az értéktípusok az alapértelmezett konstruktorban beállított értéket, míg a referencia típusok null-t 2015 Bánsághi Anna 6 of 64
7 PARAMÉTER FAJTÁK érték paraméter metódus hívásakor jön létre, klónozódik az aktuális paraméter értéke referencia paraméter metódus hívásakor egy új referenciát állít az aktuális paraméterre, nem jön létre új objektum kimenő paraméter metódus hívásakor egy új referenciát állít az aktuális paraméterre, nem jön létre új objektum lokális paraméter blokkban jön létre, és a blokk végéig él 2015 Bánsághi Anna 7 of 64
8 VÁLTOZÓK ÉS PARAMÉTEREK class A { public static int x; // x statikus változó private int y; // y példány változó // a érték paraméter // b referencia paraméter // c kimenő paraméter void F( int[] v, int a, ref int b, out int c ) { // i lokális változó int i = v[0]; // v[0] tömb elem c = a + b++; 2015 Bánsághi Anna 8 of 64
9 VÁLTOZÓK, PARAMÉTEREK DEKLARÁLÁSA class A { void F() { // fordítási időben explicite meghatározott x típusa int x = 12; // fordítási időben implicite meghatározott y típusa var y = new int(); // a C# statikusan típusos nyelv, de a dinamikusnak deklarált változók, // paraméterek vagy objektumok típusa futási időben lesz meghatározva dynamic z = 12; 2015 Bánsághi Anna 9 of 64
10 7. UTASÍTÁSOK, KIFEJEZÉSEK, OPERÁ TOROK utasítás a program által végrehajtott tevékenység kifejezés operátorok és operandusok kiértékelendő sorozata operátor egy vagy több operandusú művelet névtelen függvény egy vagy több operandusú, helyben kifejtett művelet túlterhelhető operátor felhasználói típusokban túlterhelt statikus operátor konverziós operátor adott típusú objektum konvertálása más típusú objektummá 2015 Bánsághi Anna 10 of 64
11 UTASÍTÁSOK általános tevékenységek, úm. változó deklarálás, értékadás, metódushívás, gyűjteményeken való végiglépdelés, feltételtől függő elágazás az utasítások végrehajtási sorrendjét hívjuk vezérlési folyamnak, mely a program különböző bemenő paraméterekkel való futtatásai esetén más és más lehet egysoros utasítás végén blokk utasítás áll egyetlen kódsorból pontosvesszővel a egysoros utasítások szekvenciája 2015 Bánsághi Anna 11 of 64
12 üres kifejezés rendelése feltételes switch) UTASÍTÁS FAJTÁK 1. nem csinál semmit, egyetlen pontosvesszőből áll deklarációs új változó vagy konstans deklarálása egy kifejezés által kiszámított érték változóhoz feltételtől függően végrehajtandó kódrészlet (if, iterációs ugyanazon kódrészlet ismételt végrehajtása valamely feltétel fennállásáig (while, do, for, foreach) ugró vezérlésátadó utasítások (break, continue, default, goto, return, yield) kivételkezelő futási időben felmerülő rendkívüli események kezelésére (try-catch-finally, throw) 2015 Bánsághi Anna 12 of 64
13 checked/unchecked pár await UTASÍTÁS FAJTÁK 2. az egészek túlcsordulását ellenőrző utasítás aszinkron metódusokban a végrehajtás felfüggesztésére yield return nagy adatfolyamok bejárására, egyszerre csak egy adat van a memóriában fixed lock a memóriában áthelyezhetetlen változó jelölésére több szálú program esetén objektumok zárolására cimkézett azonosítóval ellátott blokk, melyre egy goto utasítással adjuk át a vezérlést using erőforrások megnyitására, hozzáférésére, bezárására 2015 Bánsághi Anna 13 of 64
14 UTASÍTÁS JELLEMZŐI beillesztett utasítás a feltételes vagy iterációs utasítások után mindig van egy egysoros utasítás vagy egy blokk illesztmény beágyazott utasítás a blokk utasítások egymásba ágyazhatók elérhetetlen utasítás a vezérlési folyamba soha nem kerülő utasítás, a fordító figyelmeztet, ha ilyennel találkozik 2015 Bánsághi Anna 14 of 64
15 KIFEJEZÉSEK egy kifejezés kiértékelés után értéket, objektumot, metódust vagy névteret eredményez kifejezés tartalmazhat literálokat, metódushívásokat, operátorokat és azok operandusait, valamint neveket (változónevet, típus tagot, metódus paramétert, névteret, típust) x + y new Osztaly() // numerikus értéket eredményez // az új példányra való referenciát eredményez objektum.tostring() // string típusú értéket eredményez 2015 Bánsághi Anna 15 of 64
16 KIFEJEZÉS FAJTÁK metódushívás a metódus nevével és paramétereivel hívható, void visszatérési típusú metódus nem használható kifejezésben lekérdezés lambda kifejezésfa LINQ adatbázislekérdezések névtelen függvény hívások a kifejezéseket fa adatszerkezetben adjuk meg 2015 Bánsághi Anna 16 of 64
17 OPERÁTOROK unáris egy operandusú operátorok: ++, new bináris két operandusú operátorok: =, + ternáris egyetlen három operandusú operátor a?: 2015 Bánsághi Anna 17 of 64
18 OPERÁTOROK JELLEMZŐI egy kifejezés több részkifejezésből állhat, és az operátorokat tartalmazó részkifejezések kiértékelési sorrendjét meghatározza három szabály: 1. a nyelv által definiált operátor precedencia azonos precedenciájú operátorok esetén a (bal vagy jobb) asszociativitási szabály és a zárójelezés, mely felülírja az előző két szabály szerinti kiértékelési sorrendet 2015 Bánsághi Anna 18 of 64
19 NÉVTELEN FÜGGVÉNYEK ahol delegáltak használhatók, ott használhatók helyben kifejtett utasítások vagy helyben kifejtett kifejezések lambda kifejezések delegáltak vagy kifejezésfák létrehozására. Lokális függvények, melyek paraméterként átadhatók vagy függvényhívás visszatérő értéke lehet névtelen metódusok létrehozására delegáltak vagy névtelen függvények 2015 Bánsághi Anna 19 of 64
20 LAMBDA KIFEJEZÉSEK a lambda operátor => baloldalán felsoroljuk a kifejezés bemenő paramétereit, a jobboldalán pedig a kifejezést vagy utasítás blokkot delegate int Delegalt( int i ); // delegált típus deklaráció static void Main(string[] args) { Delegalt delegalt = x => x * x; // az x paraméter négyzete int j = delegalt(5); // j = 25 using System.Linq.Expressions; delegate int Delegalt( int i ); // delegált típus deklaráció static void Main() { Expression<Delegalt> kifejezesfa = x => x * x; 2015 Bánsághi Anna 20 of 64
21 KIFEJEZÉS LAMBDÁK amikor a lambda operátor jobboldalán kifejezést használunk a kifejezés lambda a jobboldálan álló kiértékelt kifejezés eredményével tér vissza (bemenő paraméterek) => kifejezés x => x * x (x, y) => x == y // aritmetikai kifejezés // értékadó kifejezés (int x, string s) => s.length > x // a paraméterek típusa explicite megadott () => Metódus() // paraméter nélküli kifejezés lambda 2015 Bánsághi Anna 21 of 64
22 UTASÍTÁS LAMBDÁK amikor a lambda operátor jobboldalán egy utasítás blokkot használunk a blokkban található utasítások hajtódnak végre (bemenő paraméterek) => { utasítás blokk n => { Console.WriteLine( n ); n => { Console.WriteLine( n ); return n; n => { string s = "Kiírva: " + n + "!"; Console.WriteLine( s ); 2015 Bánsághi Anna 22 of 64
23 BEÉPÍTETT LEKÉRDEZŐ OPERÁTOROK számtalan beépített lekérdező operátor használja a Func<T, TResult> típusú generikus delegáltak valamelyikét: using System.Linq; int[] számok = { 5, 4, 1, 3, 9, 8, 6, 7, 2, 0 ; // a Count metódus a fenti generikus egy példányát várja: Func<int, bool> int páratlanokszáma = számok.count( n => n % 2 == 1 ); // a Where metódus példánya: Func<int, bool> var párosak = számok.where( n => n % 2 == 0 ); // a TakeWhile metódus példánya: Func<int, bool> var hatnálkisebbek = számok.takewhile( n => n < 6 ); foreach( var szám in hatnálkisebbek ) { Console.WriteLine( szám ); // Bánsághi Anna 23 of 64
24 using System; using System.Collections.Generic; using System.Linq; class PontTeszt { 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)); // az OrderBy metódus példánya: Func<Pont, Pont> var yszerintrendezett = pontok.orderby( p => p.y ); foreach( var pont in yszerintrendezett ) { Console.WriteLine( pont ); // (1,1) (1,2) (2,3) // az Average metódus példánya: Func<Pont, double> var atlag = pontok.average( p => ( p.x + p.y ) / 2 ); // Bánsághi Anna 24 of 64
25 NÉVTELEN METÓDUSOK a delegate kulcsszóval hozunk létre helyben kifejtett névtelen metódusokat delegate( formális paraméterek listája ) { utasítás blokk a lambda kifejezések kiszorították a névtelen metódusokat, leegyszerűsítve a névtelen metódusok szintaxisát (formális paraméterek listája) => kifejezés (formális paraméterek listája) => { utasítás blokk 2015 Bánsághi Anna 25 of 64
26 TÚLTERHELHETŐ OPERÁTOROK a felhasználói típusokban felüldefiniálható számos operátor mindig statikusnak kell lennie public static Pont operator + ( Pont p1, Pont p2 ) párban kell implementálni az összehasonlító operátorokat: == és!= a relációs operátorokat: < és > a relációs operátorokat: <= és >= 2015 Bánsághi Anna 26 of 64
27 class Pont { public double X { get; set; public double Y { get; set; public Pont() {... public Pont( double x, double y ) {... public static Pont operator + ( Pont p1, Pont p2 ) { // túlterhelt + operátor return new Pont( p1.x + p2.x, p1.y + p2.y ); public override string ToString() { return "(" + this.x.tostring() + "," + this.y.tostring() + ")"; List<Pont> pontok = new List<Pont>() { new Pont(1, 2), new Pont(2, 3), new Pont(1, 1) ; Pont ujpont = new Pont(); foreach( var pont in pontok ) { ujpont = ujpont + pont; // összeadunk két pontot 2015 Bánsághi Anna 27 of 64
28 KONVERZIÓS OPERÁTOROK két osztály vagy rekord közötti konverzió mindig statikusnak kell lennie class Pont_2D { // a konverziót explicite meg kell hívnunk public static explicit operator Pont_2D( Pont_3D pont_3d ) { return new Pont_2D( pont_3d.x, pont_3d.y ); class Pont_3D { // a konverzió automatikusan végrehajtódik, amikor szükséges public static implicit operator Pont_3D( Pont_2D pont_2d ) { return new Pont_3D( pont_2d.x, pont_2d.y, 0 ); 2015 Bánsághi Anna 28 of 64
29 class PontTeszt { static void Main() { Pont_2D pont_2d = new Pont_2D( 1, 2 ); Pont_3D pont_3d = new Pont_3D( 3, 4, 5 ); Console.WriteLine( pont_2d + pont_3d ); // Pont_3D-beli implicit konverzió // Pont_2D ujpont_2d = pont_3d; // fordítási hiba Pont_2D ujpont_2d = (Pont_2D)pont_3D; // Pont_2D-beli explicit konverzió 2015 Bánsághi Anna 29 of 64
30 8. GENERIKUSOK lényege, hogy típus is lehessen paraméter lehetőséget ad arra, hogy létrehozhassunk parametrizált típusokat, azaz olyan generikusokat, melyeknek van egy vagy több ismeretlen típus paramétere, és ezek a típus paraméterek a generikus specializálásakor lesznek konkretizálva public class Halmaz<T> {... public struct Lista<T> {... public interface ICsatorna<TElem> {... public delegate TKimenet Konvertalo<TBemenet, TKimenet>( TBemenet bemenet ); 2015 Bánsághi Anna 30 of 64
31 TERMINOLÓGIA típus paraméter a generikus deklarációban megadott egy vagy több ismeretlen típus, pl. a T a List<T>-ben típus argumentum a generikus specializálásakor megadott típus, pl. a Pont vagy az int a List<Pont>-ben, List<int>-ben konstruált típus nyílt zárt a generikus, mely kétféle lehet List<T>, használható más generikusok deklarációjában vagy megszorítás specializált List<Pont> vagy List<int> a típus paraméterre vonatkozó korlátozás 2015 Bánsághi Anna 31 of 64
32 GENERIKUSOK JELLEMZŐI növelik a kód újrafelhasználhatóságát, típusbiztosságát, teljesítményét legjellemzőbb használatuk gyűjtemény típusok létrehozása ahol csak lehet, ott a System.Collections.Generic névtérbeli osztályok használata javasolt a System.Collections-beliek helyett létrehozhatók saját generikus osztályok, interfészek, delegáltak, metódusok, események megszorítások adhatók a típus paraméterre futási időben, reflection használatával áll elő a típus paraméterre vonatkozó információ 2015 Bánsághi Anna 32 of 64
33 GENERIKUS STATIKUS METÓDUS ÉS OSZTÁLY class A { public static void Csere<T>( ref T bal, ref T jobb ) { T temp; temp = bal; bal = jobb; jobb = temp; class B<T> { public static void Csere( ref T bal, ref T jobb ) { T temp; temp = bal; bal = jobb; jobb = temp; 2015 Bánsághi Anna 33 of 64
34 GENERIKUS STATIKUS METÓDUS ÉS OSZTÁLY class Teszt { public static void Main() { char a = 'a'; char b = 'z'; System.Console.WriteLine( a + " " + b ); // a z A.Csere<char>( ref a, ref b ); // generikus statikus metódus System.Console.WriteLine( a + " " + b ); // z a B<char>.Csere( ref a, ref b ); // generikus osztály System.Console.WriteLine( a + " " + b ); // a z 2015 Bánsághi Anna 34 of 64
35 GENERIKUS PONT TÍPUS class Pont<T> { public T X { get; set; public T Y { get; set; public Pont() { this.x = this.y = default(t); // milyen alapértelmezett értéket adjunk? public Pont( T x, T y ) { this.x = x; this.y = y; public static Pont<T> operator + ( Pont<T> p1, Pont<T> p2 ) { // p1.x + p2.x kifejezés típusokkal leírva T + T alakú, // viszont a T csak futási időbn lesz meghatározva. // az + operátor nem értelmezett a T-n (hiszen az csak egy paraméter), // ezért az összeadás eredményének típusát dinamikussá konvertáljuk return new Pont<T>( (dynamic)p1.x + p2.x, (dynamic)p1.y + p2.y ); 2015 Bánsághi Anna 35 of 64
36 GENERIKUS PONT TÍPUS SPECIALIZÁLÁSA class PontTeszt { static void Main() { var diszkretpont = new Pont<int>( 1, 2 ); // típus argumentum: int var folytonospont = new Pont<double>( 1.1, 2.2 ); // típus argumentum: double Console.WriteLine( diszkretpont ); // (1,2) Console.WriteLine( folytonospont ); // (1.1,2.2) 2015 Bánsághi Anna 36 of 64
37 A TÍPUS PARAMÉTER MEGSZORÍTÁSAI megszoríthatjuk, hogy a kliens kódban milyen jellemzőkkel bíró típus paraméterekkel példányosítható a generikus where T : struct a T típus csak értéktípus lehet (struct, enum) where T : class array, delegate) where T : new() a T típus csak referencia típus lehet (class, interface, a T típusnak kell hogy legyen paraméter nélküli konstruktora where T : ősosztály where T : interfész a T típus az ősosztály leszármazottja kell legyen a T típus maga ez az interfész, vagy megvalósítja azt where T : U a T és az U típusok paraméterek úgy, hogy T leszármazottja U-nak, vagy T = U 2015 Bánsághi Anna 37 of 64
38 A DEFAULT KULCSSZÓ generikusok deklarálásakor problémát okoz, hogy milyen alapértelmezett értékeket adhatunk meg, mert fordítási időben nem ismert T konkrét típusa nem tudjuk, hogy T érték- vagy referencia típus nem tudjuk, hogyha T értéktípus, akkor vajon egyszerű vagy összetett (struct) a default kulcsszó visszatérési értéke null, ha T referencia típus 0, ha T numerikus értéktípus minden mező null vagy 0, ha T struct 2015 Bánsághi Anna 38 of 64
39 GENERIKUS PONT TÍPUS MEGSZORÍTÁSOKKAL // a T típus csak értéktípus lehet, és meg kell hogy valósítsa a felsorolt // interfészeket, ami fennáll a numerikus típusok esetén // például a System.Int32 (int) és a System.Double (double) megvalósítják // az alábbi interfészeket class Pont<T> where T : struct, IComparable, IFormattable, IConvertible, IComparable<T>, IEquatable<T> { public T X { get; set; public T Y { get; set; public Pont() { this.x = this.y = default(t); public Pont( T x, T y ) { this.x = x; this.y = y; public static Pont<T> operator + ( Pont<T> p1, Pont<T> p2 ) { return new Pont<T>( (dynamic)p1.x + p2.x, (dynamic)p1.y + p2.y ); 2015 Bánsághi Anna 39 of 64
40 9. KIVÉTELKEZELÉS a program futása során számos váratlan és kivételes szituáció következhet be hibák olyan jelenségek, melyeket a program nem tud futás közben kijavítani, ezért abnormális állapotban terminál például elfogy a memória, felforr a processzor kivételek olyan jelenségek, melyeket a program ki tud javítani futás közben, így a normális futás folytatható például tömb határán túli elemre hivatkozunk, nullával osztunk 2015 Bánsághi Anna 40 of 64
41 KIVÉTELEK KIVÁLTÁSA ÉS KEZELÉSE a kivételek futás közbeni felismerését, feldolgozását, majd a programfutás megfelelő állapotba való visszaállítását nevezzük kivételkezelésnek kivétel kiváltása kivételek úgy keletkeznek a programban, hogy egy hibához vezető utasítás végrehajtását megakadályozzuk egy kivétel dobásával kivétel kezelése a kiváltott kivételeket hagyhatjuk kezeletlenül, ekkor a program terminál, de általában nem hagyja inkonzisztens állapotban a mentett adatokat a kiváltott kivételeket kezelhetjük is, pl. felhasználónak szóló üzenettel, a kivételt kiváltó utasítások újrafuttatásával (bemeneti adatok ismételt bekérése), vagy a kivétel körülményeinek logolásával 2015 Bánsághi Anna 41 of 64
42 kivétel dobása throw kivétel figyelése try utasításokat tartalmaz KIVÉTEL DOBÁSA ÉS ELKAPÁSA kivétel elkapása, kezelése catch kódblokk definíciója kivétel létrehozása és dobása a felügyelt kódblokk, mely ellenőrzött a kivétel elkapó és -kezelő gyakori, hogy nem a közvetlenül meghívott metódus dobja a kivételt, hanem azon metódus is meghív más metódusokat, és végül a több szinttel lejjebbről dobott kivétel kezeletlenül felgyűrűzik az eredeti metódusig 2015 Bánsághi Anna 42 of 64
43 SYSTEM.EXCEPTION a kivételek is objektumok, és minden kivétel a System.Exception osztálynak vagy valamely leszármazottjának példánya csak akkor kapjunk el egy kivételt, ha azt kezeljük is a kivételdobás körülményei kinyerhetők az elkapott kivétel objektumból ha egy System.Exception típusú kivételt kapunk el, akkor azt dobjuk tovább 2015 Bánsághi Anna 43 of 64
44 TÉGLALAP OSZTÁLY class Teglalap { public double A { get; set; public double B { get; set; public Teglalap() { this.a = this.b = 10; public Teglalap( double a, double b ) { // ha a téglalap valamelyik vagy mindkét oldala 0, // akkor kivételt dobunk if( 0 == a 0 == b ) { // példányosítunk és dobunk egy kivételt egy értelmes üzenettel // amikor kiváltódik ez a kivétel, akkor a CLR a legközelebbi // kivételkezelő blokkot keresi throw new ElfajuloTeglalapException( "A téglalap oldala nem lehet 0" ); this.a = a; this.b = b; 2015 Bánsághi Anna 44 of 64
45 FELHASZNÁLÓI KIVÉTEL OSZTÁLY [Serializable()] // minden kivételnek szerializálhatónak kell lennie // származtatjuk a System.Exception ősből class ElfajuloTeglalapException : Exception { // legalább négy konstruktort kell definiálni: public ElfajuloTeglalapException() : base() { public ElfajuloTeglalapException( string message ) : base( message ) { public ElfajuloTeglalapException( string message, Exception inner ) : base( message, inner ) { // szerializációhoz definiált konstruktor protected ElfajuloTeglalapException( System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context ) { 2015 Bánsághi Anna 45 of 64
46 KLIENS KÓD - NINCS KIVÉTELKEZELÉS class Teszt { public static void Main() { var t1 = new Teglalap( 1, 2 ); var t2 = new Teglalap( 0, 2 ); var t3 = new Teglalap( 5, 5 ); Console.WriteLine( t1.kerulet() ); Console.WriteLine( t2.kerulet() ); Console.WriteLine( t3.kerulet() ); a dobott kivételt sehol sem kezeltük le, a program hibával terminál 2015 Bánsághi Anna 46 of 64
47 KLIENS KÓD - KIVÉTELKEZELÉSSEL class Teszt { public static void Main() { Teglalap t1 = null; Teglalap t2 = null; Teglalap t3 = null; try { // kivételek figyelése t1 = new Teglalap( 1, 2 ); t2 = new Teglalap( 0, 2 ); // kiváltódik a kivétel t3 = new Teglalap( 5, 5 ); // ez az utasítás már nem hajtódik végre catch( ElfajuloTeglalapException e ) { // adott típusú kivétel elkapása Console.WriteLine( e.message ); // a kivétel kezelése Console.WriteLine( t1.kerulet() ); // null.kerulet() újabb kivételt vált ki, hibával terminál a program Console.WriteLine( t2.kerulet() ); Console.WriteLine( t3.kerulet() ); 2015 Bánsághi Anna 47 of 64
48 KLIENS KÓD - KIVÉTELKEZELÉSSEL class Teszt { public static void Main() { Teglalap t1 = null; Teglalap t2 = null; Teglalap t3 = null; try { // kivételek figyelése t1 = new Teglalap( 1, 2 ); t2 = new Teglalap( 0, 2 ); // kiváltódik a kivétel t3 = new Teglalap( 5, 5 ); // ez az utasítás már nem hajtódik végre catch( ElfajuloTeglalapException e ) { // adott típusú kivétel elkapása Console.WriteLine( e.message ); // a kivétel kezelése finally { // mindig végrehajtódó ág if( t1 == null ) t1 = new Teglalap(); if( t2 == null ) t2 = new Teglalap(); if( t3 == null ) t3 = new Teglalap(); Console.WriteLine( t1.kerulet() ); Console.WriteLine( t2.kerulet() ); Console.WriteLine( t3.kerulet() ); 2015 Bánsághi Anna 48 of 64
49 KIVÉTELEK HIERARCHIÁJA osztályhierarchiát hozhatunk létre a kivételekből [Serializable()] class TeglalapException : Exception {... [Serializable()] class ErtelmetlenTeglalapException : TeglalapException {... [Serializable()] class ElfajuloTeglalapException : TeglalapException { Bánsághi Anna 49 of 64
50 KIVÉTELEK HIERARCHIÁJA az elkapó ágak sorrendje a specializáltabbtól halad az általánosabb felé az elkapó ágakból továbbdobhatjuk a kivételt class Teszt { public static void Main() { Teglalap t1 = null; try { t1 = new Teglalap( 0, 2 ); catch( ElfajuloTeglalapException e ) { Console.WriteLine( e.message ); catch( ErtelmetlenTeglalapException e ) { Console.WriteLine( e.message ); catch( TeglalapException e ) { Console.WriteLine( e.message ); throw new Exception( e.message ); 2015 Bánsághi Anna 50 of 64
51 10. ATTRIBÚTUMOK a programhoz metaadatok, deklaratív információk rendelhetők, ezeket hívjuk attribúbumoknak, melyekhez futás során a CLR reflection használatával fér hozzá beépített attribútumok a programban definiált elemeket módosítókkal dekorálhatjuk felhasználói attribútumok mi is készíthetünk saját attribútumokat a System.Attribute osztály leszármazottjaként 2015 Bánsághi Anna 51 of 64
52 BEÉPÍTETT ATTRIBÚTUMOK public class Osztaly { // hozzáférés módosító: public static void Metodus_1() {... // statikus módosító: static virtual in Metodus_2() {... // virtuális módosító: virtual // a felsorolt elemeket biteknek tekintjük, így a bit operátorok értelmezhetők [FlagsAttribute] enum Napok {... // az attribútumok neve kötelezően // az Attribute kulcsszóval végződik, [Flags] enum Napok {... // amely el is hagyható 2015 Bánsághi Anna 52 of 64
53 ATTRIBÚTUMOK HASZNÁLATA [Attribútum] [Attribútum(paraméter_1, paraméter_2)] // paraméteres attribútum [Attribútum_1, Attribútum_2] [célpont: Attribútum_lista] // attribútum lista // a célpont az a programelem, // melyre az attribútum vonatkozik 2015 Bánsághi Anna 53 of 64
54 using System.ComponentModel; class Teglalap { [DefaultValue(10)] // jelöljük az alapértelmezett értéket public double A { get; set; [DefaultValue(10)] public double B { get; set; public Teglalap() { // az új paraméter nélküli konstruktor // ciklusban végigmegyünk az osztály tulajdonságain foreach( PropertyDescriptor tl in TypeDescriptor.GetProperties( this )) { // lekérdezzük a tuladjonsághoz tartozó DefaultValue attribútumot var attributum = (DefaultValueAttribute)tl.Attributes[ typeof(defaultvalueattribute)]; // az attribútumban rögzitett értéket hozzárendeljük a tulajdonsághoz if( attributum!= null ) { tl.setvalue( this, attributum.value ); 2015 Bánsághi Anna 54 of 64
55 XML DOKUMENTÁCIÓ a C#-ban lehetőség van a dokumentációt speciális XML elemekkel bővíteni /// jelekkel bevezetve, melyek az utána következő programelemre vonatkoznak 2. a kódot a /doc opcióval fordítva, előáll az XML dokumentáció 3. az XML dokumentáció tovább konvertálható megjeleníthető web-oldalakká, például a Doxygen dokumentáció generálóval 2015 Bánsághi Anna 55 of 64
56 AZ XML DOKUMENTÁCIÓ /// <summary> /// Generikus 2-dimenziós Pont osztály</summary> /// <typeparam name="t"> /// A pont koordinátáinak típusa</typeparam> class Pont<T> { /// <summary> /// X koordináta</summary> /// <value> /// Beállítja vagy lekérdezi a Pont objektum X koordinátájának értékét<value> public T X { get; set; /// <summary> /// Y koordináta</summary> /// <value> /// Beállítja vagy lekérdezi a Pont objektum Y koordinátájának értékét<value> public T Y { get; set; 2015 Bánsághi Anna 56 of 64
57 A GENERÁLT XML FÁJL <!--?xml version="1.0"?--> <doc> <assembly> <name>evp-01-program-28</name> </assembly> <members> <member name="t:programok.pont`1"> <summary>generikus 2-dimenziós Pont osztály</summary> <typeparam name="t">a pont koordinátáinak típusa</typeparam> </member> <member name="p:programok.pont`1.x"> <summary>x koordináta</summary> <value> Beállítja vagy lekérdezi a Pont objektum X koordinátájának értékét </value> </member> <member name="p:programok.pont`1.y"> <summary>y koordináta</summary> <value> Beállítja vagy lekérdezi a Pont objektum Y koordinátájának értékét </value> </member> </members> </doc> 2015 Bánsághi Anna 57 of 64
58 EXTENSIBLE MARKUP LANGUAGE a deklaratív nyelvek családjába tartozó jelölő nyelv, szöveges és más média együttes kezeléséhez, továbbításához, megjelenítéséhez a néhány egyszerű szabállyal kódolt dokumentum mind a számítógép, mind az ember számára olvasható egy XML dokumentum Unicode karakterek halmaza a különféle típusú dokumentumok szabályhalmazát a séma definíciók rögzítik számos séma rendszer létezik az XML alapú nyelvek definiálására, és számos alkalmazás létezik, mely XML adatokat dolgoz fel 2015 Bánsághi Anna 58 of 64
59 XML ALAPFOGALMAK egy XML dokumentum két menetben kerül feldolgozásra: 1. egy XML parser elemzi és dekódolja a dokumentumot, és továbbítja az adatot az alkalmazásnak 2. az alkalmazás feldolgozza a kapott információt egy XML dokumentum két részre osztható: 1. a dokumentumra vonatkozó deklaratív információra, melyet az XML parser használhat fel 2. magára az önleíró dokumentum példányra 2015 Bánsághi Anna 59 of 64
60 DEKLARATÍV INFORMÁCIÓ <?xml version="1.0" encoding="utf-8"?> // XML szabvány verziója, kódolás DOKUMENTUM PÉLDÁNY a dokumentum példány önleíró, azaz tartalmazza mind a szerkezetét leíró jelölőket, mind a konkrét tartalmat. A jelölők < és >, vagy & és ; között helyezkednek el, minden más karakterlánc a tartalom része egy jelölő típusai: <article> </article> <line-break /> // kezdő-tag // záró-tag // üres tag 2015 Bánsághi Anna 60 of 64
61 a dokumentum logikai komponense az elem, mely vagy egy nyitótaggal kezdődik és egy záró-taggal fejeződik be, vagy egy üres tag <summary>x koordináta</summary> <line-break /> a kezdő- és üres tagok tartalmazhatnak kulcs-érték párokkal definiált attribútumokat <img src="nike.jpg" alt='pythokritos' /> // src és alt attribútumok <div class="inner greeting-box"></div> // szóközökkel elválasztott lista 2015 Bánsághi Anna 61 of 64
62 DOKUMENTUM-TÍPUS ÉS VALIDÁCIÓ a dokumentum példányokban megengedett jelölők és attribútumok halmazát, valamint az elemekre vonatkozó nyelvtani szabályokat a dokumentum-típusokban adhatjuk meg egy XML parser felhasználhatja a deklaratív információk között megadott típus információt a példány validálásához a legrégibb dokumentum-típus leíró nyelv a DTD (Document Type Definition) modernebb az XML séma, más néven az XSD (XML Schema Definition) 2015 Bánsághi Anna 62 of 64
63 DTD ÉS PÉLDÁNY <?xml version = 1.0?> <!DOCTYPE mondoka[ <!ELEMENT mondoka (versszak+)> <!ELEMENT versszak (sor+)> <!ELEMENT sor (#PCDATA)>]> <mondoka> <versszak> <sor>zsipp-zsupp, kenderzsupp</sor> <sor>ha megázik kidobjuk!</sor> <sor>zsupsz!</sor> </versszak> </mondoka> 2015 Bánsághi Anna 63 of 64
64 XML SÉMA <xs:schema xmlns:xs=" <xs:element name="mondoka"> <xs:complextype> <xs:sequence> <xs:element name="versszak" maxoccurs="unbounded" minoccurs="1"> <xs:complextype> <xs:sequence> <xs:element type="xs:string" name="sor" maxoccurs="unbounded" minoccurs="1"> </xs:element></xs:sequence> </xs:complextype> </xs:element> </xs:sequence> </xs:complextype> </xs:element> </xs:schema> 2015 Bánsághi Anna 64 of 64
C# 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észletesebbenBánsághi Anna anna.bansaghi@mamikon.net
ESEMÉNYVEZÉRELT PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 1. ELŐADÁS - C# ÁTTEKINTÉS - 1 2015 Bánsághi Anna 1 of 84 TEMATIKA I. C# ÁTTEKINTÉS II. WPF III. Modern UI 2015 Bánsághi Anna 2 of 84
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é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é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é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é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é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é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é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é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é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é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é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é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é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é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é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é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é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é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é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é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é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é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é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 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észletesebbenObjektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése
Objektum elvű alkalmazások fejlesztése Kifejezés lengyel formára hozása és kiértékelése Készítette: Gregorics Tibor Szabóné Nacsa Rozália Alakítsunk át egy infix formájú aritmetikai kifejezést postfix
Részletesebbenhiányzott szeptemberben vagy A tanuló nem hiányzott szeptemberben szöveget
Hiányzások Ebben a feladatban egy általános iskola 2017 szeptemberi hiányzásai tartalmazó szövegfájlt kell feldolgoznia. Az adatok a szeptember.csv állomány tartalmazza. Az állomány egy sorában egy tanuló
RészletesebbenBME MOGI Gépészeti informatika 4.
BME MOGI Gépészeti informatika 4. 1. feladat önálló feladatmegoldás Generáljon két 1 és 10 közötti véletlen egész számot, majd kiírja ezekre a számokra a tízes szorzótáblákat! Ha az első generált szám
RészletesebbenBME MOGI Gépészeti informatika 8.
BME MOGI Gépészeti informatika 8. 1. feladat Készítse beosztottak és vezetők munkahelyi adatait kezelő alkalmazást! A feladat megoldásához hozza létre a következő osztályokat! Beosztott osztály: adatmező
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é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 I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
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észletesebbenInformatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
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é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é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é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é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é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észletesebbenSzoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?
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észletesebben3. Határozza meg és írja ki a minta szerint, hogy a forrásállományban hány kémiai elem felfedezési adatai
Kémiai elemek felfedezése A kémiai elemek kémiailag tovább már nem bontható, egyszerű anyagok. Jelenleg 118 különböző kémiai elemet ismerünk, közüliik a Földön 94 található meg a természetben, ezeket természetes
RészletesebbenJava adattípusok Java programozás alapjai Egyszerű adattípusok (int, float) Osztályokkal objektumok Nincs külön mutató, referencia, címe operátor, helyette: objektumok csak dinamikusan hozhatok létre és
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é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észletesebbenJava IX. telkezelés a Java-ban
Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak
RészletesebbenSzerializáció. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) Szerializáció / 22
Szerializáció Tóth Zsolt Miskolci Egyetem 2014 Tóth Zsolt (Miskolci Egyetem) Szerializáció 2014 1 / 22 Tartalomjegyzék 1 Szerializációs Alapfogalmak 2 Szerializációs Megoldások Object Szerializáció XML
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észletesebbenFordított és szkript nyelvek összehasonlító elemzése. Sergyán Szabolcs
Fordított és szkript nyelvek összehasonlító elemzése Sergyán Szabolcs IEEE: The 2016 Top Programming Languages IEEE: The 2016 Top Programming Language (Enterprise) Kutatás-fejlesztésben használt nyelvek
RészletesebbenJava IX. telkezelés a Java-ban
Java IX. Kivétel telkezelés a Java-ban Krizsán Zoltán Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2005. 11. 17. Java IX. Kivételkezelés JAVA9 / 1 A kivételkezel telkezelés célja Kivételes
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észletesebbenObjektum Orientált Programozás. 11. Kivételkezelés 44/1B IT MAN
Objektum Orientált Programozás 11. Kivételkezelés 44/1B IT MAN B IT v: 2016.05.03 MAN Pici elmélet A Java kivételkezelésének célja a programfutás során keletkezett hibák kiszűrése és megfelelő kezelése.
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észletesebbenAdatbázisok* tulajdonságai
Gazdasági folyamatok térbeli elemzése 4. előadás 2010. 10. 05. Adatbázisok* tulajdonságai Rendezett, logikailag összefüggő és meghatározott szempont szerint tárolt adatok és/vagy információk halmaza Az
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é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észletesebbenBevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa
Miskolci Egyetem Általános Informatikai Tanszék Bevezetés a C programozási nyelvbe Az Általános Informatikai Tanszék C nyelvi kódolási szabványa Oktatási segédletek a levelező műszaki informatikus hallgatók
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é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é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# 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é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észletesebbenEsemények C#-ban Krizsán Zoltán iit
Krizsán Zoltán Mi az? Aszinkron törtt rténésről értesítés s egy vagy több t objektum számára. Delegátumok segíts tségével valósítja meg a C#. 2 Lehetőségek 1. Egy objektum bejelentheti érdeklődését egy
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é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é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é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észletesebben.NET alapszolgáltatások 2.
1.oldal.NET alapszolgáltatások 2. Directory-k kezelése (Példák : DirectoryDateTimeRunEnv alkalmazás) Ellenőrzés könyvtár létrehozása előtt: if (!Directory.Exists("test")) Directory.CreateDirectory("test");
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é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 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é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é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észletesebbenProgramozás II gyakorlat. 4. Öröklődés
Programozás II gyakorlat 4. Öröklődés Feladat Egy játékfejlesztő cég olyan programot fejleszt, amely nyilvántartja az alkalmazottai adatait. Tároljuk minden személy: Nevét (legfeljebb 50 karakter) Születési
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észletesebbenabkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame {
Adatkezelés JDBC-vel 1 abkezel.java import java.awt.*; import java.awt.event.*; import javax.swing.*; import java.sql.*; public class abkezel extends JFrame { private JTabbedPane jtp; private JPanel dp,
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é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észletesebbenProgramozási nyelvek Java
statikus programszerkezet Programozási nyelvek Java Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 2. előadás csomag könyvtárak könyvtárak forrásfájlok bájtkódok (.java) (.class) primitív osztály
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észletesebbenTorna. A torna.csv UTF-8 kódolású állományban soronként egy versenyző eredményeit tároljuk. Az adatokat pontosvessző választja el egymástól.
Torna A pekingi olimpián tornából hat versenyszámban mérettetik meg magukat a versenyzők. Ennek a versenynek az eredményeit kell feldolgoznia ebben a feladatban. A megoldás során vegye figyelembe a következőket:
RészletesebbenGrafikus felületek készítése 1.
Grafikus felületek készítése 1. SWT Budapes( Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Grafikus felületek fejlesztése Java grafikus toolkitek o AWT Na>v widgetek
RészletesebbenA képernyőre írást igénylő részfeladatok eredményének megjelenítése előtt írja a képernyőre a feladat sorszámát (például: 3. feladat:)!
Space Shuttle 40 Pont A Space Shuttle (magyarul űrsikló", hivatalos angol nevén: Space Transportation System, STS) az Amerikai Egyesült Államok ember szállítására is alkalmas űrprogramja volt. Feladatai
RészletesebbenElôszó a magyar kiadáshoz A Kiadó Elôszó
Elôszó a magyar kiadáshoz A C programnyelvet eredetileg a Bell Laboratóriumban az UNIX operációs rendszerhez, az alatt fejlesztették ki PDP-11_ számítógépen. A kifejlesztése óta eltelt évek során bebizonyosodott,
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észletesebbenA Jáva programozási nyelv rejtelmei
Page 1 of 20 A Jáva programozási nyelv rejtelmei Tartalomjegyzék: Az alapok Egy példaprogram A program szerkezete Változók és értékek Megjegyzések a programban A fôprogram Vezérlési szerkezetek Kivételkezelés
RészletesebbenProgramozás 5. Dr. Iványi Péter
Programozás 5. Dr. Iványi Péter 1 Struktúra Véges számú különböző típusú, logikailag összetartozó változó együttese, amelyeket az egyszerű kezelhetőség érdekében gyűjtünk össze. Rekord-nak felel meg struct
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é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észletesebbenA WEB programozása - JSP1 dr.gál Tibor. 2010. őszi félév
Általános jellemzők JavaServer Pages (JSP) Java utasításokat helyezetünk el a HTML lapon Ezket a Java utasításokat a kiszolgáló végrehajtja Az ügyfél felé generált tartalom: statikus HTML kód + Java utasítások
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észletesebbenProgramozás alapjai C nyelv 5. gyakorlat. Írjunk ki fordítva! Írjunk ki fordítva! (3)
Programozás alapjai C nyelv 5. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.17. -1- Tömbök Azonos típusú adatok tárolására. Index
RészletesebbenJava II. I A Java programozási nyelv alapelemei
Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve
Részletesebben2.3. A C nyelv utasításai
2.3. A C nyelv utasításai A C szabvány hét csoportban osztályozza a C nyelv utasításait: Csoport Kulcsszavak, ill. jelölések Kifejezés utasítás Üres utasítás: ; Összetett utasítás: } Szelekciós utasítások:
RészletesebbenBánsághi Anna 2014 Bánsághi Anna 1 of 68
IMPERATÍV PROGRAMOZÁS Bánsághi Anna anna.bansaghi@mamikon.net 3. ELŐADÁS - PROGRAMOZÁSI TÉTELEK 2014 Bánsághi Anna 1 of 68 TEMATIKA I. ALAPFOGALMAK, TUDOMÁNYTÖRTÉNET II. IMPERATÍV PROGRAMOZÁS Imperatív
Részletesebben