Kezdőoldal » Számítástechnika » Programozás » C# OOP mi értelme a példány/st...

C# OOP mi értelme a példány/staticnak?

Figyelt kérdés

public class Kutya

{


public int b = 4;

public static int a = 1;


}


//Ugye a static nem példány, hanem osztály szintű.


Kutya c = new Kutya();

Kutya c2 = new Kutya();

c.b = 14;

c2.b = 34;

Kutya.a = 10;


//b-t egy objektumon keresztül lehet elérni, Az a-t pedig osztályon keresztül. Akkor mi értelme a példányoknak? Vagy a static nak? mind2 vel ugyan azt az eredményt érem el.


Segítsetek mert már kaparom a falat :D



2014. ápr. 7. 19:19
1 2
 1/12 anonim ***** válasza:

Hát pedig le is írtad a különbséget jól.


A staticból egyetlen darab létezik, és az osztályra vonatkozik.


A példányszintűből pedig minden példánynak van 1-1 sajátja.


Példa:

Egy iskolai osztályban az évfolyam egy static tulajdonság, az egyes tanulók nevei pedig példányszintűek.

2014. ápr. 7. 19:22
Hasznos számodra ez a válasz?
 2/12 anonim ***** válasza:
100%

(Mondjuk persze nem így lenne célszerű modellezni a tanulókat, csak a szóhasználat miatt jött a példa.)


A kutyás példánál:

- static az, hogy pl. gerinces állat, meg 4 lába van (mert minden kutya ilyen)

- és példányszintű az, hogy milyen fajta, hogy hívják, milyen nemű, stb.

2014. ápr. 7. 19:25
Hasznos számodra ez a válasz?
 3/12 A kérdező kommentje:
ahha, nah kezdem kapizsgálni már :D köszi a gyors választ :)
2014. ápr. 7. 19:28
 4/12 anonim ***** válasza:
A kutyának akkor van értelme, ha tartalmaz metódusokat is. Akkor tudja csóválni a farkát, tud ugatni, meg tud harapni valakit, lehet etetni, itatni, sétálni vinni, és a többi. Emellett lehet macska is, amit lehet etetni, itatni, játszani vele, tud nyávogni, egeret fogni, és a többi. Ezekből kiemeled a közös viselkedéseket, és lesz egy ősosztályod. A példányosítással lehet egyszerre több kutyád, vagy biztosíthatod, hogy mindenki ugyanazt az ablakot használja. A staticnak teljesen mindegy, hogy példányon át hívod-e meg. Jó a meglátásod, hogy nem igazán érdemes olyan osztályt példányosítani, amiben minden static. Nekünk ezt a nyugdíjkorhatáron keresztül magyarázták el. De vehetjük a minimálbért is, ami minden példánynál ugyanannyi, mert az oaztályhoz tartozik, nem a példányhoz.
2014. ápr. 7. 22:27
Hasznos számodra ez a válasz?
 5/12 A kérdező kommentje:
Igazából most olvasgatok csak az OOP ről, és keresem benne a logikát. Még nem értem igazából, miért jó, mikor jó stb, de rajta vagyok már az ügyön, köszi szépen a helpet :)
2014. ápr. 8. 10:47
 6/12 anonim ***** válasza:
Egy példa a sok közül, hogy pl. oszályszinten tárolhatja, hogy hány példány lett létrehozva az osztályból. A konstruktor pl. mindig eggyel növeli, a destruktor meg csökkenti. Vagyis olyan adat, ami nem közvetlenül a példányokhoz kapcsolódik, hanem valami közös infó.
2014. ápr. 8. 12:42
Hasznos számodra ez a válasz?
 7/12 A kérdező kommentje:
" hogy hány példány lett létrehozva az osztályból" mhh...? ezt hogyan tarthatom számon? forráskódra gondolok most, h úgy h van.
2014. ápr. 8. 13:04
 8/12 anonim ***** válasza:

public class Kutya {

public int b = 4;

public static int db = 0;

Kutya() {db++;}

~Kutya() {db--;}

}


Kutya c1 = new Kutya();

Kutya c2 = new Kutya();


cout "Ennyi kutya objektum lett létrehozva: " << Kutya.db;

2014. ápr. 8. 13:13
Hasznos számodra ez a válasz?
 9/12 anonim ***** válasza:

* A "cout" után kihagytam egy ilyet: <<

cout << "Ennyi...

2014. ápr. 8. 13:15
Hasznos számodra ez a válasz?
 10/12 anonim ***** válasza:
Bár ez nem a legjobb megoldás, mert kívülről is átírható. Inkább priváttá kellene tenni, és egy külön függvénnyel lekérdezhetővé tenni.
2014. ápr. 8. 13:16
Hasznos számodra ez a válasz?
1 2

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!