Šajā apmācībā mēs uzzināsim par Java Access Modifier, tā veidiem un to izmantošanu, izmantojot piemērus.
Kas ir piekļuves modifikatori?
Programmā Java piekļuves modifikatorus izmanto, lai iestatītu klašu, saskarņu, mainīgo, metožu, konstruktoru, datu dalībnieku un seteru metožu pieejamību (redzamību). Piemēram,
class Animal ( public void method1() (… ) private void method2() (… ) )
Iepriekš minētajā piemērā mēs esam deklarējuši 2 metodes: method1 () un method2 (). Šeit,
- method1 is
public
- tas nozīmē, ka tai var piekļūt citas klases. - method2 is
private
- tas nozīmē, ka citas klases tam nevar piekļūt.
Ievērojiet atslēgvārdu public
un private
. Tie ir Java piekļuves modifikatori. Tos sauc arī par redzamības modifikatoriem.
Piezīme . Jūs nevarat iestatīt getters metožu piekļuves modifikatoru.
Piekļuves modifikatora veidi
Pirms uzzināt par piekļuves modifikatoru veidiem, pārliecinieties, vai zināt Java pakotnes.
Java ir četri piekļuves modifikatoru atslēgvārdi, un tie ir:
Pārveidotājs | Apraksts |
Noklusējums | deklarācijas ir redzamas tikai paketē (pakete privāta) |
Privāts | deklarācijas ir redzamas tikai klases ietvaros |
Aizsargāts | deklarācijas ir redzamas paketē vai visās apakšklasēs |
Publisks | deklarācijas ir redzamas visur |
Noklusējuma piekļuves modifikators
Ja mēs skaidri nenorādām piekļuves modifikatoru klasēm, metodēm, mainīgajiem utt., Pēc noklusējuma tiek uzskatīts noklusējuma piekļuves modifikators. Piemēram,
package defaultPackage; class Logger ( void message()( System.out.println("This is a message"); ) )
Šeit reģistrētāja klasei ir noklusējuma piekļuves modifikators. Klase ir redzama visām klasēm, kas pieder pakotnei defaultPackage. Tomēr, ja mēs mēģināsim izmantot reģistrētāja klasi citā klasē ārpus defaultPackage, mēs iegūsim kompilācijas kļūdu.
Privātas piekļuves modifikators
Kad mainīgie un metodes ir deklarēti private
, tiem nevar piekļūt ārpus klases. Piemēram,
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"; ) )
Iepriekš minētajā piemērā mēs esam deklarējuši privātu mainīgo ar nosaukumu name un privātu metodi ar nosaukumu display()
. Palaidot programmu, tiks parādīta šāda kļūda:
Main.java:18: error: name has private access in Data d.name = "Programiz"; ^
Kļūda tiek ģenerēta, jo mēs cenšamies piekļūt datu klases privātajam mainīgajam un privātajai metodei no klases Main.
Jums varētu būt jautājums, ko darīt, ja mums ir nepieciešams piekļūt šiem privātajiem mainīgajiem. Šajā gadījumā mēs varam izmantot getters un seters metodi. Piemēram,
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()); ) )
Izeja :
Nosaukums ir Programiz
Iepriekš minētajā piemērā mums ir privāts mainīgais ar nosaukumu. Lai piekļūtu mainīgajam no ārējās klases, mēs izmantojām metodes: getName()
un setName()
. Šīs metodes Java valodā sauc par getter un setter.
Šeit mēs izmantojām setera metodi ( setName()
), lai piešķirtu mainīgajam vērtību, un getter metodi ( getName()
), lai piekļūtu mainīgajam.
Mēs esam izmantojuši this
atslēgvārdu setName () iekšpusē, lai atsauktos uz klases mainīgo. Lai uzzinātu vairāk par šo atslēgvārdu, apmeklējiet Java šo atslēgvārdu.
Piezīme . Mēs nevaram pasludināt klases un saskarnes par privātām Java. Tomēr ligzdotās klases var pasludināt par privātām. Lai uzzinātu vairāk, apmeklējiet Java Nested un Inner Class.
Aizsargāts piekļuves pārveidotājs
Kad metodes un datu dalībnieki ir deklarēti protected
, mēs tiem varam piekļūt vienā paketē, kā arī no apakšklasēm. Piemēram,
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(); ) )
Izeja :
Es esmu dzīvnieks
Iepriekš minētajā piemērā mums ir aizsargāta metode, kas nosaukta display()
Dzīvnieku klasē. Dzīvnieku klasi pārmanto suņu klase. Lai uzzinātu vairāk par mantošanu, apmeklējiet Java mantojumu.
Pēc tam mēs izveidojām objektu suni no Suņu klases. Izmantojot objektu, mēs mēģinājām piekļūt vecāku klases aizsargātajai metodei.
Tā kā aizsargātajām metodēm var piekļūt no bērnu klasēm, mēs varam piekļūt dzīvnieku klases metodei no suņu klases.
Piezīme . Mēs nevaram deklarēt klases vai saskarnes protected
Java.
Publiskās piekļuves modifikators
Kad tiek deklarētas metodes, mainīgie, klases un tā tālāk public
, mēs tiem varam piekļūt no jebkuras vietas. Publiskās piekļuves modifikatoram nav darbības jomas ierobežojumu. Piemēram,
// 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(); ) )
Izeja :
Es esmu dzīvnieks. Man ir 4 kājas.
Šeit,
- Dzīvnieku publiskajai klasei var piekļūt no galvenās klases.
- Publiskajam mainīgajam legCount var piekļūt no galvenās klases.
- Publiskajai metodei
display()
var piekļūt no galvenās klases.
Piekļuves modifikatori Apkopoti vienā attēlā

Piekļuves modifikatorus galvenokārt izmanto iekapsulēšanai. Es varu palīdzēt mums kontrolēt, kura programmas daļa var piekļūt klases dalībniekiem. Lai varētu novērst datu ļaunprātīgu izmantošanu. Lai uzzinātu vairāk par iekapsulēšanu, apmeklējiet Java iekapsulēšanu.