1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.

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,
Jt Java Feltételek, logikai kifejezések. jt 2 Logikai operátorok Logikai kifejezésekre alkalmazhatók a következő műveletek: 1. nem! 2. és&ill.&& 3. kizáró.
1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz.
Objective- C Bereczki Gréta Tamara
Öröklődés 2..
© Kozsik Tamás Tömbök, kollekciók és egyéb alaposztályok.
© 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.
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.
Osztályok Garbage collection.  általában minden osztálynak vannak adattagjai és/vagy metódusai ◦ adattagok megadása:  [láthatóság] [static] [final]
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.
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.
A C++ programozási nyelvSoós Sándor 1/12 C++ programozási nyelv Gyakorlat - 8. 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# tagfüggvények.
C# osztályok Krizsán Zoltán 1.0.
C# tagfüggvények.
P ROGRAMOZÁS C# - BAN Kivételkezelés. P ÉLDA I. Nullával való osztás miatt kapjuk a hibaüzenetet.
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz tárgy honlap:
1. Gyakorlat - Alapok 1. Írjon konzolprogramot, amely kiírja a “Hello ELTE” üzenetet! Használja a System.out.println() -t! 2. Írjon konzolprogramot, amely.
Léczfalvy Ádám MIDlet-ek.
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 Web: Magasszintű Programozási Nyelvek I. Eszterházy.
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.
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.
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.
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.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
1 Hernyák Zoltán Web: Magasszintű Programozási Nyelvek I. Eszterházy.
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ú,
Java programozási nyelv Filekezelés
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.
A Visual Basic nyelvi elemei
Programozás III KOLLEKCIÓK.
Ficsor Lajos CPP2 / 1 Származtatási mechanizmus a C++ nyelvben 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.
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][,
Hernyák Zoltán Programozási Nyelvek II.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Magasszintű Programozási Nyelvek I.
Hernyák Zoltán Programozási Nyelvek II.
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
B M Java Programozás 1. Gy: Java alapok IT A N Ismétlés ++
JAVA programozási nyelv NetBeans fejlesztőkörnyezetben I/13. évfolyam
Függvénysablonok használata
Előadás másolata:

1 Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz

2 Adattag : Az osztály mezői, amelyek az objektum állapotát tárolják. Kétfajta mező létezik: Példányszintű mező: ebből annyi darab lesz, ahány példányt készítünk az adott osztályból. Minden példánynak saját mezője lesz, ezek nem közösek a példányok között. A mező elérése: … példánynév.mezőnév … Osztályszintű mező: ebből az egész program futása során 1 db lesz, függetlenül attól, hány példányt készítünk (akár ha 0 db-t is). Ezen mezőt minden példány (is) elérheti, a mező közös a példányok között. A mező elérése: … osztálynév.mezőnév …

3 class TKutya { public static bool tudRepulni = false; public static bool tudUszni = true; public static int labakSzama = 4; public double sulya; public string neve; }; public static void Main() { TKutya bloki = new TKutya(); bloki.sulya = 4.3; bloki.neve = ”Bodri”; bloki.tudRepulni = true; // hibás TKutya.tudRepulni = true; // jó } public static void Main() { TKutya bloki = new TKutya(); bloki.sulya = 4.3; bloki.neve = ”Bodri”; bloki.tudRepulni = true; // hibás TKutya.tudRepulni = true; // jó } STATIC kulcszó: osztálymező Jelöletlen mező: példányszintű Új ‘TKutya’ létrehozása = double+string memóriaigénye.

4 Konstans : Az osztály olyan mezője, amely a kezdőértékadás során kapja meg az értékét, és később ezt már nem lehet megváltoztatni. Minden konstans egyúttal osztályszintű mezőnek minősül. Hivatkozni ezért osztálynéven keresztül lehet rá: … osztálynév.konstansnév … class TKor { public const double Pi = 3.14; public double sugar; } class TKor { public const double Pi = 3.14; public double sugar; } TKor kor = new TKor(); kor.sugar = 12.4; double kerulet = TKor.Pi * kor.sugar * kor.sugar; TKor kor = new TKor(); kor.sugar = 12.4; double kerulet = TKor.Pi * kor.sugar * kor.sugar; Osztályon kívül az elérés osztálynéven keresztül

5 class TKor { public const double Pi = 3.14; public double sugar; public double kerulet() { return sugar*sugar*Pi; } class TKor { public const double Pi = 3.14; public double sugar; public double kerulet() { return sugar*sugar*Pi; } TKor kor = new TKor(); kor.sugar = 12.4; double k = kor.kerulet(); TKor kor = new TKor(); kor.sugar = 12.4; double k = kor.kerulet(); Osztályon belül az elérés közvetlen.

6 Az osztályok a mezőkön kívül fv-eket és eljárásokat tartalmaznak. Ezeket közös néven metódusoknak nevezzük. Kétfajta metódust ismerünk: Példányszintű metódus: meghívása példányon keresztül történhet. Hozzáfér az osztály példányszintű és osztályszintű mezőihez is. Osztályszintű metódus: meghívása osztáynéven keresztül történik. Nem férhet hozzá példányszintű mezőkhöz, csak osztályszintűekhez.

7 class TAllat { public int xPos, yPos; public double Menj(int ujX, int ujY) { xPos = ujX; yPos = ujY; } class TAllat { public int xPos, yPos; public double Menj(int ujX, int ujY) { xPos = ujX; yPos = ujY; } TAllat kacsa = new TAllat(); kacsa.Menj(10,20); TAllat macska = new TAllat(); macska.Menj(30,20); TAllat kacsa = new TAllat(); kacsa.Menj(10,20); TAllat macska = new TAllat(); macska.Menj(30,20);

8 class TTermeszet { static public string Evszak; public void evszakValt() { switch(Evszak) { ”nyár”: Evszak = ”ősz”;break; ”ősz”: Evszak = ”tél”;break;... } class TTermeszet { static public string Evszak; public void evszakValt() { switch(Evszak) { ”nyár”: Evszak = ”ősz”;break; ”ősz”: Evszak = ”tél”;break;... } TTermeszet.Evszak = ”tavasz”; TTermeszet.evszakValt(); string most = TTermeszet.Evszak; TTermeszet.Evszak = ”tavasz”; TTermeszet.evszakValt(); string most = TTermeszet.Evszak; Nem túl szerencsés megoldás.

9 Osztályszintű metódust alkalmazunk, ha: A metódus futásához minden információt paraméterként adunk át: class Math { public static double Sin( double degree ) {... } class Math { public static double Sin( double degree ) {... }

10 Osztályszintű metódust alkalmazunk, ha: Az adott osztályból úgysem lesz példányosítva, mert úgyis csak 1 db példány lenne belőle. Ekkor az osztály minden mezője osztályszintű, és minden metódusa osztályszintű: class Console { public static double WriteLine(...) {... } class Console { public static double WriteLine(...) {... }

11 Osztályszintű metódust alkalmazunk, ha: Az adott metódus nem hivatkozik példányszintű mezőre, sem metódusra. Csak az osztályszintű mezőkkel dolgozik: class TTermeszet { static public string Evszak; public void evszakValt() { switch(Evszak) { ”nyár”: Evszak = ”ősz”;break; ”ősz”: Evszak = ”tél”;break;... class TTermeszet { static public string Evszak; public void evszakValt() { switch(Evszak) { ”nyár”: Evszak = ”ősz”;break; ”ősz”: Evszak = ”tél”;break;...

12 Osztályszintű metódusból hívhatunk másik metódust, de csak ha az is osztályszintű! Példányszintű metódus hívására nincs lehetőség ( ugyanis példányszintű metódus hívásához példány is kellene  ) class TTermeszet { static public string Evszak; static public int datum; public void datumNovel() { datum ++; if (datum==60) // március 1 evszakValt() ; class TTermeszet { static public string Evszak; static public int datum; public void datumNovel() { datum ++; if (datum==60) // március 1 evszakValt() ;

13 Példányszintű metódusból meghívhatunk másik példányszintű metódust is, és osztályszintű metódust is. class TKutya { double sulya = 10; public void eszik() { sulya += 0.1; // 10 dekát hízik vakkantas(); } public void vakkantas() { Console.Write(”vau-vau”); } class TKutya { double sulya = 10; public void eszik() { sulya += 0.1; // 10 dekát hízik vakkantas(); } public void vakkantas() { Console.Write(”vau-vau”); }