1. Lokális változók
Beszéljünk komolyabban a változókról. De ezúttal nem a belső felépítésüket tárgyaljuk. Ehelyett arra összpontosítunk, hogy a változók hogyan lépnek kapcsolatba a kóddal, ahol találhatók.
A metódusokon belül deklarált összes változót helyi változónak nevezzük . A lokális változó csak abban a kódblokkban létezik, amelyben deklarálva van. Pontosabban, attól a pillanattól kezdve létezik, amikor deklarálják, annak a kódblokknak a végéig, amelyben deklarálják.
Az egyszerűség kedvéért nézzünk egy példát:
Kód | Változó láthatóság |
---|---|
|
|
Beszéljünk még egyszer a helyi változók eléréséről. Itt van egy kódblokk, amely kapcsos kapcsos zárójelekből áll: ez lehet metódustörzs, egy ciklus törzse, vagy csak egy kódblokk egy feltételes utasításhoz. A kódblokkban deklarált változó a kódblokk végéig létezik.
Ha egy változót a ciklus törzsében deklarálunk, akkor az csak a ciklus törzsében fog létezni. A ciklus minden iterációja során létrejön és megsemmisül.
Példa:
Kód | Változó láthatóság |
---|---|
|
|
Csak azért tudtunk deklarálni egy második nevű helyi változót, b
mert az első b
változó nem látható abban a kódblokkban, ahol a második b
változót deklarálták.
2. Paraméterek
Mint korábban említettük, minden metódusnak lehetnek változói, amelyeket paramétereknek nevezünk. Mi a helyzet a láthatóságukkal és az élettartamukkal?
Minden egyértelmű. A paraméterek akkor jönnek létre, amikor a végrehajtás belép a metódusba (azaz amikor a metódus kódja elindul). A módszer végén megszűnnek. A módszer egészében láthatóak.
Példa:
Kód | Változó láthatóság |
---|---|
|
|
Mint korábban említettük, args
ez csak egy változó, amelynek típusa karakterláncok tömbje. És mint minden paraméter, ez is mindenhol elérhető a módszer törzsében. Ennek ellenére általában figyelmen kívül hagyjuk a példáinkban.
3. Változók egy osztályban
Emlékszel az 1. szint leckéiből, hogy egy osztálynak lehetnek metódusai és változói. A metódusokat néha példánymetódusoknak, a változókat pedig példányváltozóknak vagy mezőknek nevezik. Ezek tulajdonképpen szinonimák a Java nyelven.
Melyek egy osztály változói (vagy mezői)?
Ezek olyan változók, amelyeket nem egy metódusban, hanem egy osztályban deklarálnak.
Az osztály bármely (nem statikus) metódusából elérhetők. Durván szólva a példányváltozók olyan változók, amelyeket egy osztály összes metódusa megoszt .
Példa:
Kód | Változó láthatóság |
---|---|
|
|
Ebben a példában két módszerünk van – add()
és remove()
. A add()
metódus növeli a sum
és count
példányváltozókat, a remove()
metódus pedig csökkenti a sum
és count
változókat. Mindkét módszer megosztott példányváltozókon működik.
Lokális változók léteznek a metódus végrehajtása közben. Az osztály példányváltozói mindaddig léteznek egy osztály objektumán belül , amíg az objektum létezik. A következő szinten megtudhatja az osztály objektumainak részleteit.
4. Statikus változók
A metódusokhoz hasonlóan az osztály változói lehetnek statikusak vagy nem statikusak. A statikus metódusok csak statikus változókhoz férhetnek hozzá.
A 11. szinten elemezzük a statikus változók és módszerek szerkezetét, és meg fogja érteni e korlátozások okait.
Statikus változó (osztályváltozó) készítéséhez be kell írnia a static
kulcsszót a deklarációjába.
A statikus változók nincsenek annak az osztálynak az objektumához vagy példányához kötve, amelyben deklarálva vannak. Ehelyett magához az osztályhoz tartoznak. Ezért léteznek még akkor is, ha az osztályból egyetlen objektum sem jött létre . Hivatkozhat rájuk más osztályokból egy konstrukcióval, például:
ClassName.variableName
Példa:
Kód | Változó láthatóság |
---|---|
|
|
A fenti példában létrehoztunk egy külön Storage
osztályt, áthelyeztük abba a count
és változókat, és statikusnak nyilvánítottuk őket . A nyilvános statikus változók a program bármely metódusából (és nem csak metódusból) elérhetők.sum
GO TO FULL VERSION