Pregled zaštićene ključne riječi na Javi

Zaštićene ključne riječi su ključne riječi koje se koriste za ograničavanje dometa unutar kojeg se može pristupiti varijabli, metodi i konstruktorima. To je jedna od vrsta modifikatora pristupa na Javi. Oni se koriste za razlikovanje između opsega metoda, varijabli, konstruktora i klasa. Postoje 4 vrste modifikatora pristupa na Javi i to su:

  1. Zadana ključna riječ: Pristup njima može biti samo unutar paketa i ne može se pozvati izvan njega. Kao što ime sugerira, kad se ne spominje specifikator pristupa, automatski se dodjeljuje kao zadani.
  2. Javna ključna riječ: njima se može pristupiti s bilo kojeg mjesta u programu. To znači da se može koristiti iz iste ili drugačije klase i istog ili različitog paketa.
  3. Privatna ključna riječ: Ograničuju ključne riječi na višu razinu ne dopuštajući im pristup s bilo kojeg mjesta izvan same klase.
  4. Zaštićena ključna riječ: U ovom ćemo članku upoznati više o zaštićenim ključnim riječima.

Nakon što se varijabli ili metodi označi kao zaštićena, njoj se može pristupiti samo pomoću sljedećih metoda:

  • Unutar iste klase u kojoj je deklariran.
  • Od ostalih klasa koje su također u istom paketu kao i deklarirana klasa.
  • Razredi su naslijeđeni od deklariranog, bez obzira na paket.

Zaštićene ključne riječi su poput kombinacije javnih i privatnih ključnih riječi budući da su uvedene kako bi mogle pristupiti varijablama izvan klase (što nije moguće u slučaju privatnih ključnih riječi), ali isto tako zadržavajući da ih samo određene metode mogu naslijediti.

Sintaksa

Zaštićene ključne riječi su deklarirane s ključnom riječi koja je prefiksirana kao "zaštićena". Zaštićenu ključnu riječ najprije izjavljujemo u jednoj od klasa pod nazivom "MyClass" na sljedeći način:

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

Ovdje klasa "Podklasa" proširuje "MyClass" i stoga se zaštićena ključna riječ ovdje može koristiti stvaranjem objekta SubClass-a i pozivanjem varijabli.

Izlaz:

Zaštićene ključne riječi mogu se koristiti samo na razini članova, tj. Unutarnje klase koje su deklarirane izvan funkcije i koje nisu statičke. Zaštićena ključna riječ razlikuje se od privatne jer im se može pristupiti izvan klase i u podrazredu drugog paketa.

Neka od ograničenja upotrebe zaštićenih ključnih riječi su:

  • Ne mogu se koristiti za proglašavanje klasa zaštićenim.
  • Sučelja se ne mogu proglasiti zaštićenima.
  • Dostupnost izvan paketa je samo nasljeđivanjem.
  • Konstruktoru koji je zaštićen ne može se pristupiti izvan paketa stvaranjem njegove instance.

Primjeri

Krenimo kroz nekoliko primjera u kojima možemo bolje razumjeti koncept zaštićenih ključnih riječi.

1. Pozivanje zaštićene ključne riječi bez proširenja roditeljske klase

Ovdje pokušavamo nazvati ključnu riječ iz roditeljske klase „package1“. "ProtectedExample2" kreiran je u "package2", a ovdje se naziva ključna riječ "disp". Ali kôd neće moći pristupiti ključnoj riječi jer podređena klasa nije naslijedila njegovu vrijednost od glavne klase i izbacit će izuzetak kao što je prikazano.

Kodirati:

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

Izlaz:

2. Pristup zaštićenom razredu

U ovom primjeru pokušavamo pristupiti klasi „ProtectedExample5“ koja je zaštićena. To uzrokuje pogrešku u sastavljanju.

Kodirati:

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

Izlaz:

3. Prikazivanje zaštićene ključne riječi iz istog paketa, ali različite klase

U primjeru u nastavku prvo stvaramo paket pod nazivom "com.package1" i kreiramo novu klasu po nazivu "Example". Ovdje izjavljujemo da je naša ključna riječ "disp" zaštićena. Pokušat ćemo prikazati ovu zaštićenu ključnu riječ pomoću klase „Example1“. Za to prvo treba stvoriti objekt roditeljske klase „Example1“, a zatim ispisati vrijednost dodijeljenu ključnoj riječi „disp“.

Kodirati:

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

Izlaz:

4. Prikazivanje zaštićene ključne riječi iz drugog paketa

Pomoću istog koda kao i gore, vidjet ćemo kako nazvati zaštićenu ključnu riječ stvarajući drugačiji paket "package2". Zaštićenoj ključnoj riječi može se pristupiti samo nasljeđivanjem iz paketa1, pa se "ProtectedExample2" proširuje iz "Example". Na sličan način kao u prvom primjeru, moramo stvoriti objekt klase "ProtectedExample2" kako bismo pristupili zaštićenoj ključnoj riječi iz paketa "com.package1".

Kodirati:

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

Izlaz:

5. Pristup zaštićenom razredu prelaskom na podklasu

Ovdje je klasa deklarirana kao zaštićena unutar naslijeđene klase "Example5". Također, zaštićena klasa pod nazivom "Primjer" deklarirana je izvan funkcije, ali u istom paketu. Kada se stvori objekt primjera 5 i poziva se zaštićena klasa „disp ()“, možemo primijetiti da se umjesto pretplaćene metode naziva zamijenjena metoda. To je zato što nećemo biti u mogućnosti uvesti "com.package1" i klasu "Example" jer nije vidljiva i uzrokuje pogrešku u sastavljanju.

Kodirati:

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

Izlaz:

Važnost zaštićene ključne riječi

  • Ove ključne riječi omogućuju nasljeđivanje klasa ili njihovih varijabli od svoje nadređene klase, što nije moguće s bilo kojom drugom ključnom riječi s ograničenom odgovornošću, poput privatne.
  • Zaštićena ključna riječ kombinacija je prednosti privatne i javne ključne riječi. Eliminira nedostatak javne ključne riječi u tome što varijabla ili klasa mogu biti dostupni s bilo kojeg mjesta u programu ograničavanjem opsega.

Zaključak - zaštićena ključna riječ u Javi

Kao što je prikazano u gornjim primjerima, biramo zaštićene ključne riječi ovisno o razini pristupa koja nam je potrebna na razini koda. Oni uvelike pomažu u slučajevima kada istoj varijabli ili klasi treba pristupiti iz drugih nasljeđenih metoda u programu. Odnos roditelj-dijete uvijek je prisutan između roditeljske klase i njenih podrazreda koji koriste zaštićenu ključnu riječ.

Preporučeni članci

Ovo je vodič za zaštićene ključne riječi na Javi. Ovdje raspravljamo o pregledu, sintaksi i različitim primjerima zaštićenih ključnih riječi u Javi. Možete pogledati i sljedeće članke da biste saznali više -

  1. Inkapsulacija u Javi
  2. Konstruktor na Javi
  3. Pitanja o intervjuu Java
  4. Prevladavanje u OOP-ovima
  5. Java Ključne riječi
  6. Alati za implementaciju Java
  7. Pristupite modifikatorima na PHP-u
  8. Prevladavanje u Javi
  9. Inkapsulacija u JavaScriptu

Kategorija: