Modifikátory prístupu Java (s príkladmi)

V tomto tutoriále sa pomocou príkladov dozvieme o Java Access Modifier, jeho typoch a ako ich používať.

Čo sú modifikátory prístupu?

V Jave sa modifikátory prístupu používajú na nastavenie prístupnosti (viditeľnosti) tried, rozhraní, premenných, metód, konštruktorov, dátových členov a metód nastavovača. Napríklad,

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

Vo vyššie uvedenom príklade sme deklarovali dve metódy: method1 () a method2 (). Tu,

  • metóda1 je public- To znamená, že k nej môžu získať prístup iné triedy.
  • method2 is private- To znamená, že k nim nemožno získať prístup inými triedami.

Poznačte si kľúčové slovo publica private. Toto sú modifikátory prístupu v Jave. Sú tiež známe ako modifikátory viditeľnosti.

Poznámka : Nie je možné nastaviť modifikátor prístupu metód getra.

Typy modifikátora prístupu

Predtým, ako sa dozviete o typoch modifikátorov prístupu, nezabudnite vedieť o balíkoch Java.

V Jave existujú štyri kľúčové slová modifikujúce prístup a sú to:

Modifikátor Popis
Predvolené vyhlásenia sú viditeľné iba v rámci balíka (balík súkromný)
Súkromné vyhlásenia sú viditeľné iba v rámci triedy
Chránené vyhlásenia sú viditeľné v balíku alebo vo všetkých podtriedach
Verejné vyhlásenia sú viditeľné všade

Predvolený modifikátor prístupu

Ak výslovne neurčíme žiadny modifikátor prístupu pre triedy, metódy, premenné atď., Potom sa predvolene použije predvolený modifikátor prístupu. Napríklad,

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

Trieda Logger tu má predvolený modifikátor prístupu. A trieda je viditeľná pre všetky triedy, ktoré patria do balíka defaultPackage. Ak sa však pokúsime použiť triedu Logger v inej triede mimo defaultPackage, zobrazí sa chyba kompilácie.

Modifikátor súkromného prístupu

Keď sú premenné a metódy deklarované private, nemožno k nim získať prístup mimo triedy. Napríklad,

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

Vo vyššie uvedenom príklade sme deklarovali súkromnú premennú s názvom name a súkromnú metódu s názvom display(). Po spustení programu sa zobrazí nasledujúca chyba:

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

Chyba je generovaná, pretože sa pokúšame získať prístup k súkromnej premennej a súkromnej metóde triedy Data z triedy Main.

Možno by vás zaujímalo, čo ak budeme potrebovať prístup k týmto súkromným premenným. V takom prípade môžeme použiť metódu getre a setre. Napríklad,

 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ýstup :

 Názov je Programiz

Vo vyššie uvedenom príklade máme súkromnú premennú s názvom name. Na prístup k premennej z vonkajšej triedy sme použili metódy: getName()a setName(). Tieto metódy sa v jazyku Java nazývajú getter a setter.

Tu sme použili metódu setter ( setName()) na priradenie hodnoty premennej a metódu getter ( getName()) na prístup k premennej.

Použili sme thiskľúčové slovo vo vnútri setName () na označenie premennej triedy. Ak sa chcete dozvedieť viac informácií o tomto kľúčovom slove, navštívte Java toto kľúčové slovo.

Poznámka : V Jave nemôžeme vyhlásiť triedy a rozhrania za súkromné. Vnorené triedy však môžu byť vyhlásené za súkromné. Ak sa chcete dozvedieť viac, navštívte Java Nested a Inner Class.

Modifikátor chráneného prístupu

Keď sú deklarované metódy a dátové členy protected, máme k nim prístup v rámci rovnakého balíka, ako aj z podtried. Napríklad,

 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ýstup :

 Som zviera

Vo vyššie uvedenom príklade máme chránenú metódu pomenovanú display()vo vnútri triedy Animal. Trieda zvierat sa dedí po triede psov. Ak sa chcete dozvedieť viac o dedičstve, navštívte stránku Java Inheritance.

We then created an object dog of the Dog class. Using the object we tried to access the protected method of the parent class.

Since protected methods can be accessed from the child classes, we are able to access the method of Animal class from the Dog class.

Note: We cannot declare classes or interfaces protected in Java.

Public Access Modifier

When methods, variables, classes, and so on are declared public, then we can access them from anywhere. The public access modifier has no scope restriction. For example,

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

Output:

 I am an animal. I have 4 legs.

Here,

  • The public class Animal is accessed from the Main class.
  • The public variable legCount is accessed from the Main class.
  • The public method display() is accessed from the Main class.

Access Modifiers Summarized in one figure

Prístupnosť všetkých modifikátorov prístupu v Jave

Modifikátory prístupu sa používajú hlavne na zapuzdrenie. Môžem nám pomôcť určiť, ktorá časť programu má prístup k členom triedy. Aby sa dalo zabrániť zneužitiu údajov. Ak sa chcete dozvedieť viac informácií o zapuzdrení, navštívte Java Encapsulation.

Zaujímavé články...