You are on page 1of 17

Osztály szint¶ tagok

Osztály szint¶ tagok

Krizsán Zoltán1
[2012. március 12.]

Általános Informatikai Tanszék


Miskolci Egyetem

Objektumorientált programozás C# alapokon tananyag

Osztály szint¶ tagok


Osztály szint¶ tagok

Tartalom

Osztály szint¶ tagok


Bevezetés
Osztály változó
Osztály metódus
Statikus osztály

Osztály szint¶ tagok


Osztály szint¶ tagok

Bevezetés

Outline

Osztály szint¶ tagok


Bevezetés
Osztály változó
Osztály metódus
Statikus osztály

Osztály szint¶ tagok


Osztály szint¶ tagok

Bevezetés

Példány változó

I Az eddig megismert adattagokból minden objektumnak saját


"készlete" van.
I Ahány objektum annyi benne lev® adattag, melyeknek
különböz® értéke lehet.
I Ezeket ezért szokás példányváltozóknak is nevezni.
I Az adattagok deklarációja elé kitehet® a static min®sít®.

Osztály szint¶ tagok


Osztály szint¶ tagok

Bevezetés

Példány metódus használata

I Hívásakor ha nem használtuk a this-t az adattagok eléréséhez,


akkor is el®tte van.

Osztály szint¶ tagok


Osztály szint¶ tagok

Osztály változó

Outline

Osztály szint¶ tagok


Bevezetés
Osztály változó
Osztály metódus
Statikus osztály

Osztály szint¶ tagok


Osztály szint¶ tagok

Osztály változó

Osztályváltozó

I A statikus adattag, tulajdonság az osztály valamennyi


objektuma számára egy példányban létezik, azok osztottan
használják.
I 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.)
I Nem a this pszeudó változó segítségével történik az elérése.
I Az objektumok el®tt kell létrejönnie.

Osztály szint¶ tagok


Osztály szint¶ tagok

Osztály változó

Osztályváltozó

I Inicalizálása az osztály inicializálás során történik.


I 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).

I Az osztályon belül a nevével hivatkozhatunk.


I Az osztály bármely metódusa használhatja.
I Hivatkozás kív¶lr®l: osztálynév.statikus_elemnév (nem
hivatkozás.elem) pl.:osztálynev.statikus_adattag = 3.

Osztály szint¶ tagok


Osztály szint¶ tagok

Osztály változó

Példa

I 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 }

Osztály szint¶ tagok


Osztály szint¶ tagok

Osztály változó

Konstans (const)

I Technikailag adatszer¶ elem.


I Nem lehet változtatni értékét.
I Úgy viselkedik, mint a statikus elem.
I Nem lehet statikus min®sít®vel ellátni.
I Kívülr®l elérése az osztály nevével lehetséges.

Osztály szint¶ tagok


Osztály szint¶ tagok

Osztály metódus

Outline

Osztály szint¶ tagok


Bevezetés
Osztály változó
Osztály metódus
Statikus osztály

Osztály szint¶ tagok


Osztály szint¶ tagok

Osztály metódus

Osztály metódus

I 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.
I Ezeket hívhattuk volna példánymetódusoknak is.
I Metódus is kaphat static min®sítést: osztálymetódus.
I Az ilyen metódus a példányváltozókhoz és a this
pszedóváltozóhoz nem férhet hozzá.
I Következmény: csak osztályváltozókat, osztály tulajdonságokat
és más osztálymetódusokat használhat.

Osztály szint¶ tagok


Osztály szint¶ tagok

Osztály metódus

Osztály metódus II

I Akkor is végrehajtható, ha az osztálynak nem léteznek


példányai.
I Hivatkozás:
I osztályon belül a nevével
I kív¶lr®l az osztály neve.osztalyMetodus.

I 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.

Osztály szint¶ tagok


Osztály szint¶ tagok

Osztály metódus

Példa

I Az el®z® Szamozott osztály egy metódusa lehet:


I 1 public static int hanyanVagyunk() {
2 return _darab;
3 }

I Ez a metódus a Szamozott.hanyanVagyunk() formában


hívható meg.

Osztály szint¶ tagok


Osztály szint¶ tagok

Statikus osztály

Outline

Osztály szint¶ tagok


Bevezetés
Osztály változó
Osztály metódus
Statikus osztály

Osztály szint¶ tagok


Osztály szint¶ tagok

Statikus osztály

Statikus osztály

I Csak statikus elemei lehetnek. Ha van példány tagja, akkor


fordítási hiba.
I Nem lehet példányosítani.
I Pecsételt (Sealed), nem lehet származtatni.
I Nem lehet példány konstruktora.

Osztály szint¶ tagok


Osztály szint¶ tagok

Statikus osztály

Példa

I 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 }

Osztály szint¶ tagok

You might also like