C# tagfüggvények.

Slides:



Advertisements
Hasonló előadás
C# nyelvi áttekintő A „Programozás C# nyelven (Illés Zoltán)”
Advertisements

Osztály leszármaztatás
Krizsán Zoltán iit 1.1.  Aszinkron történésről értesítés egy vagy több objektum számára.  Delegátumok segítségével valósítja meg a C#.  event típus,
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Öröklődés 2..
© Kozsik Tamás Beágyazott osztályok A blokkstrukturáltság támogatása –Eddig: egymásba ágyazható blokk utasítások Osztálydefiníciók is egymásba.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Csala Péter ANDN #4. 2 Tartalom  C# - ban előre definiált típusok  Változók  Változókkal műveletek  Elágazás  Ciklus.
Bevezetés a Java programozásba
Bevezetés a Java programozásba
Öröklődés Polimorfizmus Csomagok Absztrakt osztályok, interfészek
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
Abstract osztályok és interface-ek Beolvasás és kiíratás 7. gyakorlat.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 5. Gyakorlat Öröklődés, virtuális függvények,
Programozás II. 3. Gyakorlat C++ alapok.
UNIVERSITY OF SZEGED D epartment of Software Engineering UNIVERSITAS SCIENTIARUM SZEGEDIENSIS Programozás II. 6. Gyakorlat const, static, dinamikus 2D.
Követelmények Bevezetés a Javába Első java program írása Dokumentációk
Tömbök ismétlés Osztályok Java-ban Garbage collection
Az objektum-orientált tervezési alapelvek kritikai vizsgálata
A Java programozási nyelvSoós Sándor 1/17 Java programozási nyelv 4. rész – Osztályok II. Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai.
Java programozási nyelv 3. rész – Osztályok I.
A C++ programozási nyelvSoós Sándor 1/10 C++ programozási nyelv Gyakorlat - 5. hét Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet.
Java programozási nyelv 5. rész – Osztályok III.
C# Alapok Krizsán Zoltán.
C# tagfüggvények.
C# osztályok Krizsán Zoltán 1.0.
C# osztályok Krizsán Zoltán 1.1.
Krizsán Zoltán iit 1.2.  Nem kell vizuális felületnek lennie.  Delegátumok segítségével valósíthatja meg a.NET. Krizsán Zoltán iit Delegátumok C#-ban2.
Ficsor Lajos Template-ek CPP8/ 1 Template-ek. Ficsor Lajos Template-ek CPP8/ 2 A template fogalma Kiindulási probléma: tetszőleges típusokon kellene ugyanolyan.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Hernyák Zoltán Programozási Nyelvek II.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Javascript Microsoft által készített kiegészítése Statikus típusosság Nagy projektek Windows 8 fejlesztésénél WinRT egy részét ebben írták Nyílt forráskódú,
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
Java programozási nyelv Metódusok
Java programozási nyelv Adatbekérés konzolról
Generics Krizsán Zoltán. Bemutató A.NET 2.0 verziótól. A.NET 2.0 verziótól. Típusparaméter Típusparaméter Más nyelvben ez a template (sablon). Más nyelvben.
Objektum orientált programozás 3. Függvények Nagy Szilvia.
Objektum orientált programozás
1 Objektum orientált programozás Struktúrák és objektumok gyakorlat Nagy Szilvia.
1 Objektum orientált programozás Öröklődés: többszörös öröklődés, konstruktorok, destruktorok, overloading Nagy Szilvia.
Programozás III OOP ALAPOK.
Programozás III KOLLEKCIÓK.
Függvények a C nyelvben 1 Függvényeket a következő esetekben szokás írni: Ha ugyanazt a tevékenységet többször is el kell végeznünk ugyanolyan típusú,
Ficsor Lajos A C++ programozási nyelv I. CPP1/ 1 Osztály és objektum fogalma.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 1. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 5. gyakorlat.
Ficsor Lajos Objektumok inicializálása CPP4 / 1 Objektumok inicializálása Ficsor Lajos Miskolci Egyetem Általános Informatikai Tanszék.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 6. gyakorlat.
1Szegedi Tudományegyetem Természettudományi és Informatikai KarAntal Gábor Programozás I. 4. gyakorlat.
V 1.0 Programozás I. Osztályok, objektumok 1 ÓE-NIK-AII, 2014.
TÁMOP /1-2F JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam Osztályok, objektumok definiálása és alkalmazása. Saját.
Krizsán Zoltán, iit C# osztályok 2 Adattagok  Osztály hatáskörben definiált változó.  Formája: [attribútum] [módosító] típus azonosító [=kezdő érték][,
a programegységek között
A C++ programozási nyelv
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
String osztály létrehozása
Öröklődés Objektumok közötti speciális kapcsolat.
Feladat Készítsünk programot, amely ciklikusan egy egyenest forgat 8 fokonként, mialatt 3 db vektort mozgat és forgat 5, 6 ill 7 fokonként, és kijelzi.
Előadás másolata:

C# tagfüggvények

Tagfüggvény Osztályban definiált függvény C#-ban nem definiálhatunk globális függvényt! Formája: [attribútum] [módosítók] visszatérési_érték fvnév([paraméterszignatúra]){ } Egy módosító csak egyszer szerepelhet. Kölcsönösen kizárják egymást: static, virtual, override Kölcsönösen kizárják egymást: new, override Krizsán Zoltán, iit C# osztályok 2

Tagfüggvény változó hosszúságú paraméterlista class OpenEnded{      public void Foo( params object[] pp ){          for (int i = 0 ;  i < pp.GetLength(0) ;  i++){              Console.WriteLine(pp[i]);          }      } class TestVarArgs{      static void Main(string[] args){          OpenEnded oe = new OpenEnded();          oe.Foo( 123, 456, "Hello", new Point(7,8), 9.0m, true, 'X‘);      // a piros szöveg helyett bármilyen típus állhat Krizsán Zoltán, iit C# osztályok 3

Tagfüggvény paraméter átadás módjai void ertekSzerint(int a) Érték szerinti paraméter átadás (másolat) void referenciaSzerint(ref int a) hívásnál is kell a ref kulcsszó, kötelező inicializálni void kimenetiRefSzerint(out int a) hívásnál is kell az out kulcsszó, kötelező a fv. törzsben beállítani Krizsán Zoltán, iit C# osztályok 4

Paraméter átadás II Ha referencia típust adunk át paraméterként Érték szerint, akkor a tartalmát Referencia szerint, akkor az objektumot is tudjuk változtatni.

Tagfüggvény Main fv. alakjai public static void Main() {...} public static void Main(string[] args) {...} public static int Main() {...} public static int Main(string[] args) {...} Paramétere a parancssori argumentumokat tartalmazza. Krizsán Zoltán, iit C# osztályok 6

Tagfüggvény Virtuális fv. Alapból nem virtuális (nem úgy, mint JAVA) virtual kulcsszó segítségével lesz csak az. Ha egy fv. virtuális, akkor kötelező definiálni a törzsét (nincs pure virtual) Felülírása az override minősítővel a leszármazott osztályok valamelyikében Teljes azonosság kötelező. Krizsán Zoltán, iit C# osztályok 7

Konstruktor Neve: osztálynév Nem lehet meghívni explicite, de meghívódik miután a rendszer létrehozta az objektumot. Default konstruktor létrejön, ha nem definiálunk (paraméter nélküli). Ha nincs konstruktor itt is létrejön egy, és ez 0, false, null-ra állítja az adattagokat. Krizsán Zoltán, iit C# osztályok 8

Konstruktor II Feladata az objektum inicializálása „konstruálás”. Több is lehet, de paraméterei mások Hívható másik konstruktor, akár az ősosztályé is, de a formája a következő: public Employee(int weeklySalary, int numberOfWeeks) : this(weeklySalary) { } public Employee(int weeklySalary, int numberOfWeeks) : base(weeklySalary) { }

Konstruktor fajtái Példány Privát Statikus Egy objektum inicializálására használjuk Privát Objektum létrehozását tiltjuk meg vele. Statikus Az osztály első betöltődésekor fut le vagy amikor a statikus mezőre először hivatkozunk. vagy az első példány létrehozásakor Feladata a csak olvasható vagy statikus mezők beállítása. Nem lehet paramétere, sem hozzáférési módosítója. Midig hamarabb fut le, mint a példány konst.

Konstruktor IV privát konstruktor Olyan osztályoknak kell, amelyeket nem szabad példányosítani. Azaz, ha csak statikus részük van. Vigyázzunk, ha nem adunk meg hozzáférést, akkor az privát lesz. A Math osztálynak is privát van.

Destruktor Neve: ~osztálynév Csak 1 darab lehet. Ami finalize-re konvertálódik. Nem öröklődik, Nem lehet felüldefiniálni. Nem lehet meghívni explicite, de meghívódik amikor a gc felszabadítja, kisöpri az objektumot. Krizsán Zoltán, iit C# osztályok 12

Destruktor II Nem lehet sem paramétere Nem lehet módosítója. Feladata az utóhatások megszüntetése. (értesítés, nyugtázás, …). Stuktúrának nem lehet.