Kezdőoldal » Számítástechnika » Programozás » Egyszer inicializálódó változó...

Egyszer inicializálódó változó a jávában van? Milyen kulcsszó kell elé?

Figyelt kérdés
Olyanra gondolok, mint a static a c++-ban, tehát,hogy csak 1-szer inicializálódjon, bármennyiszer is hívódik meg a függvény.
2011. ápr. 25. 15:20
 1/6 anonim ***** válasza:

Sztem a static-ra gondolsz..

PL: public static void ...

2011. ápr. 26. 07:07
Hasznos számodra ez a válasz?
 2/6 anonim ***** válasza:
Olyan nincs, mint a C++ statikus függvényváltozója, mivel eleve nincsenek csak úgy a levegőben függvények, minden függvény egy osztály függvénye. Tehát az osztályba rakd bele a statik változót és ha tényleg az kell, hogy a függvény első hívásakor inicializálódjon akkor rakj mellé egy static boolean-t, amit beállítasz az első híváskor és akkor többet nem nyúlsz hozzá.
2011. ápr. 26. 12:43
Hasznos számodra ez a válasz?
 3/6 anonim ***** válasza:
De vannak statikus függvények, amiket példányosítás nélkül is lehet használni, ilyen a main függvény is!
2011. máj. 1. 00:55
Hasznos számodra ez a válasz?
 4/6 anonim ***** válasza:
És ki állította, hogy nincsenek statikus függvények? :)
2011. máj. 2. 11:18
Hasznos számodra ez a válasz?
 5/6 anonim ***** válasza:

Az első hozzászóló vagyok.

Javaban, C#-ban tudtommal, úgy történik, hogy ha statikus a függvény ami természetesen egy osztályon belül van, akkor akkor fog inicializálódni, ha meghívjuk, természetesen, ha mégegyszer meghívom, akkor azon belüli változó tartalma elvész, olyan mintha egy új példány lenne, de mégsincs példányosítva. Természetesen, ha az először mehívott függvény módosítja az osztályán belüli statikus változókat, akkor a második függvény már azokat használja. De szerintem ez C++-ban is így van, feltéve, hogy nem pointereket használ. De lehet, hogy tévedek, márt jó pár éve volt már, hogy C++-oztam.

2011. máj. 2. 19:53
Hasznos számodra ez a válasz?
 6/6 anonim ***** válasza:

C++-ban létezik a static kulcsszónak egy olyan szemantikus jelentése is, hogy ha függvényben írod egy változó elé, akkor az a statikus táron, egyszer jön csak létre, és akárhányszor, akárhogy rekurzívan vagy bárhonnan hívod a függvényt, az mind ugyanazt a változót fogja használni. Ez a változó akkor jön létre amikor legelőször ráfut a vezérlés a deklarációjára, és a program befejezéséig él.


Tehát pl

void f(bool a)

{

if(a)

{

static int lol;

//valami kód

}

else

{

//... valami kód

}

}


Itt például a lol nevű változó akkor jön létre, amikor először meghívódik f true paraméterrel.

Na, a kérdező leírása alapján erre gondolt. Ilyen nincs Java-ban és C#-ban, de mivel minden függvény osztályhoz tartozik, ezért osztályszintű, static változókkal simán kiváltható, igaz, azok nem a függvény első hívásakor inicializálódnak, de meg lehet oldani, hogy úgy működjenek.

2011. máj. 3. 10:17
Hasznos számodra ez a válasz?

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!