Variabile locale
„Salut, iubitul meu student! Este timpul să fim un pic mai serioși în privința variabilelor. Dar de data aceasta nu vom discuta despre structura lor internă. În schimb, ne vom concentra asupra modului în care variabilele interacționează cu codul în care sunt localizate.
„Toate variabilele care sunt declarate în interiorul metodelor se numesc variabile locale . O variabilă locală există doar în blocul de cod în care este declarată. Sau, mai precis, există din momentul în care este declarată și până la sfârșitul blocului. de cod în care este declarat.”
— În mod clar, am nevoie de un exemplu.
„Nici o problemă. Iată:
Cod | Disponibilitate variabilă |
---|---|
|
|
"Să trecem încă o dată peste regulile de accesare a variabilelor locale. Iată un bloc de cod. Ce marchează începutul și sfârșitul acestuia?"
"Acolade?"
„Corect. Acesta poate fi un corp de metodă, corpul unei bucle sau doar un bloc de cod pentru o instrucțiune condiționată. O variabilă declarată într-un bloc de cod există până la sfârșitul acelui bloc de cod. Spune-mi, unde va fi o variabilă există dacă este declarată în corpul unei bucle?"
„Va exista doar în corpul buclei”.
"Așa este. În plus, va fi creat și distrus la fiecare iterație a buclei."
„Asta înseamnă că nu puteți declara două variabile locale cu același nume într-o singură metodă — programul nu se va compila. Dar puteți face acest lucru dacă blocurile de cod în care sunt declarate variabilele nu se suprapun. ”
„Există un motiv pentru care ești preferatul meu, Amigo. Mai ia un exemplu pentru a consolida asta în creierul tău.
Cod | Vizibilitate variabila |
---|---|
|
|
„Am putut declara o a doua variabilă locală numită b
doar pentru că prima b
variabilă nu este vizibilă în blocul de cod în care b
este declarată a doua variabilă.
Parametrii
„Așa cum am spus mai înainte, fiecare metodă poate avea variabile pe care le numim parametri. Cum rămâne cu vizibilitatea și durata lor de viață?”
"Hmm... sunt nedumerit..."
"Totul este destul de simplu aici. Parametrii sunt creați atunci când execuția intră în metodă (adică când codul metodei începe să se execute). Aceștia sunt eliminați când metoda se termină."
„Cu alte cuvinte, sunt vizibile în întreg corpul metodei și doar acolo?”
„Da. Exemplu:
Cod | Vizibilitate variabila |
---|---|
|
|
„Așa cum am spus mai devreme, args
este doar o variabilă al cărei tip este o matrice de șiruri de caractere. Și, ca toți parametrii, este disponibil peste tot în corpul metodei. Acestea fiind spuse, de obicei o ignorăm în exemplele noastre.
Variabile dintr-o clasă
„Amintiți-vă de lecțiile de la Nivelul 1, unde am spus că o clasă poate avea metode și variabile. Metodele sunt uneori numite metode de instanță, iar variabile - variabile de instanță sau câmpuri.
„Care sunt variabilele (sau câmpurile) unei clase ?
Sunt variabile care sunt declarate nu într-o metodă, ci într-o clasă.”
— Și pentru ce sunt acolo?
„Pentru început, ele pot fi accesate din orice metodă (nestatică) a unei clase. În linii mari, variabilele de instanță sunt variabile care sunt partajate de toate metodele unei clase.
Exemplu:
Cod | Vizibilitate variabila |
---|---|
|
|
„În acest exemplu, avem două metode — add()
și remove()
. add()
Metoda incrementează variabilele de instanță sum
și count
, iar remove()
metoda scade variabilele sum
și count
. Ambele metode funcționează pe variabilele de instanță partajate.”
"Înțeleg totul! Variabilele locale există în timp ce o metodă se execută. Variabilele de instanță ale unei clase există în cadrul unui obiect al unei clase atâta timp cât acel obiect există."
„Bravo, Amigo. Am pus bazele și vei afla detalii despre obiectele unei clase la nivelul următor.
Variabile statice
„Ca și metodele, variabilele dintr-o clasă pot fi statice sau nestatice. Metodele statice pot accesa doar variabile statice.
„Nu am încă o înțelegere clară a variabilelor statice.”
„O, știu, dar nu vă faceți griji. Deocamdată, familiarizați-vă cu ele. Familiarizați-vă cu ele. La Nivelul 11, vom analiza structura variabilelor și metodelor statice și veți înțelege motivele pentru acestea. restricții.
„Pentru a face o variabilă statică (variabilă de clasă), trebuie să scrieți static
cuvântul cheie în declarația sa.
„Variabilele statice nu sunt legate de un obiect sau instanță a clasei în care sunt declarate. În schimb, aparțin clasei în sine. De aceea există chiar dacă nu a fost creat niciun obiect al clasei . Puteți face referire la le din alte clase folosind un construct ca:
ClassName.variableName
Exemplu:
Cod | Vizibilitate variabila |
---|---|
|
|
"In the above example, we created a separate Storage
class, moved the count
and sum
variables into it, and declared them static. Public static variables can be accessed from any method in a program (and not only from a method)."
"I don't fully understand, but this seems convenient to me."
"So it is. And sometimes it is necessary. Without static variables and methods we would be stuck."
"Hopefully, I'll slowly be able to figure it out."
"Yes, of course you will."
GO TO FULL VERSION