1. Constante
Multe alte limbaje de programare au constante , adică variabile ale căror valori nu pot fi modificate . De obicei, ele sunt folosite pentru un fel de lucru fundamental, cum ar fi numărul Pi
sau numărul de zile din lunile anului. Acestea fiind spuse, în principiu, un programator poate face din orice variabilă o constantă, dacă el sau ea decide că acest lucru este necesar.
Deci, cum declari o variabilă imuabilă (constantă) în Java? Există un cuvânt cheie special pentru aceasta: final
. Crearea unei variabile imuabile arată la fel cu crearea uneia obișnuite. Singura diferență este că înainte de tipul variabilei trebuie să scrieți cuvântul final
, astfel:
final Type name = value;
Dacă încercați să atribuiți o valoare diferită unei final
variabile, atunci programul dvs. pur și simplu nu se va compila.
O final
variabilă trebuie inițializată (trebuie să-i fie atribuită o valoare) atunci când este declarată. Există o excepție de la această regulă: puteți muta inițializarea unei variabile de clasă statică într-un constructor. Dar veți afla despre asta la nivelul 10 .
Pentru a reduce numărul de cuvinte cheie, dezvoltatorii Java folosesc cuvântul final
pentru mai mult decât doar declararea constantelor. final
se poate aplica și metodelor și chiar claselor. Metodele declarate ca final
nu pot fi suprascrise, iar o clasă declarată ca final
nu poate fi moștenită.
Modificatorul final
poate fi adăugat înaintea oricăror variabile: variabile locale, parametri de metodă, câmpuri de clasă și variabile de clasă statice.
Rețineți că final
înainte de numele unei variabile este doar protecție împotriva oricăror modificări aduse acelei variabile . Dacă o variabilă stochează o referință la un obiect, atunci obiectul poate fi schimbat în continuare.
Exemplu:
|
Creăm o matrice. Acest lucru nu este permis: variabila data este declarată ca final . Dar poți face asta. Si tot asta. |
Constante globale
Dacă decideți să declarați constante globale în programul dvs., atunci trebuie să creați variabile de clasă statice și să le faceți public
și final
. Există un stil special pentru numele unor astfel de variabile: acestea sunt scrise cu majuscule, cu un caracter de subliniere folosit pentru a separa cuvintele.
Exemple:
class Solution
{
public static final String SOURCE_ROOT = "c:\\projects\\my\\";
public static final int DISPLAY_WIDTH = 1024;
public static final int DISPLAY_HEIGHT = 768;
}
2. Umbrire variabilă
După cum am spus anterior, nu puteți crea mai multe variabile locale cu același nume în aceeași metodă. În diferite metode, poți.
Dar iată ceea ce probabil nu știți: variabilele de instanță și variabilele de metodă locale pot avea același nume.
Exemplu:
Cod | Vizibilitate variabila |
---|---|
|
|
În add
metodă, am declarat o variabilă locală numită sum
. Până la sfârșitul metodei, umbră (sau maschează ) sum
variabila de instanță.
Bine, zici tu, este de așteptat într-un anumit sens. Dar acesta nu este sfârșitul poveștii. Se pare că, dacă o variabilă de instanță este umbrită de o variabilă locală, există totuși o modalitate de a face referire la variabila de instanță în cadrul metodei. Facem acest lucru scriind this
cuvântul cheie înaintea numelui său:
this.name
Iată un exemplu în care conflictul de nume este rezolvat cu succes:
Cod | Vizibilitate variabila |
---|---|
|
|
Variabilele count
și sum
sunt disponibile peste tot cu sau fără this
cuvântul cheie. Pe liniile în care sum
variabila locală umbră variabila sum
instanță, sum
variabila instanță poate fi accesată numai folosind this
cuvântul cheie.
Dacă o variabilă de clasă statică mai degrabă decât o variabilă de instanță este umbrită, atunci trebuie să o accesați prin numele clasei și nu prin cuvântul this
cheie:
ClassName.name
Exemplu:
Cod | Vizibilitate variabila |
---|---|
|
|
Puteți accesa variabilele count
și sum
variabilele statice oriunde cu sau fără utilizarea numelui clasei Solution
ca prefix. În acele linii în care sum
variabila locală umbră sum
variabila de instanță, accesul la sum
variabila de instanță este posibil numai atunci când este utilizată Solution
ca prefix.
3. Variabile în interiorul unei for
bucle
Și încă un fapt mic, dar interesant.
Există, de asemenea, un loc în care o variabilă este declarată într-un mod special - în interiorul unei for
bucle .
Vă puteți aminti că o for
buclă are de obicei o variabilă contor între paranteze. Și care va fi vizibilitatea acestei variabile? La urma urmei, nu se află în corpul buclei. Este întreaga metodă? Sau nu?
Răspunsul corect este: o variabilă declarată în antetul unei for
bucle este vizibilă numai în corpul buclei și în antetul bucleifor
.
Exemplu:
Cod | Vizibilitate variabila |
---|---|
|
|
Deci, puteți oricând să scrieți bucle una după alta în codul dvs. și să utilizați variabile de contor cu același nume - asta nu va crea probleme.
Exemplu:
Cod | Vizibilitate variabila |
---|---|
|
|
GO TO FULL VERSION