modificatorii nivelului de acces determină dacă alte clase pot utiliza un anumit câmp sau pot invoca o anumită metodă. Există două niveluri de control al accesului:
- la nivelul superior –
public
, sau package-private (fără modificator explicit). - La nivel de membru
public
,private
,protected
, sau pachet-privat (nu explicit modificator).,
o clasă poate fi declarată cu modificatorul public
, caz în care acea clasă este vizibilă pentru toate clasele de pretutindeni. Dacă o clasă nu are modificator (implicit, cunoscut și sub numele de package-private), este vizibilă doar în propriul pachet (pachetele sunt numite grupuri de clase înrudite veți afla despre ele într-o lecție ulterioară.)
La nivel de membru, puteți utiliza, de asemenea, public
modificator sau nu modificator (pachet-privat) doar ca cu clase de nivel superior, și cu același înțeles., Pentru membri, există doi modificatori de acces suplimentari: private
și protected
. Modificatorul private
specifică faptul că membrul poate fi accesat numai în propria sa clasă. Modificatorul protected
specifică faptul că membrul poate fi accesat numai în propriul pachet (ca în cazul pachetului-privat) și, în plus, printr-o subclasă a clasei sale într-un alt pachet.
următorul tabel arată accesul la membri permis de fiecare modificator.,Modifier
public
protected
private
The first data column indicates whether the class itself has access to the member defined by the access level., După cum puteți vedea, o clasă are întotdeauna acces la propriii membri. A doua coloană indică dacă clasele din același pachet cu clasa (indiferent de originea lor) au acces la membru. A treia coloană indică dacă subclasele clasei declarate în afara acestui pachet au acces la membru. A patra coloană indică dacă toate clasele au acces la membru.
nivelurile de acces vă afectează în două moduri., În primul rând, atunci când utilizați clase care provin dintr-o altă sursă, cum ar fi clasele din platforma Java, nivelurile de acces determină membrii acelor clase pe care le pot utiliza propriile clase. În al doilea rând, când scrieți o clasă, trebuie să decideți ce nivel de acces ar trebui să aibă fiecare variabilă membru și fiecare metodă din clasa dvs.să ne uităm la o colecție de clase și să vedem cum afectează nivelurile de acces vizibilitatea. Următoarea figură prezintă cele patru clase din acest exemplu și modul în care acestea sunt legate.,
Clase și Pachete de Exemplu Folosit pentru a Ilustra Niveluri de Acces
În tabelul următor se prezintă în cazul în care membrii Alpha clasa sunt vizibile pentru fiecare dintre modificatorii de acces care pot fi aplicate acestora.,ha
public
protected
private
If other programmers use your class, you want to ensure that errors from misuse cannot happen., Nivelurile de acces vă pot ajuta să faceți acest lucru.
- utilizați cel mai restrictiv nivel de acces care are sens pentru un anumit membru. Utilizați
private
dacă nu aveți un motiv bun să nu. - evitați
public
câmpuri cu excepția constantelor. (Multe dintre exemplele din tutorial folosesc câmpuri publice. Acest lucru poate ajuta pentru a ilustra unele puncte concis, dar nu este recomandat pentru codul de producție.) Câmpurile publice tind să vă conecteze la o anumită implementare și să vă limiteze flexibilitatea în schimbarea codului.