Přehled chráněných klíčových slov v Javě

Chráněná klíčová slova jsou klíčová slova, která se používají k omezení rozsahu, v němž lze přistupovat k proměnné, metodě a konstruktérům. Je to jeden z typů modifikátorů přístupu v Javě. Používají se k rozlišení mezi rozsahem metod, proměnných, konstruktérů a tříd. V jazyce Java existují 4 typy modifikátorů přístupu:

  1. Výchozí klíčové slovo: Lze k nim přistupovat pouze v rámci balíčku a nelze je volat mimo něj. Jak název napovídá, není-li uveden žádný specifikátor přístupu, je automaticky přiřazen jako výchozí.
  2. Veřejné klíčové slovo: Lze k nim přistupovat odkudkoli v programu. To znamená, že může být použit ze stejné nebo jiné třídy a stejného nebo jiného balíčku.
  3. Soukromé klíčové slovo: Omezují klíčová slova na vyšší úroveň tím, že jim neumožňují přístup odkudkoli mimo samotnou třídu.
  4. Chráněné klíčové slovo: V tomto článku se seznámíme s chráněnými klíčovými slovy.

Jakmile je proměnná nebo metoda označena jako chráněná, lze k ní přistupovat pouze níže uvedenými metodami:

  • Uvnitř stejné třídy, ve které je deklarována.
  • Z jiných tříd, které jsou také ve stejném balíčku jako deklarovaná třída.
  • Třídy zděděné od deklarované, bez ohledu na jejich balíček.

Chráněná klíčová slova jsou jako kombinace veřejných i soukromých klíčových slov, protože byla zavedena, aby mohla přistupovat k proměnným mimo třídu (což není možné v případě soukromých klíčových slov), ale také tvrdí, že stejné metody mohou zdědit pouze určité metody.

Syntax

Chráněná klíčová slova jsou deklarována jako klíčová slova s ​​předponou „chráněna“. Nejprve deklarujeme chráněné klíčové slovo v jedné ze tříd s názvem „MyClass“, jak je uvedeno níže:

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

Zde třída „SubClass“ rozšiřuje „MyClass“, a proto zde lze použít chráněné klíčové slovo vytvořením objektu SubClass a voláním proměnných.

Výstup:

Chráněná klíčová slova lze použít pouze na úrovni členů, tj. Vnitřních tříd, které jsou deklarovány mimo funkci a které nejsou statické. Chráněné klíčové slovo se liší od klíčového slova soukromého, protože k nim lze přistupovat mimo třídu a v podtřídě jiného balíčku.

Některá omezení používání chráněných klíčových slov jsou:

  • Nelze je použít pro deklarování tříd jako chráněných.
  • Rozhraní nelze prohlásit za chráněné.
  • Dostupnost mimo balíček je pouze prostřednictvím dědičnosti.
  • K konstruktoru, který je vyroben jako chráněný, nelze přistupovat mimo balíček vytvořením jeho instance.

Příklady

Podívejme se na několik příkladů, kde můžeme lépe porozumět pojmu chráněná klíčová slova.

1. Volání chráněného klíčového slova bez rozšíření nadřazené třídy

Zde se pokusíme zavolat klíčové slovo z nadřazené třídy „package1“. ProtectedExample2 je vytvořen v „package2“ a zde se nazývá klíčové slovo „disp“. Kód však nebude mít přístup ke klíčovému slovu, protože podřízená třída nezdědila svou hodnotu od hlavní třídy a vyvolá výjimku, jak je znázorněno.

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

2. Přístup do chráněné třídy

V tomto příkladu se pokusíme získat přístup ke třídě „ProtectedExample5“, která je chráněna. To způsobí chybu kompilace.

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

3. Zobrazení chráněného klíčového slova ze stejného balíčku, ale jiné třídy

V níže uvedeném příkladu nejprve vytvoříme balíček s názvem „com.package1“ a vytvoříme novou třídu s názvem „Příklad“. Zde prohlašujeme, že naše klíčové slovo „disp“ je chráněno. Pokusíme se zobrazit toto chráněné klíčové slovo pomocí třídy „Příklad1“. K tomu je třeba nejprve vytvořit objekt nadřazené třídy „Příklad1“ a poté vytisknout hodnotu přiřazenou klíč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ýstup:

4. Zobrazení chráněného klíčového slova z jiného balíčku

Pomocí stejného kódu jako výše uvidíme, jak zavolat chráněné klíčové slovo vytvořením jiného balíčku „package2“. K chráněnému klíčovému slovu lze přistupovat pouze prostřednictvím dědičnosti z balíčku1, proto je „ProtectedExample2“ rozšířeno z „Příkladu“. Podobným způsobem jako v prvním příkladu musíme vytvořit objekt třídy „ProtectedExample2“, abychom získali přístup k chráněnému klíčovému slovu z balíčku „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ýstup:

5. Přístup k chráněné třídě přepsáním do podtřídy

Zde je třída deklarována jako chráněná uvnitř zděděné třídy „Příklad5“. Chráněná třída s názvem „Příklad“ je deklarována mimo funkci, ale ve stejném balíčku. Když je vytvořen objekt „Příklad5“ a je volána chráněná třída „disp ()“, můžeme pozorovat, že místo vnější třídy se vyvolá přepsaná metoda. Důvodem je, že nebudeme moci importovat „com.package1“ a je to třída „Příklad“, protože není viditelná a způsobuje chybu kompilace.

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

Význam chráněného klíčového slova

  • Tato klíčová slova umožňují, aby třídy nebo jejich proměnné byly zděděny z nadřazené třídy, což není možné u žádného jiného omezeného klíčového slova, jako je například soukromé.
  • Chráněné klíčové slovo je kombinací výhody soukromého klíčového slova a výhody veřejného klíčového slova. Vylučuje tak nevýhodu veřejného klíčového slova, že proměnná nebo třída jsou přístupné odkudkoli v programu omezením rozsahu.

Závěr - Chráněné klíčové slovo v Javě

Jak je uvedeno ve výše uvedených příkladech, volíme chráněná klíčová slova v závislosti na úrovni přístupu, kterou požadujeme na úrovni kódu. Pomáhají velmi v případech, kdy ke stejné proměnné nebo třídě je třeba přistupovat z jiných zděděných metod v programu. Vztah rodič-dítě je vždy přítomen mezi nadřazenou třídou a jejími podtřídami, které používají chráněné klíčové slovo.

Doporučené články

Toto je průvodce chráněnými klíčovými slovy v Javě. Zde diskutujeme přehled, syntaxi a různé příklady chráněných klíčových slov v javě. Další informace naleznete také v následujících článcích -

  1. Zapouzdření v Javě
  2. Konstruktor v Javě
  3. Java Interview Otázky
  4. Převažující v OOP
  5. Klíčová slova Java
  6. Java Deployment Tools
  7. Přístup modifikátory v PHP
  8. Převažující v Javě
  9. Zapouzdření do JavaScriptu

Kategorie: