Introducere în modificatorii de acces în Java

După cum știm cu toții, Java este unul dintre cele mai importante limbaje de programare din lume. Miliarde de dispozitive se bazează pe el în ultimele două decenii. Java este un limbaj rapid, de încredere, sigur și multi-platformă. Java rulează pe orice dispozitiv atâta timp cât acel dispozitiv are Java Runtime Java (JRE), ceea ce îl face un limbaj multi-platformă, rapid și de încredere. Modificatorul de acces este proprietatea Java, ceea ce îl face sigur pe platforma multiplă. Java oferă siguranță la nivel de clasă (în timpul încapsulării) programatorului folosind proprietatea modificatorului de acces. Conform cărții, Class este modelul pentru construirea unui obiect în java, ceea ce îl face „Bloc de construcție” pentru program, deoarece Java este un limbaj orientat pe obiecte. Un modificator de acces specifică modul în care orice clasă poate accesa o anumită clasă și câmpurile, constructorii și metodele acesteia din interior și pachete diferite. Clasa, câmpurile, constructorii și metodele pot avea unul dintre patru modificatori de acces Java diferiți.

  • Privat
  • Public
  • Protejat
  • Implicit - Nu este necesar un cuvânt cheie.

Diferenti modificatori de acces în Java

Următorul tabel rezumă modul în care putem aplica modificatorii de acces Java la program:

ModificatoriiClasăpacheteSubclasăLume
PrivatYNNN
PublicYYYY
ProtejatYYYN
Mod implicitYYNN

Vom acoperi fiecare modificator de acces Java în secțiunile următoare.

1) Implicit

Când orice clasă, membrii de date și variabila sunt declarate prin a nu scrie cu un modificator de acces, atunci aceasta este setată la modificatorul de acces „implicit”. Modificatorul de acces „implicit” înseamnă că codul din cadrul oricărei clase poate accesa întregul program în cadrul aceluiași pachet.

  • Acest modificator de acces funcționează doar în același pachet.
  • Uneori, modificatorul de acces „implicit” este denumit și modificator de acces la pachet, deoarece este accesibil doar în cadrul aceluiași pachet.
  • Subclasele nu pot accesa metode, membri de date și variabile (câmpuri) din superclasă, dacă aceste metode, membri de date și variabile (câmpuri) sunt marcate cu modificatorul de acces "implicit" din clasă, cu excepția cazului în care aceste subclase sunt situate în același pachet ca și superclasei.

Exemplul # 1:

//Java program to show the default modifier.
package Test;
//Where Class eduCBA is having Default access modifier as no access modifier is specified here
class eduCBA
(
void display ()
(
System.out.println("Hello World!");
)
)

ieşire:

Salut Lume!

Exemplul # 2:

//Java program to show error while using class from different package with default modifier
package test2;
import test.*;
//This class check is having default access modifier
class Check
(
public static void main(String args())
(
//accessing class eduCBA from package test
eduCBA obj = new eduCBA();
obj.display();
)
)

ieşire:

Eroare de timp de compilare.

2) protejat

Sintaxa „protejată” este utilizată de utilizatori atunci când doresc să utilizeze acest modificator de acces.

  • Acest modificator de acces este accesibil numai în cadrul aceluiași pachet sau aceleași sub-clase din clase diferite (dar utilizatorii trebuie să importe acel pachet acolo unde a fost specificat).
  • Utilizatorul nu poate marca clasa și interfețele cu modificatorul de acces „protejat”. Cu toate acestea, Metode și câmpuri pot fi declarate protejate Dacă metodele și câmpurile sunt într-o interfață.

De exemplu:

//Java program to show to protected access modifier
package test;
//Class eduCBA
public class eduCBA
(
protected void display ()
(
System.out.println("Hello World!");
)
)
//Java program to show to protected modifier in same sub-classes of different packages
package test2;
import test.*;
//Class pro is subclass of eduCBA
class pro extends eduCBA
(
public static void main(String args())
(
pro obj = new pro();
obj.display();
)
)

ieşire:

Salut Lume!

3) Public

Utilizatorul poate declara o clasă, o metodă, un constructor și o interfață cu un modificator de acces „public”, la care poate accesa orice clasă, metodă, constructor și interfață din sau pachete diferite.

  • Acest modificator de acces are Boundless printre toți modificatorii.
  • În cazul în care orice clasă, metode sau pachet marcat cu modificator de acces „public”, unde este accesibil tuturor de pretutindeni din program.
  • Nu există limitări ale domeniului de aplicare a clasei de acces „public”.

De exemplu: -

//Java program to show to public access modifier
package test;
public class eduCBA
(
public void display ()
(
System.out.println("Hello World!");
)
)
package test2;
import test.*;
class pub
(
public static void main (String args ())
(
eduCBA obj = new eduCBA ();
obj.display ();
)
)

ieşire:

Salut Lume!

4) Privat

Când o metodă sau o variabilă marcată ca modificatori de acces „private”, atunci codul din aceeași clasă poate accesa numai acele metode și variabile.

Utilizatorul nu poate declara nicio super-clasă cu modificator de acces „privat” în program și dacă utilizatorul face acest lucru cu orice clasă, atunci acea clasă nu este accesibilă oricărei alte clase din același pachet care face ca niciuna să nu folosească clasa. utilizatorul poate declara variabile și metode din clasă cu modificator de acces „privat”, astfel încât oricine nu poate utiliza acele variabile și metode.

Ocazional, oamenii se confundau cu modificatorul de acces „privat” și „protejat”, dar ambele sunt diferite.

De exemplu: -

//Program to show error while using a class from different packages with private modifier.
package test;
class eduCBA
(
private void display()
(
System.out.println("Hello World!");
)
)
class Check
(
public static void main (String args())
(
eduCBA obj = new eduCBA();
//make class check to access private method of another class eduCBA.
obj.display();
)
)

ieşire:

eroare: display () are acces privat în eduCBA obj.display ();

Concluzie

Modificatorul de acces Java vă oferă un avantaj suplimentar peste programul dvs. atunci când îl faceți public. După cum studiam mai sus, Diferite tipuri de modificatori de acces în JAVA și specificațiile lor.

Așa că rețineți de fiecare dată când folosiți unul dintre ele ca acces de clasă sau interfață, deoarece acestea nu oferă doar accesul, dar le înlocuiesc. Deși există întotdeauna o îngrijorare cu privire la accesibilitatea metodei din program. De exemplu, dacă unei interfețe i se atribuie modificatorul de acces „implicit” din superclasă, atunci este permis să se înlocuiască modificatorii de acces folosiți în subclasa metodei.

Notă: Clasa include variabile, constructori, câmpuri și metode, iar interfața include câmpuri sau metode specifice.

Articole recomandate

Acesta este un ghid pentru modificatorii de acces în Java. Aici vom discuta despre diferitele tipuri de modificatori de acces în java și specificațiile lor. Puteți parcurge și alte articole sugerate pentru a afla mai multe -

  1. Programare orientată pe obiecte în Java
  2. Întrebări de interviu Java
  3. Ce este Sincronizarea în Java?
  4. Autoxoxing și Unboxing în Java
  5. Modificatori de acces în C ++ (Tipuri)
  6. Ghid uimitor pentru modificatorii de acces în C #
  7. Modificatori de acces în PHP
  8. JRE vs JVM | Top 8 diferențe cu (Infografie)