Pregled zaščitene ključne besede v Javi

Zaščitene ključne besede so ključne besede, ki se uporabljajo za omejevanje obsega, do katerega je mogoče dostopati do spremenljivke, metode in konstruktorjev. Je ena od vrst modifikatorjev dostopa na Javi. Uporabljajo se za razlikovanje med obsegom metod, spremenljivk, konstruktorjev in razredov. V Javi obstajajo 4 vrste modifikatorjev dostopa in so:

  1. Privzeta ključna beseda: Do njih lahko dostopate samo znotraj paketa in ga ni mogoče poklicati zunaj njega. Kot že ime pove, ko ni omenjen noben specifikator dostopa, je samodejno dodeljen kot privzeti.
  2. Javna ključna beseda: Do njih lahko dostopate kjer koli v programu. To pomeni, da se lahko uporablja iz istega ali drugačnega razreda in istega ali drugačnega paketa.
  3. Zasebna ključna beseda: ključne besede omejijo na višjo raven, saj jim ne dovolijo dostopa od kjer koli zunaj samega razreda.
  4. Zaščitena ključna beseda: V tem članku bomo podrobneje spoznali zaščitene ključne besede.

Ko je spremenljivka ali metoda označena kot zaščitena, je do nje mogoče dostopati le s spodnjimi metodami:

  • Znotraj istega razreda, v katerem je razglašen.
  • Od drugih razredov, ki so prav tako v istem paketu kot prijavljeni razred.
  • Razredi so podedovani od prijavljenega, ne glede na paket.

Zaščitene ključne besede so kot kombinacija javnih in zasebnih ključnih besed, saj so bile predstavljene tako, da lahko dostopate do spremenljivk zunaj razreda (kar pri zasebnih ključnih besedah ​​ni mogoče), hkrati pa trdijo, da lahko le nekatere metode podedujejo isto.

Sintaksa

Zaščitene ključne besede so označene s ključno besedo, ki je predpona, kot "zaščitena". Zaščiteno ključno besedo najprej razglasimo v enem od razredov, imenovanih "MyClass", kot sledi:

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 se razred "SubClass" razširi na "MyClass" in zato je tukaj mogoče uporabiti zaščiteno ključno besedo z ustvarjanjem predmeta SubClass in klicanjem spremenljivk.

Izhod:

Zaščitene ključne besede se lahko uporabljajo samo na ravni članov, tj. Notranjih razredov, ki so deklarirani zunaj funkcije in ki niso statični. Zaščitena ključna beseda se razlikuje od zasebne, saj je do njih mogoče dostopati zunaj razreda in v podrazredu drugega paketa.

Nekatere omejitve uporabe zaščitenih ključnih besed so:

  • Ni jih mogoče uporabiti za razglasitev razredov kot zaščitenih.
  • Vmesnikov ni mogoče razglasiti za zaščitene.
  • Dostopnost zunaj paketa je le z dedovanjem.
  • Konstruktor, ki je zaščiten, ne more dostopati zunaj paketa, če ustvari svoj primerek.

Primeri

Poglejmo nekaj primerov, kjer lahko bolje razumemo koncept zaščitenih ključnih besed.

1. Klicanje zaščitene ključne besede brez razširitve nadrejenega razreda

Tu poskušamo poklicati ključno besedo iz nadrejenega razreda "package1". "ProtectedExample2" je ustvarjen v "package2" in tukaj se imenuje ključna beseda "disp". Toda koda ne bo mogla dostopati do ključne besede, saj razred otrok ni podedoval njene vrednosti od glavnega razreda in bo vrgel izjemo, kot je prikazano.

Koda:

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

Izhod:

2. Dostop do zaščitenega razreda

V tem primeru poskušamo dostopati do razreda "ProtectedExample5", ki je zaščiten. To povzroči napako pri sestavljanju.

Koda:

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

Izhod:

3. Prikaz zaščitene ključne besede iz istega paketa, vendar različnega razreda

V spodnjem primeru najprej ustvarimo paket, imenovan „com.package1“, in ustvarimo nov razred z imenom „Primer“. Tu izjavljamo, da je naša ključna beseda „disp“ zaščitena. Poskusili bomo prikazati to zaščiteno ključno besedo z razredom "Example1". Za to je treba najprej ustvariti objekt nadrejenega razreda „Example1“ in nato natisniti vrednost, dodeljeno ključni besedi „disp“.

Koda:

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

Izhod:

4. Prikaz zaščitene ključne besede iz drugega paketa

Če uporabimo isto kodo zgoraj, bomo videli, kako poklicati zaščiteno ključno besedo z ustvarjanjem drugega paketa "package2". Do zaščitene ključne besede je mogoče dostopati samo z dedovanjem iz paketa1, zato je „ProtectedExample2“ razširjen iz „Primer“. Na podoben način kot prvi primer moramo ustvariti objekt razreda „ProtectedExample2“, da bi dostopili do zaščitene ključne besede iz paketa „com.package1“.

Koda:

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

Izhod:

5. Dostop do zaščitenega razreda s preglasitvijo na podrazred

Tu je razred razglašen kot zaščiten znotraj podedovanega razreda „Example5“. Zaščiten razred, imenovan „Example“, je izjavljen tudi zunaj funkcije, vendar v istem paketu. Ko se ustvari objekt "Example5" in pokliče zaščiten razred "disp ()", lahko opazimo, da se namesto zunanjega razreda imenuje prepisana metoda. To je zato, ker ne bomo mogli uvoziti "com.package1" in razreda "Primer", saj ni viden in povzroči napako pri sestavljanju.

Koda:

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

Izhod:

Pomen zaščitene ključne besede

  • Te ključne besede omogočajo podedovanje razredov ali njihovih spremenljivk iz nadrejenega razreda, kar ni mogoče pri nobeni drugi ključni besedi z omejitvami, kot je zasebna.
  • Zaščitena ključna beseda je kombinacija prednosti zasebne in javne besede. Odpravlja pomanjkljivost javne ključne besede, da je spremenljivka ali razred dostopen od koder koli v programu z omejitvijo obsega.

Zaključek - Zaščitena ključna beseda v Javi

Kot je prikazano v zgornjih primerih, izberemo zaščitene ključne besede glede na stopnjo dostopa, ki jo potrebujemo na ravni kode. Veliko pomagajo v primerih, ko je treba do iste spremenljive ali razreda dostopati po drugih podedovanih metodah v programu. Odnos med staršem in otrokom je vedno prisoten med nadrejenim razredom in njegovimi podrazredi, ki uporabljajo zaščiteno ključno besedo.

Priporočeni članki

To je vodnik za zaščitene ključne besede v Javi. Tukaj razpravljamo o pregledu, sintaksi in različnih primerih zaščitenih ključnih besed v javi. Če želite izvedeti več, si oglejte tudi naslednje članke -

  1. Kapsulacija na Javi
  2. Konstruktor v Javi
  3. Java Intervju Vprašanja
  4. Prevladujoče v OOP
  5. Ključne besede Java
  6. Java Tools Deployment Tools
  7. Dostop do modifikatorjev v PHP
  8. Prevladovanje v Javi
  9. Kapsulacija v JavaScript