1 / 13

Microsoft.NET környezet

Microsoft.NET környezet. Hernyák Zoltán Programozási Nyelvek II. Eszterházy Károly Főiskola Számítástudományi tsz. 1. Adattagok, adatmezők. 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

Download Presentation

Microsoft.NET környezet

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Adattagok, adatmezők 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 … 2

  3. Mezők elrejtése class TKutya { publicstatic bool tudRepulni = false; publicstatic bool tudUszni = true; publicstatic int labakSzama = 4; public double sulya; publicstring 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ó } Új ‘TKutya’ létrehozása = double+string memóriaigénye. STATIC kulcszó: osztálymező Jelöletlen mező: példányszintű 3

  4. Adattagok, adatmezők 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; } Osztályon kívül az elérés osztálynéven keresztül TKor kor = new TKor(); kor.sugar = 12.4; double kerulet = TKor.Pi * kor.sugar * kor.sugar; 4

  5. Adattagok, adatmezők 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(); Osztályon belül az elérés közvetlen. 5

  6. Metódusok 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. 6

  7. Adattagok, adatmezők 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); 7

  8. Adattagok, adatmezők 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; Nem túl szerencsés megoldás. 8

  9. Metódusok 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 ) { ... } } 9

  10. Metódusok 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(...) { ... } } 10

  11. Metódusok 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; ... 11

  12. Metódusok 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(); 12

  13. Metódusok 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”); } 13

More Related