Krizsán Zoltán 1 [2012. március 12.] Általános Informatikai Tanszék Miskolci Egyetem Objektumorientált programozás C# alapokon tananyag
Tartalom Bevezetés
Bevezetés Outline Bevezetés
Bevezetés Példány változó Az eddig megismert adattagokból minden objektumnak saját "készlete" van. Ahány objektum annyi benne lev adattag, melyeknek különböz értéke lehet. Ezeket ezért szokás példányváltozóknak is nevezni. Az adattagok deklarációja elé kitehet a static min sít.
Bevezetés Példány metódus használata Hívásakor ha nem használtuk a this-t az adattagok eléréséhez, akkor is el tte van.
Outline Bevezetés
Osztályváltozó A statikus adattag, tulajdonság az osztály valamennyi objektuma számára egy példányban létezik, azok osztottan használják. Miután az osztály mindegyikére vonatkoznak, szokás osztályváltozóknak is hívni. (Globális változó az osztályra nézve.) Nem a this pszeudó változó segítségével történik az elérése. Az objektumok el tt kell létrejönnie.
Osztályváltozó Inicalizálása az osztály inicializálás során történik. A keretrendszer akkor inicializál egy osztályt, amikor betölti, azaz el ször történik rá aktív hivatkozás (példányosítás, metódus hívás vagy változó hozzáférés). Az osztályon belül a nevével hivatkozhatunk. Az osztály bármely metódusa használhatja. Hivatkozás kív lr l: osztálynév.statikus_elemnév (nem hivatkozás.elem) pl.:osztálynev.statikus_adattag = 3.
Példa Minden objektum számontartja, hogy hányadikként jött létre. A számozást a konstruktor végzi. 1 public class Szamozott 2 { 3 private static int _darab = 0; 4 private int _sorszam; 5 public Szamozott() 6 { 7 _sorszam = ++_darab; 8 } 9 }
Konstans (const) Technikailag adatszer elem. Nem lehet változtatni értékét. Úgy viselkedik, mint a statikus elem. Nem lehet statikus min sít vel ellátni. Kívülr l elérése az osztály nevével lehetséges.
Outline Bevezetés
Bár az eddigi metódusok csak egy példányban léteznek minden példány számára, de m ködésükhöz egy aktuális példány szükséges. Ezeket hívhattuk volna példánymetódusoknak is. Metódus is kaphat static min sítést: osztálymetódus. Az ilyen metódus a példányváltozókhoz és a this pszedóváltozóhoz nem férhet hozzá. Következmény: csak osztályváltozókat, osztály tulajdonságokat és más osztálymetódusokat használhat.
II Akkor is végrehajtható, ha az osztálynak nem léteznek példányai. Hivatkozás: osztályon belül a nevével kív lr l az osztály neve.osztalymetodus. Egy program indulásakor nincs, ami példányt hozzon létre, ezért a main metódusnak static min sítés nek kell lennie.
Példa Az el z Szamozott osztály egy metódusa lehet: 1 public static int hanyanvagyunk() { 2 return _darab; 3 } Ez a metódus a Szamozott.hanyanVagyunk() formában hívható meg.
Outline Bevezetés
Csak statikus elemei lehetnek. Ha van példány tagja, akkor fordítási hiba. Nem lehet példányosítani. Pecsételt (Sealed), nem lehet származtatni. Nem lehet példány konstruktora.
Példa 1 static class CompanyInfo 2 { 3 public static string GetCompanyName() 4 { 5 return "CompanyName"; 6 } 7 public static string GetCompanyAddress() 8 { 9 return "CompanyAddress"; 10 } 11 }