Lokala variabler
"Hälsningar, min älskade student! Det är dags att bli lite mer seriös om variabler. Men den här gången kommer vi inte att diskutera deras interna struktur. Istället kommer vi att fokusera på hur variabler interagerar med koden där de finns.
"Alla variabler som deklareras inuti metoder kallas lokala variabler . En lokal variabel finns bara i kodblocket där den deklareras. Eller, för att vara mer exakt, den existerar från det ögonblick den deklareras till slutet av blocket kod i vilken den deklareras."
"Det är klart att jag behöver ett exempel."
"Inga problem. Varsågod:
Koda | Variabel tillgänglighet |
---|---|
|
|
"Låt oss gå igenom reglerna för åtkomst till lokala variabler en gång till. Här är ett kodblock. Vad markerar dess början och slut?"
"Kulliga hängslen?"
"Korrekt. Detta kan vara en metodkropp, kroppen av en loop, eller bara ett kodblock för en villkorlig sats. En variabel som deklareras i ett kodblock existerar till slutet av det kodblocket. Säg mig, var kommer existerar en variabel om den deklareras i en loops brödtext?"
"Det kommer bara att existera i slingans kropp."
"Det stämmer. Dessutom kommer det att skapas och förstöras vid varje iteration av loopen."
"Det betyder att du inte kan deklarera två lokala variabler med samma namn i en metod — programmet kommer inte att kompilera. Men du kan göra detta om kodblocken där variablerna deklareras inte överlappar varandra . "
"Det finns en anledning till att du är min favorit, Amigo. Ta ytterligare ett exempel för att stelna detta i din hjärna.
Koda | Variabel sikt |
---|---|
|
|
"Vi kunde deklarera en andra lokal variabel b
endast namngiven eftersom den första b
variabeln inte är synlig i kodblocket där den andra b
variabeln deklareras.
Parametrar
"Som vi sa tidigare kan varje metod ha variabler som vi kallar parametrar. Hur är det med deras synlighet och livslängd?"
"Hmm... jag är förbannad..."
"Allt är ganska enkelt här. Parametrar skapas när exekveringen kliver in i metoden (dvs. när metodens kod börjar exekveras). De elimineras när metoden slutar."
"Med andra ord, de är synliga i hela metoden och bara där?"
"Ja. Exempel:
Koda | Variabel sikt |
---|---|
|
|
"Som vi sa tidigare, args
är den bara en variabel vars typ är en rad strängar. Och som alla parametrar är den tillgänglig överallt i metoden. Som sagt, vi ignorerar den vanligtvis i våra exempel.
Variabler i en klass
"Kom ihåg lektionerna på nivå 1, där vi sa att en klass kan ha metoder och variabler. Metoder kallas ibland instansmetoder och variabler - instansvariabler eller fält.
"Vilka är variablerna (eller fälten) i en klass ?
De är variabler som inte deklareras i en metod, utan i en klass."
"Och vad är de där för?"
"Till att börja med kan de nås från vilken (icke-statisk) metod som helst i en klass. Grovt sett är instansvariabler variabler som delas av alla metoder i en klass.
Exempel:
Koda | Variabel sikt |
---|---|
|
|
"I det här exemplet har vi två metoder - add()
och remove()
. Metoden add()
ökar instansvariablerna sum
och , och metoden minskar variablerna och . Båda metoderna fungerar på delade instansvariabler."count
remove()
sum
count
"Jag förstår allt! Lokala variabler existerar medan en metod körs. Instansvariablerna för en klass existerar inom ett objekt i en klass så länge det objektet existerar."
"Bra gjort, Amigo. Vi har lagt grunden, och du kommer att lära dig detaljer om objekt i en klass på nästa nivå.
Statiska variabler
"Precis som metoder kan variablerna i en klass vara statiska eller icke-statiska. Statiska metoder kan bara komma åt statiska variabler.
"Jag har inte en klar förståelse för statiska variabler ännu."
"Åh, jag vet, men oroa dig inte. För nu är det bara att bli bekväm med dem. Bli bekant med dem. På nivå 11 kommer vi att analysera strukturen för statiska variabler och metoder och du kommer att förstå orsakerna till dessa restriktioner.
"För att göra en statisk variabel (klassvariabel) måste du skriva static
nyckelordet i dess deklaration.
"Statiska variabler är inte bundna till ett objekt eller instans av klassen där de deklareras. Istället tillhör de själva klassen. Det är därför de existerar även om inte ett enda objekt i klassen har skapats . Du kan hänvisa till dem från andra klasser med en konstruktion som:
ClassName.variableName
Exempel:
Koda | Variabel sikt |
---|---|
|
|
"I exemplet ovan skapade vi en separat Storage
klass, flyttade in variablerna count
och sum
till den och förklarade dem statiska . Offentliga statiska variabler kan nås från vilken metod som helst i ett program (och inte bara från en metod)."
"Jag förstår inte helt, men det här verkar bekvämt för mig."
"Så är det. Och ibland är det nödvändigt. Utan statiska variabler och metoder skulle vi ha fastnat."
"Förhoppningsvis kommer jag sakta att kunna lista ut det."
"Ja, självklart kommer du att göra det."
GO TO FULL VERSION