1. Lokala variabler
Låt oss prata mer seriöst om variabler. Men den här gången ska vi inte diskutera deras interna struktur. Istället kommer vi att fokusera på hur variabler interagerar med koden där de finns.
Alla variabler som deklareras i metoder kallas lokala variabler . En lokal variabel finns bara i kodblocket där den deklareras. Eller, för att vara mer exakt, det existerar från det ögonblick det deklareras till slutet av kodblocket där det deklareras.
För enkelhetens skull, låt oss överväga ett exempel:
Koda | Variabel sikt |
---|---|
|
|
Låt oss prata om att komma åt lokala variabler en gång till. Här är ett kodblock som består av klammerparenteser: 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.
Om en variabel deklareras i slingans kropp, kommer den endast att finnas i slingans kropp. Den skapas och förstörs vid varje iteration av loopen.
Exempel:
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.
2. Parametrar
Som vi sa tidigare kan varje metod ha variabler som vi kallar parametrar. Hur är det med deras synlighet och livslängd?
Det hela är okomplicerat. Parametrar skapas när exekvering går in i metoden (dvs när metodens kod börjar exekvera). De elimineras när metoden tar slut. De är synliga i hela metoden.
Exempel:
Koda | Variabel sikt |
---|---|
|
|
Som vi sa tidigare, args
är bara en variabel vars typ är en array av strängar. Och som alla parametrar är den tillgänglig överallt i metoden. Som sagt, vi brukar ignorera det i våra exempel.
3. Variabler i en klass
Du kommer ihåg från lektionerna på nivå 1 att en klass kan ha metoder och variabler. Metoder kallas ibland instansmetoder och variabler – instansvariabler eller fält. Dessa är faktiskt synonymer i Java.
Vilka är variablerna (eller fälten) i en klass?
De är variabler som inte deklareras i en metod, utan i en klass.
De kan 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 variablerna sum
och count
instans, och remove()
metoden minskar variablerna sum
och . count
Båda metoderna fungerar på delade instansvariabler.
Lokala variabler finns medan en metod körs. Förekomstvariablerna för en klass finns inom ett objekt i en klass så länge det objektet existerar . Du kommer att lära dig detaljer om objekt i en klass på nästa nivå.
4. Statiska variabler
Liksom metoder kan variablerna i en klass vara statiska eller icke-statiska. Statiska metoder kan bara komma åt statiska variabler.
På nivå 11 kommer vi att analysera strukturen för statiska variabler och metoder och du kommer att förstå orsakerna till dessa begränsningar.
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 referera 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).
GO TO FULL VERSION