Lokale variable
"Hilsen, min elskede studerende! Det er tid til at blive lidt mere seriøs omkring variabler. Men denne gang vil vi ikke diskutere deres interne struktur. I stedet vil vi fokusere på, hvordan variabler interagerer med koden, hvor de er placeret.
"Alle variabler, der er erklæret inde i metoder, kaldes lokale variabler . En lokal variabel eksisterer kun i den kodeblok, hvori den er erklæret. Eller, for at være mere præcis, eksisterer den fra det øjeblik, den er erklæret, indtil slutningen af blokken kode, hvori det er deklareret."
"Det er klart, jeg har brug for et eksempel."
"Intet problem. Her er det:
Kode | Variabel tilgængelighed |
---|---|
|
|
"Lad os gennemgå reglerne for adgang til lokale variabler en gang til. Her er en kodeblok. Hvad markerer dens begyndelse og slutning?"
"Krøllede seler?"
"Korrekt. Dette kunne være en metode, kroppen af en løkke eller bare en kodeblok for en betinget sætning. En variabel, der er erklæret i en kodeblok, eksisterer indtil slutningen af den kodeblok. Fortæl mig, hvor vil eksisterer en variabel, hvis den er erklæret i en løkkes brødtekst?"
"Det vil kun eksistere i løkkens krop."
"Det er rigtigt. Hvad mere er, det vil blive skabt og ødelagt ved hver iteration af loopet."
"Det betyder, at du ikke kan erklære to lokale variabler med samme navn i én metode - programmet vil ikke kompilere. Men du kan gøre dette, hvis kodeblokkene, hvor variablerne er erklæret, ikke overlapper. "
"Der er en grund til, at du er min favorit, Amigo. Tag et eksempel mere for at størkne dette i din hjerne.
Kode | Variabel synlighed |
---|---|
|
|
"Vi var i stand til at erklære en anden lokal variabel kun navngivet, b
fordi den første b
variabel ikke er synlig i kodeblokken, hvor den anden b
variabel er erklæret.
Parametre
"Som vi sagde før, kan hver metode have variabler, som vi kalder parametre. Hvad med deres synlighed og levetid?"
"Hmm... jeg er forbløffet..."
"Alt er ret simpelt her. Parametre oprettes, når eksekveringen træder ind i metoden (dvs. når metodens kode begynder at udføre). De elimineres, når metoden slutter."
"Med andre ord er de synlige i hele metodens krop og kun der?"
"Ja. Eksempel:
Kode | Variabel synlighed |
---|---|
|
|
"Som vi sagde tidligere, args
er den kun en variabel, hvis type er en række strenge. Og som alle parametre er den tilgængelig overalt i metodens krop. Når det er sagt, ignorerer vi det normalt i vores eksempler.
Variabler i en klasse
"Husk lektionerne på niveau 1, hvor vi sagde, at en klasse kan have metoder og variabler. Metoder kaldes nogle gange instansmetoder og variabler - instansvariabler eller felter.
"Hvad er variablerne (eller felterne) i en klasse ?
De er variabler, der ikke er deklareret i en metode, men i en klasse."
"Og hvad er de der for?"
"Til at begynde med kan de tilgås fra enhver (ikke-statisk) metode i en klasse. Groft sagt er instansvariabler variabler, der deles af alle metoderne i en klasse.
Eksempel:
Kode | Variabel synlighed |
---|---|
|
|
"I dette eksempel har vi to metoder - add()
og remove()
. add()
Metoden inkrementerer sum
og count
instansvariablerne, og remove()
metoden reducerer variablerne sum
og count
. Begge metoder virker på delte instansvariabler."
"Jeg forstår det hele! Lokale variabler eksisterer, mens en metode udføres. Forekomstvariablerne for en klasse eksisterer i et objekt i en klasse, så længe det objekt eksisterer."
"Godt klaret, Amigo. Vi har lagt noget fundament, og du vil lære detaljer om objekter i en klasse på det næste niveau.
Statiske variable
"Ligesom metoder kan variablerne i en klasse være statiske eller ikke-statiske. Statiske metoder kan kun få adgang til statiske variable.
"Jeg har ikke en klar forståelse af statiske variabler endnu."
"Åh, jeg ved det, men bare rolig. For nu skal du bare blive fortrolig med dem. Bliv fortrolig med dem. På niveau 11 vil vi analysere strukturen af statiske variabler og metoder, og du vil forstå årsagerne til disse restriktioner.
"For at lave en statisk variabel (klassevariabel), skal du skrive nøgleordet static
i dets erklæring.
"Statiske variable er ikke bundet til et objekt eller en instans af klassen, som de er erklæret i. I stedet tilhører de selve klassen. Det er derfor, de eksisterer, selvom der ikke er oprettet et eneste objekt af klassen . Du kan henvise til dem fra andre klasser ved hjælp af en konstruktion som:
ClassName.variableName
Eksempel:
Kode | Variabel synlighed |
---|---|
|
|
"I ovenstående eksempel oprettede vi en separat Storage
klasse, flyttede variablerne count
og sum
ind i den og erklærede dem statiske . Offentlige statiske variabler kan tilgås fra enhver metode i et program (og ikke kun fra en metode)."
"Jeg forstår det ikke helt, men det virker bekvemt for mig."
"Så det er det. Og nogle gange er det nødvendigt. Uden statiske variabler og metoder ville vi sidde fast."
"Forhåbentlig vil jeg langsomt være i stand til at finde ud af det."
"Ja, selvfølgelig vil du det."
GO TO FULL VERSION