Преглед заштићене кључне речи у Јави

Заштићене кључне речи су кључне речи које се користе за ограничавање опсега у коме се може приступити променљивој, методи и конструкторима. То је једна од врста модификатора приступа на Јави. Користе се за разликовање опсега метода, променљивих, конструктора и класа. У Јави постоје 4 врсте модификатора приступа и то су:

  1. Подразумевана кључна реч: Њима се може приступити само унутар пакета и не може се позвати изван ње. Као што име сугерира, кад се не спомиње спецификатор приступа, аутоматски се додјељује као задани.
  2. Јавна кључна реч: Приступ њима може бити било где у програму. То значи да се може користити из исте или другачије класе и истог или различитог пакета.
  3. Приватна кључна реч: Ограничавају кључне речи на виши ниво не дозвољавајући им приступ са било ког места изван саме класе.
  4. Заштићена кључна реч: У овом чланку ћемо се упознати више о заштићеним кључним речима.

Једном када се променљива или метода означи као заштићена, њој се може приступити само следећим методама:

  • Унутар исте класе у којој је деклариран.
  • Од осталих класа које су такође у истом пакету као и декларирана класа.
  • Часови наслеђени од декларисане, без обзира на пакет.

Заштићене кључне речи су попут комбинације јавних и приватних кључних речи пошто су уведене како би могле да се приступе променљивим изван класе (што није могуће у случају приватних кључних речи), али и да се истичу да само неке методе могу наследити исте.

Синтакса

Заштићене кључне речи се декларишу уз кључну реч која је префиксирана као „заштићена“. Прво штитимо заштићену кључну реч у једној од класа која се зове „МиЦласс“ као што следи:

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

Овде се класа „СубЦласс“ проширује „МиЦласс“ и стога се овде може користити заштићена кључна реч креирањем објекта СубЦласс-а и позивањем променљивих.

Излаз:

Заштићене кључне речи могу се користити само на нивоу чланова, тј. Унутрашње класе које су декларисане изван функције и које нису статичке. Заштићена кључна реч се разликује од приватне јер им се може приступити изван класе и у подразреду другог пакета.

Неке од ограничења употребе заштићених кључних речи су:

  • Не могу се користити за проглашавање класа заштићеним.
  • Интерфејси се не могу прогласити заштићенима.
  • Доступност изван пакета је само насљеђивањем.
  • Конструктору који је заштићен не може се приступити изван пакета стварањем његове инстанце.

Примери

Идемо кроз неколико примера где боље разумемо концепт заштићених кључних речи.

1. Позивање заштићене кључне речи без проширења родитељске класе

Овде покушавамо да назовемо кључну реч из родитељске класе „пацкаге1“. „ПротецтедЕкампле2“ је креиран у „пакет2“ и овде се назива кључна реч „дисп“. Али код неће моћи да приступи кључној речи пошто матична класа није наследила вредност од главне класе и избациће изузетак као што је приказано.

Шифра:

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

Излаз:

2. Приступ заштићеној класи

У овом примјеру покушавамо приступити класи „ПротецтедЕкампле5“ која је заштићена. То изазива грешку у састављању.

Шифра:

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

Излаз:

3. Приказивање заштићене кључне речи из истог пакета, али различите класе

У следећем примеру прво креирамо пакет под називом „цом.пацкаге1“ и креирамо нову класу по имену „Екампле“. Овде изјављујемо да је наша кључна реч “дисп” заштићена. Покушаћемо да прикажемо ову заштићену кључну реч користећи класу „Екампле1“. За то је прво потребно створити објект родитељске класе „Екампле1“, а затим исписати вредност додељену кључној речи „дисп“.

Шифра:

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

Излаз:

4. Приказивање заштићене кључне речи из другог пакета

Користећи исти код као и горе, видећемо како позвати заштићену кључну реч креирајући другачији пакет „пацкаге2“. Заштићеној кључној речи може се приступити само наследством из пакета1, па се „ПротецтедЕкампле2“ проширује са „Екампле“. На сличан начин као у првом примеру, морамо створити објект класе „ПротецтедЕкампле2“ да бисмо приступили заштићеној кључној речи из пакета „цом.пацкаге1“.

Шифра:

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

Излаз:

5. Приступ заштићеној класи преласком на подкласу

Овде је класа декларирана као заштићена унутар наслеђене класе „Екампле5“. Такође, заштићена класа која се назива „Екампле“ декларирана је изван функције, али у истом пакету. Када се створи објект „Екампле5“ и зазове се класа „дисп ()“, можемо приметити да се замењена метода зове уместо вањске класе. То је зато што нећемо бити у могућности да увеземо „цом.пацкаге1“ и класу „Екампле“ јер није видљива и узрокује грешку у компилацији.

Шифра:

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

Излаз:

Важност заштићене кључне речи

  • Ове кључне речи омогућавају да се класе или њихове променљиве наследе из матичне класе, што није могуће са било којом другом кључном речју са ограничењем, као што је приватна.
  • Заштићена кључна реч је комбинација предности приватне и приватне кључне речи. Елиминише недостатак јавне кључне речи у томе што променљива или класа могу бити доступни са било ког места у програму ограничавањем опсега.

Закључак - Заштићена кључна реч у Јави

Као што је приказано у горњим примерима, бирамо заштићене кључне речи у зависности од нивоа приступа који нам је потребан на нивоу кода. Они увелико помажу у случајевима када истој варијабли или класи треба приступити из других наслеђених метода у програму. Однос родитељ-дете увек је присутан између родитељске класе и њених подразреда који користе заштићену кључну реч.

Препоручени чланци

Ово је водич за заштићене кључне речи на Јави. Овдје ћемо расправљати о прегледу, синтакси и различитим примјерима заштићених кључних ријечи у Јави. Такође можете погледати следеће чланке да бисте сазнали више -

  1. Инкапсулација у Јави
  2. Конструктор на Јави
  3. Питања о Јава интервјуу
  4. Превладавање у ООП-има
  5. Јава Кључне речи
  6. Јава Деплоимент Тоолс
  7. Приступите модификаторима на ПХП-у
  8. Превладавање у Јави
  9. Инкапсулација у ЈаваСцрипт-у

Категорија: