Prehľad chráneného kľúčového slova v jazyku Java

Chránené kľúčové slová sú kľúčové slová, ktoré sa používajú na obmedzenie rozsahu, v rámci ktorého je možné získať prístup k premennej, metóde a konštruktorom. Je to jeden z typov modifikátorov prístupu v Jave. Používajú sa na rozlíšenie rozsahu metód, premenných, konštruktorov a tried. V jazyku Java existujú 4 typy modifikátorov prístupu:

  1. Predvolené kľúčové slovo: Prístup k nim je možný iba v rámci balíka a nedá sa nazývať mimo neho. Ako už názov napovedá, keď nie je uvedený žiadny špecifikátor prístupu, automaticky sa priradí ako predvolený.
  2. Verejné kľúčové slovo: Sú prístupné odkiaľkoľvek v programe. To znamená, že sa dá použiť z rovnakej alebo inej triedy a z rovnakého alebo iného obalu.
  3. Súkromné ​​kľúčové slovo: Obmedzujú kľúčové slová na vyššiu úroveň tým, že im neumožňujú prístup odkiaľkoľvek mimo samotnej triedy.
  4. Chránené kľúčové slovo: V tomto článku sa dozvieme viac o chránených kľúčových slovách.

Keď je premenná alebo metóda označená ako chránená, je k nim možné získať prístup iba pomocou nasledujúcich metód:

  • Vo vnútri tej istej triedy, v ktorej je deklarovaná.
  • Z ostatných tried, ktoré sú tiež v rovnakom balení ako deklarovaná trieda.
  • Triedy zdedené po deklarovanej triede, bez ohľadu na ich obal.

Chránené kľúčové slová sú ako kombinácia verejných aj súkromných kľúčových slov, pretože boli zavedené, aby mali prístup k premenným mimo triedy (čo nie je možné v prípade súkromných kľúčových slov), ale zároveň tvrdia, že rovnaké metódy môžu zdediť iba určité metódy.

syntax

Chránené kľúčové slová sa deklarujú s kľúčovým slovom s predponou ako „chránené“. Chránené kľúčové slovo najprv deklarujeme v jednej z tried s názvom „MyClass“, ako je uvedené nižšie:

class MyClass (
protected String name = "Katy";
protected int token= 55;
)
public class SubClass extends MyClass (
public static void main(String() args) (
SubClass obj = new SubClass();
System.out.println(obj.name + "'s token number is: " + obj.token);
)
)

Tu trieda „podtrieda“ rozširuje „MyClass“, a preto tu možno použiť chránené kľúčové slovo vytvorením objektu podtriedy a vyvolaním premenných.

Výkon:

Chránené kľúčové slová sa môžu použiť iba na úrovni členov, tj vnútorných tried, ktoré sú deklarované mimo funkcie a ktoré nie sú statické. Chránené kľúčové slovo sa líši od súkromného kľúčového slova, pretože k nemu je možné pristupovať mimo triedy a podtriedy iného balíka.

Niektoré z obmedzení používania chránených kľúčových slov sú:

  • Nemožno ich použiť na vyhlásenie tried za chránené.
  • Rozhrania nemožno vyhlásiť za chránené.
  • Prístup mimo balíka je možný iba prostredníctvom dedičstva.
  • Konštruktor, ktorý je vyrobený ako chránený, nemôže byť prístupný mimo balíka vytvorením jeho inštancie.

Príklady

Pozrime sa na niekoľko príkladov, kde lepšie pochopíme pojem chránených kľúčových slov.

1. Volanie chráneného kľúčového slova bez rozšírenia nadradenej triedy

Tu sa snažíme zavolať kľúčové slovo z rodičovskej triedy „package1“. ProtectedExample2 sa vytvorí v balíku „package2“ a nazýva sa tu kľúčové slovo „disp“. Kód však nebude mať prístup ku kľúčovému slovu, pretože podradená trieda nededičuje svoju hodnotu od hlavnej triedy a vyvolá výnimku, ako je to znázornené.

kód:

package com.package1;
public class Example (
protected String disp="Printing message from protected variable from package1";
)
//Create new package as com.package2
//Create new class as ProtectedExample2
package com.package2;
import com.package1.Example;
public class ProtectedExample2 (
public static void main(String() args) (
ProtectedExample2 a=new ProtectedExample2();
System.out.println(a.disp);
)
)

Výkon:

2. Prístup do chránenej triedy

V tomto príklade sa snažíme získať prístup k triede „ProtectedExample5“, ktorá je chránená. To spôsobuje chybu kompilácie.

kód:

protected class ProtectedExample5 (
void display()
(
System.out.println("Try to access outer protected class");
)
public static void main(String() args) (
ProtectedExample5 p=new ProtectedExample5();
p.display();
)
)

Výkon:

3. Zobrazenie chráneného kľúčového slova z toho istého balíka, ale z inej triedy

V nižšie uvedenom príklade najprv vytvoríme balík s názvom „com.package1“ a vytvoríme novú triedu s názvom „Example“. Týmto vyhlasujeme, že naše kľúčové slovo „disp“ je chránené. Pokúsime sa zobraziť toto chránené kľúčové slovo pomocou triedy „Príklad1“. Najprv je potrebné vytvoriť objekt nadradenej triedy „Príklad1“ a potom vytlačiť hodnotu priradenú kľúčovému slovu „disp“.

kód:

package com.package1;
public class Example (
protected String disp="Printing message from protected variable from package1";
)
class Example1 (
public static void main(String() args) (
Example obj=new Example();
System.out.println(obj.disp);
)
)

Výkon:

4. Zobrazenie chráneného kľúčového slova z iného balíka

Použitím toho istého kódu ako vyššie uvidíme, ako volať chránené kľúčové slovo vytvorením iného balíka „package2“. K chránenému kľúčovému slovu je možné pristupovať iba prostredníctvom dedičnosti z balíka1, a preto sa ProtectedExample2 rozširuje z „Example“. Podobne ako v prvom príklade, musíme vytvoriť objekt triedy „ProtectedExample2“, aby sme získali prístup k chránenému kľúčovému slovu z balíka „com.package1“.

kód:

package com.package2;
import com.package1.Example;
public class ProtectedExample2 extends Example(
public static void main(String() args) (
ProtectedExample2 a=new ProtectedExample2();
System.out.println(a.disp);
)
)

Výkon:

5. Prístup k chránenej triede prepísaním podtriedy

Tu je trieda vyhlásená za chránenú vo vnútri zdedenej triedy „Príklad5“. Chránená trieda s názvom „Príklad“ je tiež deklarovaná mimo funkcie, ale v rovnakom balíku. Keď sa vytvorí objekt „Príklad5“ a zavolá sa chránená trieda „disp ()“, môžeme pozorovať, že namiesto vonkajšej triedy sa volá prepísaná metóda. Je to preto, že nebudeme môcť importovať „com.package1“ a je to trieda „Príklad“, pretože to nie je viditeľné a spôsobuje chybu kompilácie.

kód:

//Create a file by Example.java
package com.package1;
class Example
(
protected void disp()
(
System.out.println("Printing from protected class in the outside function");
)
)
//Create a class by the name Example5.java
public class Example5 extends Example (
protected void disp()
(
System.out.println("Accessing the overriden function");
)
public static void main(String() args) (
Example5 exp=new Example5();
exp.disp();
)
)

Výkon:

Dôležitosť chráneného kľúčového slova

  • Tieto kľúčové slová umožňujú, aby boli triedy alebo ich premenné zdedené od svojej nadradenej triedy, čo nie je možné pri žiadnom inom obmedzenom kľúčovom slove, ako je napríklad súkromné.
  • Chránené kľúčové slovo je kombináciou výhody súkromného kľúčového slova a výhody verejného kľúčového slova. Vylučuje to nevýhodu verejného kľúčového slova, že premenná alebo trieda sú prístupné odkiaľkoľvek v programe obmedzením rozsahu.

Záver - chránené kľúčové slovo v jazyku Java

Ako je uvedené vo vyššie uvedených príkladoch, zvolili sme chránené kľúčové slová v závislosti od úrovne prístupu, ktorú požadujeme na úrovni kódu. Pomáhajú veľmi v prípadoch, keď k rovnakej premennej alebo triede treba pristupovať z iných zdedených metód v programe. Vzťah rodič-dieťa je vždy prítomný medzi rodičovskou triedou a jej podtriedami, ktoré používajú chránené kľúčové slovo.

Odporúčané články

Toto je sprievodca chránenými kľúčovými slovami v jazyku Java. Tu diskutujeme prehľad, syntax a rôzne príklady chránených kľúčových slov v jave. Ďalšie informácie nájdete aj v nasledujúcich článkoch -

  1. Zapuzdrenie do Java
  2. Konštruktor v jazyku Java
  3. Java Interview Otázky
  4. Prevažujúci počet OOP
  5. Kľúčové slová Java
  6. Java Deployment Tools
  7. Modifikátory prístupu v PHP
  8. Prevláda v Jave
  9. Zapuzdrenie do JavaScriptu

Kategórie: