Katsaus Java-suojattuihin avainsanoihin

Suojatut avainsanat ovat avainsanoja, joita käytetään rajoittamaan laajuutta, johon muuttujaa, menetelmää ja rakentajia voidaan käyttää. Se on yksi Java-käyttöoikeuksien muokkaustyypeistä. Niitä käytetään erottamaan menetelmien laajuus, muuttujat, rakentajat ja luokat. Java-sovelluksissa on 4 tyyppiä käyttömuokkaimia ja ne ovat:

  1. Oletussana: Niitä voi käyttää vain paketissa, eikä niitä voida kutsua sen ulkopuolella. Kuten nimestä voi päätellä, kun käyttöoikeustietoa ei mainita, se määritetään automaattisesti oletukseksi.
  2. Julkinen avainsana: niihin pääsee mistä tahansa ohjelman kohdasta. Tämä tarkoittaa, että sitä voidaan käyttää samasta tai eri luokasta ja samasta tai eri paketista.
  3. Yksityinen avainsana: Ne rajoittavat avainsanat korkeammalle tasolle estämällä niitä pääsemästä mistä tahansa luokan ulkopuolelta.
  4. Suojattu avainsana: Tässä artikkelissa tutustumme lisää suojattuihin avainsanoihin.

Kun muuttuja tai menetelmä on merkitty suojatuksi, siihen pääsee vain seuraavilla menetelmillä:

  • Sen luokan sisällä, jossa se on ilmoitettu.
  • Muista luokista, jotka ovat myös samassa paketissa kuin ilmoitettu luokka.
  • Luokat perivät ilmoitetusta luokasta riippumatta niiden pakkauksesta.

Suojatut avainsanat ovat kuin sekä julkisten että yksityisten avainsanojen yhdistelmä, koska ne otettiin käyttöön luokan ulkopuolisten muuttujien käyttämiseksi (mikä ei ole mahdollista yksityisten avainsanojen tapauksessa), mutta samalla väitetään, että vain tietyt menetelmät voivat periä saman.

Syntaksi

Suojatut avainsanat julistetaan avainsanan edessä olevalla avainsanalla ”suojattu”. Julistamme ensin suojatun avainsanan yhdessä MyClass-luokan alla olevalla tavalla:

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

Täällä luokka “alaluokka” laajentaa “oma luokka”, joten suojattua avainsanaa voidaan käyttää täällä luomalla alaluokan objekti ja kutsumalla muuttujia.

lähtö:

Suojattuja avainsanoja voidaan käyttää vain jäsentasolla, ts. Sisäluokat, jotka on ilmoitettu funktion ulkopuolelle ja jotka eivät ole staattisia. Suojattu avainsana eroaa yksityisestä avainsanasta, koska niihin pääsee luokan ulkopuolella ja toisen paketin alaluokassa.

Jotkut suojattujen avainsanojen käytön rajoitukset ovat:

  • Niitä ei voida käyttää luokkien julistamiseen suojatuiksi.
  • Rajapintoja ei voida julistaa suojatuiksi.
  • Saavutettavuus paketin ulkopuolella on vain perinnöllä.
  • Suojattuksi rakennettua rakentajaa ei voida käyttää paketin ulkopuolella luomalla sen ilmentymä.

esimerkit

Katsotaanpa joitain esimerkkejä, joissa ymmärrämme paremmin suojattujen avainsanojen käsitteen.

1. Suojatun avainsanan soittaminen laajentamatta pääluokkaa

Yritämme tässä kutsua avainsanaa "pack1" vanhemmasta luokasta. ”ProtectedExample2” luodaan ”pack2” ja avainsana “disp” kutsutaan täällä. Mutta koodi ei pääse avainsanaan, koska lapsiluokka ei ole perinyt arvoaan pääluokasta ja heittää poikkeuksen kuvan osoittamalla tavalla.

Koodi:

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

lähtö:

2. Suojattuun luokkaan pääsy

Tässä esimerkissä yritämme päästä luokkaan “ProtectedExample5”, joka on suojattu. Tämä aiheuttaa käännösvirheen.

Koodi:

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

lähtö:

3. Näytetään suojattu avainsana samasta paketista, mutta eri luokasta

Alla olevassa esimerkissä luomme ensin paketin nimeltä “com.package1” ja luomme uuden luokan nimellä “Esimerkki”. Tässä ilmoitamme, että avainsanamme “disp” on suojattu. Yritämme näyttää tämän suojatun avainsanan luokalla ”Esimerkki1”. Tätä varten on ensin luotava vanhemmaluokan “Esimerkki1” objekti ja tulostava sitten avainsanalle “Dis” määritetty arvo.

Koodi:

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

lähtö:

4. Suojatun avainsanan näyttäminen eri paketista

Käyttämällä samaa koodia kuin yllä, näemme kuinka kutsua suojattu avainsana luomalla eri paketti “paketti2”. Suojattuun avainsanaan pääsee vain perimällä paketista1, joten ”ProtectedExample2” laajennetaan kohdasta “Esimerkki”. Samoin kuin ensimmäisessä esimerkissä, meidän on luotava luokan ”ProtectedExample2” objekti päästäksesi suojaamaan avainsanaa paketilta “com.package1”.

Koodi:

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

lähtö:

5. Pääsy suojattuun luokkaan ohittamalla alaluokka

Täällä luokka julistetaan suojatuksi perinnöllisessä luokassa “Esimerkki5”. Myös suojattu luokka, jonka nimi on ”Esimerkki”, julistetaan toiminnon ulkopuolella, mutta samassa paketissa. Kun luodaan ”Esimerkki 5” -objekti ja kutsutaan suojattua luokkaa “disp ()”, voidaan havaita, että ohitettua menetelmää kutsutaan ulkopuolisen luokan sijasta. Tämä johtuu siitä, että emme voi tuoda ”com.package1” ja sen luokkaa “Esimerkki”, koska se ei ole näkyvissä ja aiheuttaa käännösvirheen.

Koodi:

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

lähtö:

Suojatun avainsanan merkitys

  • Nämä avainsanat antavat luokkien tai niiden muuttujien periä sen vanhemmalle luokalle, mikä ei ole mahdollista muilla rajoitetuilla avainsanoilla, kuten yksityisellä.
  • Suojattu avainsana on yhdistelmä yksityisen ja julkisen avainsanan eduista. Se eliminoi julkisen avainsanan haitan siitä, että muuttujaan tai luokkaan on pääsy mistä tahansa ohjelman kohdasta rajoittamalla sen laajuutta.

Johtopäätös - Suojattu avainsana Javassa

Kuten yllä olevissa esimerkeissä näkyy, valitsemme suojatut avainsanat kooditasolla vaadittavan käyttöoikeustason mukaan. Ne auttavat suuresti tapauksissa, joissa sama muuttuja tai luokka on käytettävä muilta ohjelman perimältä menetelmiltä. Vanhempien ja lasten suhde on aina olemassa vanhempien luokan ja sen alaluokkien välillä, jotka käyttävät suojattua avainsanaa.

Suositellut artikkelit

Tämä on opas suojattuihin avainsanoihin Java-sovelluksessa. Tässä keskustellaan yleiskatsauksesta, syntaksista ja Java-suojattujen avainsanojen erilaisista esimerkkeistä. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Kapselointi Java
  2. Rakentaja Java
  3. Java-haastattelukysymykset
  4. Ohittaminen OOP: issa
  5. Java-avainsanat
  6. Java-asennustyökalut
  7. Pääsy muokkaimet PHP
  8. Ylivoimainen Java
  9. Kapselointi JavaScriptiin