Lokális változók
"Üdvözlöm, szeretett tanítványom! Itt az ideje, hogy egy kicsit komolyabban foglalkozzunk a változókkal. Ezúttal azonban nem a belső szerkezetükről fogunk beszélni. Ehelyett arra fogunk összpontosítani, hogy a változók hogyan hatnak egymásra a kóddal, ahol találhatók.
"A metódusokon belül deklarált összes változót lokális változónak nevezzük . A lokális változó csak abban a kódblokkban létezik, amelyben deklarálták. Pontosabban, a deklarálás pillanatától a blokk végéig létezik. annak a kódnak, amelyben deklarálva van."
– Egyértelmű, hogy kell egy példa.
"Semmi probléma. Tessék:
Kód | Változó elérhetőség |
---|---|
|
|
"Még egyszer nézzük át a helyi változókhoz való hozzáférés szabályait. Itt van egy kódblokk. Mi jelzi a kezdetét és a végét?"
– Göndör fogszabályzó?
"Helyes. Ez lehet egy 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. Mondd meg, hol fog akkor létezik változó, ha egy ciklus törzsében van deklarálva?"
"Csak a hurok testében fog létezni."
"Így van. Mi több, a ciklus minden iterációja során létrejön és megsemmisül."
"Ez azt jelenti, hogy nem deklarálhat két azonos nevű helyi változót egy metódussal – a program nem fog lefordítani. De ezt megteheti, ha a változókat deklaráló kódblokkok nem fedik át egymást. "
"Megvan az oka annak, amiért te vagy a kedvencem, Amigo. Vegyünk még egy példát, hogy megszilárdítsd ezt az agyadban.
Kód | Változó láthatóság |
---|---|
|
|
"Csak azért tudtunk deklarálni egy második névre szóló 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.
Paraméterek
"Ahogy korábban is mondtuk, minden módszernek lehetnek változói, amelyeket paramétereknek nevezünk. Mi a helyzet a láthatóságukkal és az élettartamukkal?"
"Hmm... meg vagyok döbbenve..."
"Itt minden nagyon egyszerű. 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).
– Más szóval, a módszer egészében és csak ott láthatók?
"Igen. Példa:
Kód | Változó láthatóság |
---|---|
|
|
"Ahogy korábban mondtuk, args
ez csak egy változó, amelynek típusa karakterláncok tömbje. És mint minden paraméter, ez is mindenhol elérhető a metódus törzsében. Ennek ellenére általában figyelmen kívül hagyjuk a példáinkban.
Változók egy osztályban
"Emlékezzen az 1. szint leckéire, ahol azt mondtuk, 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.
"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."
– És minek vannak ott?
"Elsőként 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 metódusunk 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."
"Mindent megértek! A lokális változók léteznek a metódus végrehajtása közben. Egy osztály példányváltozói mindaddig léteznek egy osztály objektumában, amíg az objektum létezik."
"Jól van, Amigo. Leraktuk az alapot, és a következő szinten megtudhatja az osztály tárgyainak részleteit.
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á.
"Még nincs tisztában a statikus változókkal."
"Ó, tudom, de ne aggódj. Egyelőre csak érezd jól magad. Ismerkedj meg velük. A 11. szinten elemezzük a statikus változók és módszerek szerkezetét, és megérted ezek okait korlátozásokat.
"Statikus változó (osztályváltozó) létrehozásához meg kell írni 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álták őket. 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 . más osztályokból olyan konstrukció használatával, mint:
ClassName.variableName
Példa:
Kód | Változó láthatóság |
---|---|
|
|
"A fenti példában külön osztályt hoztunk létre , ebbe Storage
áthelyeztük 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 elérhetőek (és nem csak metódusból)."sum
– Nem teljesen értem, de ez kényelmesnek tűnik számomra.
"Így van. És néha szükséges is. Statikus változók és módszerek nélkül megrekednénk."
– Remélhetőleg lassan rájövök.
– Igen, természetesen.
GO TO FULL VERSION