Übersicht über das geschützte Schlüsselwort in Java

Geschützte Schlüsselwörter sind Schlüsselwörter, mit denen der Bereich eingeschränkt wird, in dem auf Variablen, Methoden und Konstruktoren zugegriffen werden kann. Dies ist eine der Arten von Zugriffsmodifikatoren in Java. Sie werden verwendet, um den Umfang von Methoden, Variablen, Konstruktoren und Klassen zu unterscheiden. In Java gibt es vier Arten von Zugriffsmodifikatoren:

  1. Standardschlüsselwort: Auf sie kann nur innerhalb des Pakets zugegriffen werden und sie können nicht außerhalb des Pakets aufgerufen werden. Wie der Name schon sagt, wird der Name automatisch als Standard zugewiesen, wenn kein Zugriffsspezifizierer angegeben wird.
  2. Öffentliches Schlüsselwort: Auf sie kann von überall im Programm zugegriffen werden. Dies bedeutet, dass es aus derselben oder einer anderen Klasse und demselben oder einem anderen Paket verwendet werden kann.
  3. Privates Schlüsselwort: Sie beschränken die Schlüsselwörter auf eine höhere Ebene, indem sie nicht zulassen, dass von irgendwo außerhalb der Klasse auf sie zugegriffen werden kann.
  4. Geschütztes Schlüsselwort: In diesem Artikel erfahren Sie mehr über geschützte Schlüsselwörter.

Sobald eine Variable oder eine Methode als geschützt markiert ist, kann nur mit den folgenden Methoden darauf zugegriffen werden:

  • Innerhalb derselben Klasse, in der es deklariert ist.
  • Aus anderen Klassen, die sich ebenfalls im selben Paket wie die deklarierte Klasse befinden.
  • Von der deklarierten Klasse geerbte Klassen, unabhängig von ihrem Paket.

Geschützte Schlüsselwörter sind wie eine Kombination aus öffentlichen und privaten Schlüsselwörtern, da sie eingeführt wurden, um auf die Variablen außerhalb der Klasse zugreifen zu können (was bei privaten Schlüsselwörtern nicht möglich ist), aber auch zu gewährleisten, dass nur bestimmte Methoden dieselben erben können.

Syntax

Geschützte Schlüsselwörter werden mit dem vorangestellten Schlüsselwort als "geschützt" deklariert. Wir deklarieren zuerst das geschützte Schlüsselwort in einer der Klassen mit dem Namen "MyClass" wie folgt:

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

Hier erweitert die Klasse "SubClass" "MyClass", und daher kann das geschützte Schlüsselwort hier verwendet werden, indem ein Objekt von SubClass erstellt und die Variablen aufgerufen werden.

Ausgabe:

Geschützte Schlüsselwörter können nur auf Elementebene verwendet werden, dh innere Klassen, die außerhalb einer Funktion deklariert und nicht statisch sind. Geschütztes Schlüsselwort unterscheidet sich von privatem, da auf sie außerhalb einer Klasse und in der Unterklasse eines anderen Pakets zugegriffen werden kann.

Einige der Einschränkungen für die Verwendung geschützter Schlüsselwörter sind:

  • Sie können nicht verwendet werden, um Klassen als geschützt zu deklarieren.
  • Schnittstellen können nicht als geschützt deklariert werden.
  • Der Zugriff außerhalb des Pakets erfolgt nur durch Vererbung.
  • Auf einen Konstruktor, der geschützt ist, kann nicht außerhalb des Pakets zugegriffen werden, indem seine Instanz erstellt wird.

Beispiele

Lassen Sie uns einige Beispiele durchgehen, in denen wir das Konzept der geschützten Schlüsselwörter besser verstehen können.

1. Aufruf eines geschützten Schlüsselworts ohne Erweiterung der übergeordneten Klasse

Hier versuchen wir, das Schlüsselwort aus der übergeordneten Klasse von "package1" aufzurufen. "ProtectedExample2" wird in "package2" erstellt und das Schlüsselwort "disp" wird hier aufgerufen. Der Code kann jedoch nicht auf das Schlüsselwort zugreifen, da die untergeordnete Klasse ihren Wert nicht von der Hauptklasse geerbt hat und wie gezeigt eine Ausnahme auslöst.

Code:

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

Ausgabe:

2. Zugriff auf eine geschützte Klasse

In diesem Beispiel versuchen wir, auf die Klasse "ProtectedExample5" zuzugreifen, die geschützt ist. Dies verursacht einen Kompilierungsfehler.

Code:

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

Ausgabe:

3. Anzeigen eines geschützten Schlüsselworts aus demselben Paket, aber einer anderen Klasse

Im folgenden Beispiel erstellen wir zuerst ein Paket mit dem Namen "com.package1" und erstellen eine neue Klasse mit dem Namen "Example". Hier erklären wir, dass unser Schlüsselwort "disp" geschützt ist. Wir werden versuchen, dieses geschützte Schlüsselwort mit der Klasse "Example1" anzuzeigen. Dazu muss zunächst ein Objekt der Elternklasse „Example1“ angelegt und anschließend der dem Schlüsselwort „disp“ zugeordnete Wert ausgedruckt werden.

Code:

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

Ausgabe:

4. Anzeigen eines geschützten Schlüsselworts aus einem anderen Paket

Unter Verwendung des gleichen Codes wie oben wird gezeigt, wie das geschützte Schlüsselwort aufgerufen wird, indem ein anderes Paket "package2" erstellt wird. Auf ein geschütztes Schlüsselwort kann nur durch Vererbung von package1 zugegriffen werden, daher wird "ProtectedExample2" von "Example" erweitert. Ähnlich wie im ersten Beispiel müssen wir ein Objekt der Klasse "ProtectedExample2" erstellen, um auf das geschützte Schlüsselwort aus dem Paket "com.package1" zuzugreifen.

Code:

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

Ausgabe:

5. Zugriff auf eine geschützte Klasse durch Überschreiben der Unterklasse

Hier wird die Klasse innerhalb der geerbten Klasse "Example5" als geschützt deklariert. Außerdem wird eine geschützte Klasse mit dem Namen "Example" außerhalb der Funktion, jedoch im selben Paket deklariert. Wenn ein Objekt von "Example5" erstellt und die geschützte Klasse "disp ()" aufgerufen wird, können wir beobachten, dass die überschriebene Methode anstelle der externen Klasse aufgerufen wird. Dies liegt daran, dass wir "com.package1" und die Klasse "Example" nicht importieren können, da sie nicht sichtbar sind und einen Kompilierungsfehler verursachen.

Code:

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

Ausgabe:

Bedeutung des geschützten Schlüsselworts

  • Mit diesen Schlüsselwörtern können die Klassen oder ihre Variablen von ihrer übergeordneten Klasse geerbt werden, was mit keinem anderen eingeschränkten Schlüsselwort wie private möglich ist.
  • Geschütztes Schlüsselwort ist die Kombination des Vorteils eines privaten und eines öffentlichen Schlüsselworts. Es beseitigt den Nachteil eines öffentlichen Schlüsselworts, dass auf die Variable oder Klasse von überall im Programm zugegriffen werden kann, indem der Bereich eingeschränkt wird.

Fazit - Geschütztes Schlüsselwort in Java

Wie in den obigen Beispielen gezeigt, wählen wir geschützte Schlüsselwörter in Abhängigkeit von der Zugriffsebene, die wir auf Codeebene benötigen. Sie sind sehr hilfreich, wenn auf dieselbe Variable oder Klasse von anderen geerbten Methoden im Programm aus zugegriffen werden muss. Zwischen der Elternklasse und ihren Unterklassen, die das Schlüsselwort protected verwenden, besteht immer eine Eltern-Kind-Beziehung.

Empfohlene Artikel

Dies ist eine Anleitung zu geschützten Schlüsselwörtern in Java. Hier diskutieren wir die Übersicht, Syntax und verschiedene Beispiele für geschützte Schlüsselwörter in Java. Sie können sich auch die folgenden Artikel ansehen, um mehr zu erfahren -

  1. Kapselung in Java
  2. Konstruktor in Java
  3. Java Interview Fragen
  4. Überschreiben in OOPs
  5. Java-Schlüsselwörter
  6. Java-Bereitstellungstools
  7. Zugriffsmodifikatoren in PHP
  8. In Java überschreiben
  9. Kapselung in JavaScript