Java juurdepääsu modifikaatorid (koos näidetega)

Selles õpetuses õpime näidete abil Java Access Modifierit, selle tüüpe ja nende kasutamist.

Mis on juurdepääsu modifikaatorid?

Java-s kasutatakse juurdepääsumuundureid klasside, liideste, muutujate, meetodite, konstruktorite, andmeliikmete ja setter-meetodite juurdepääsetavuse (nähtavuse) määramiseks. Näiteks,

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

Ülaltoodud näites oleme deklareerinud 2 meetodit: method1 () ja method2 (). Siin,

  • method1 on public- see tähendab, et sellele pääsevad juurde teised klassid.
  • method2 on private- see tähendab, et teised klassid ei pääse sellele juurde.

Pange tähele märksõna publicja private. Need on Java juurdepääsu modifikaatorid. Neid tuntakse ka kui nähtavuse modifitseerijaid.

Märkus . Te ei saa seadistada getters-meetodite juurdepääsu modifikaatorit.

Juurdepääsu modifitseerija tüübid

Enne juurdepääsu modifikaatorite tüüpide tundmaõppimist veenduge, et teaksite Java-pakette.

Java-s on neli juurdepääsu muutmise märksõna ja need on:

Muutja Kirjeldus
Vaikimisi deklaratsioonid on nähtavad ainult pakendis (pakett privaatne)
Privaatne deklaratsioonid on nähtavad ainult klassi sees
Kaitstud deklaratsioonid on pakendis või kõikides alaklassides nähtavad
Avalik deklaratsioonid on kõikjal nähtavad

Vaikimisi juurdepääsu modifikaator

Kui me ei määra selgesõnaliselt ühtegi juurdepääsumuundurit klasside, meetodite, muutujate jne jaoks, loetakse vaikimisi vaikimisi juurdepääsumuundurit. Näiteks,

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

Siin on logijaklassil vaikimisi juurdepääsumuundur. Ja klass on nähtav kõigile klassidele, mis kuuluvad paketti defaultPackage. Kui proovime Logger klassi kasutada teises klassis väljaspool defaultPackage'i, saame kompileerimisvea.

Privaatse juurdepääsu modifitseerija

Muutujate ja meetodite deklareerimisel privateei pääse neile juurde väljaspool klassi. Näiteks,

 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"; ) )

Ülalolevas näites oleme deklareerinud privaatse muutuja nimega nimi ja privaatse meetodi nimega display(). Programmi käivitamisel kuvatakse järgmine tõrge:

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

Viga genereeritakse, kuna proovime pääseda klassi Data privaatsele muutujale ja privaatsele meetodile põhiklassist.

Võib-olla mõtlete, et mis siis, kui peame nendele privaatsetele muutujatele juurde pääsema. Sel juhul saame kasutada getters ja setters meetodit. Näiteks,

 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()); ) )

Väljund :

 Nimi on Programiz

Ülaltoodud näites on meil privaatne muutuja nimega. Muutujale pääsemiseks välisklassist oleme kasutanud meetodeid: getName()ja setName(). Neid meetodeid nimetatakse Java-s getter ja setter.

Siin oleme setName()muutujale väärtuse määramiseks kasutanud setter-meetodit ( ) ja muutujale getName()juurdepääsu saamiseks getter-meetodit ( ).

Oleme thisklassi muutujale viitamiseks kasutanud märksõna setName (). Selle märksõna kohta lisateabe saamiseks külastage Java seda märksõna.

Märkus . Me ei saa kuulutada Java-klasside ja liideste privaatseks. Pesastatud klassid võib aga kuulutada privaatseteks. Lisateabe saamiseks külastage Java pesastatud ja sisemist klassi.

Kaitstud juurdepääsu modifikaator

Kui meetodid ja andmeliikmed deklareeritakse protected, saame neile juurde pääseda nii ühes paketis kui ka alaklassidest. Näiteks,

 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(); ) )

Väljund :

 Olen loom

Ülaltoodud näites on meil kaitstud meetod, mida nimetatakse loomaklassi display()sees. Loomade klassi pärib koerte klass. Pärimise kohta lisateabe saamiseks külastage Java pärimist.

Seejärel lõime koera klassi koera. Objekti abil proovisime pääseda juurde vanema klassi kaitstud meetodile.

Kuna kaitstud meetoditele pääseb juurde lasteklassidest, on meil juurdepääs loomaklassi meetodile koerte klassist.

Märkus . Me ei saa deklareerida protectedJava- klasside või liideste nime .

Avaliku juurdepääsu modifitseerija

Kui meetodid, muutujad, klassid ja nii edasi deklareeritakse public, siis pääseme neile juurde kõikjalt. Avaliku juurdepääsu modifikaatoril ei ole ulatuse piirangut. Näiteks,

 // 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(); ) )

Väljund :

Olen loom. Mul on 4 jalga.

Siin,

  • Avaliku klassi loomale pääseb ligi peaklassist.
  • Avalikule muutujale legCount pääseb ligi põhiklassist.
  • Avalikule meetodile display()pääseb ligi klassist Main.

Juurdepääsu modifikaatorid on kokku võetud ühes joonises

Kõigi Java juurdepääsumuundurite juurdepääsetavus

Juurdepääsu modifikaatoreid kasutatakse peamiselt kapseldamiseks. Ma saan aidata meil kontrollida, milline osa programmist pääseb klassi liikmetele juurde. Nii et andmete väärkasutamist saab vältida. Kapseldamise kohta lisateabe saamiseks külastage Java kapseldamist.

Huvitavad Artiklid...