Modifikatorji dostopa Java (s primeri)

V tej vadnici bomo s pomočjo primerov spoznali Java Access Modifier, njegove vrste in kako jih uporabiti.

Kaj so modifikatorji dostopa?

V Javi se z modifikatorji dostopa nastavi dostopnost (vidnost) razredov, vmesnikov, spremenljivk, metod, konstruktorjev, podatkovnih članov in metod nastavitve. Na primer

 class Animal ( public void method1() (… ) private void method2() (… ) )

V zgornjem primeru smo razglasili 2 metodi: method1 () in method2 (). Tukaj,

  • method1 je public- To pomeni, da do njega lahko dostopajo drugi razredi.
  • method2 je private- To pomeni, da drugi razredi do njega ne morejo dostopati.

Upoštevajte ključno besedo publicin private. To so modifikatorji dostopa v Javi. Znani so tudi kot modifikatorji vidnosti.

Opomba : Ne morete nastaviti modifikatorja dostopa za metode pridobivanja.

Vrste modifikatorja dostopa

Preden se naučite o vrstah modifikatorjev dostopa, se prepričajte, da poznate pakete Java.

V Javi obstajajo štiri ključne besede za modifikatorje dostopa, in sicer:

Modifikator Opis
Privzeto izjave so vidne samo znotraj paketa (zasebni paket)
Zasebno izjave so vidne samo znotraj razreda
Zaščiteno izjave so vidne v paketu ali vseh podrazredih
Javno izjave so vidne povsod

Privzeti modifikator dostopa

Če izrecno ne določimo nobenega modifikatorja dostopa za razrede, metode, spremenljivke itd., Potem je privzeto upoštevan privzeti modifikator dostopa. Na primer

 package defaultPackage; class Logger ( void message()( System.out.println("This is a message"); ) )

Tu ima razred Logger privzeti modifikator dostopa. In razred je viden vsem razredom, ki spadajo v paket defaultPackage. Če pa bomo poskusili uporabiti razred Logger v drugem razredu zunaj defaultPackage, bomo dobili napako pri prevajanju.

Modifikator zasebnega dostopa

Ko so spremenljivke in metode deklarirane private, do njih ni mogoče dostopati zunaj razreda. Na primer

 class Data ( // private variable private String name; ) public class Main ( public static void main(String() main)( // create an object of Data Data d = new Data(); // access private variable and field from another class d.name = "Programiz"; ) )

V zgornjem primeru smo razglasili zasebno spremenljivko z imenom in zasebno metodo z imenom display(). Ko zaženemo program, bomo dobili naslednjo napako:

 Main.java:18: error: name has private access in Data d.name = "Programiz"; ^

Napaka je ustvarjena, ker poskušamo dostopati do zasebne spremenljivke in zasebne metode razreda podatkov iz razreda Main.

Morda se sprašujete, kaj, če moramo dostopati do teh zasebnih spremenljivk. V tem primeru lahko uporabimo metodo getters in setters. Na primer

 class Data ( private String name; // getter method public String getName() ( return this.name; ) // setter method public void setName(String name) ( this.name= name; ) ) public class Main ( public static void main(String() main)( Data d = new Data(); // access the private variable using the getter and setter d.setName("Programiz"); System.out.println(d.getName()); ) )

Izhod :

 Ime je Programiz

V zgornjem primeru imamo zasebno spremenljivko z imenom. Za dostop do spremenljivke iz zunanjega razreda smo uporabili metode: getName()in setName(). Te metode se v Javi imenujejo getter in setter.

Tu smo uporabili metodo setter ( setName()) za dodelitev vrednosti spremenljivki in getter metodo ( getName()) za dostop do spremenljivke.

thisKljučno besedo znotraj setName () smo uporabili za sklicevanje na spremenljivko razreda. Če želite izvedeti več o tej ključni besedi, obiščite Javo to ključno besedo.

Opomba : V Javi ne moremo razglasiti razredov in vmesnikov za zasebne. Vgnezdene razrede pa lahko razglasimo za zasebne. Če želite izvedeti več, obiščite Java ugnezdeni in notranji razred.

Modifikator zaščitenega dostopa

Ko so metode in člani podatkov deklarirani protected, lahko do njih dostopamo v istem paketu kot tudi iz podrazredov. Na primer

 class Animal ( // protected method protected void display() ( System.out.println("I am an animal"); ) ) class Dog extends Animal ( public static void main(String() args) ( // create an object of Dog class Dog dog = new Dog(); // access protected method dog.display(); ) )

Izhod :

 Jaz sem žival

V zgornjem primeru imamo zaščiteno metodo, imenovano display()znotraj razreda Animal. Razred Animal podeduje razred Dog. Če želite izvedeti več o dedovanju, obiščite Java Dedovanje.

Nato smo ustvarili predmetnega psa razreda Dog. Z objektom smo poskušali dostopati do zaščitene metode nadrejenega razreda.

Ker je do zaščitenih metod mogoče dostopati iz podrejenih razredov, lahko do razreda Animal dostopimo iz razreda Dog.

Opomba : V protectedJavi ne moremo prijaviti razredov ali vmesnikov .

Modifikator javnega dostopa

Ko so razglašene metode, spremenljivke, razredi itd. public, Lahko do njih dostopamo od koder koli. Modifikator javnega dostopa nima omejitve obsega. Na primer

 // Animal.java file // public class public class Animal ( // public variable public int legCount; // public method public void display() ( System.out.println("I am an animal."); System.out.println("I have " + legCount + " legs."); ) ) // Main.java public class Main ( public static void main( String() args ) ( // accessing the public class Animal animal = new Animal(); // accessing the public variable animal.legCount = 4; // accessing the public method animal.display(); ) )

Izhod :

Jaz sem žival. Imam 4 noge.

Tukaj,

  • Javni razred Žival je dostopen iz glavnega razreda.
  • Javna spremenljivka legCount je dostopna iz razreda Main.
  • Do javne metode display()lahko dostopate iz razreda Main.

Modifikatorji dostopa, povzeti v eni sliki

Dostopnost vseh modifikatorjev dostopa v Javi

Modifikatorji dostopa se v glavnem uporabljajo za inkapsulacijo. Lahko vam pomagam nadzorovati, kateri del programa lahko dostopa do članov predavanja. Tako je mogoče preprečiti zlorabo podatkov. Če želite izvedeti več o enkapsulaciji, obiščite Java Encapsulation.

Zanimive Članki...