Geschützte Schlüsselwörter sind Schlüsselwörter, die verwendet werden, um den Bereich einzuschränken, in dem auf die Variable, Methode und Konstruktoren zugegriffen werden kann. Es handelt sich um 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:
WERBUNG Beliebter Kurs in dieser Kategorie JAVA MASTERY - Spezialisierung | 78 Kursreihe | 15 ProbetestsSobald eine Variable oder Methode als geschützt markiert ist, kann nur mit den folgenden Methoden darauf zugegriffen werden:
Geschützte Schlüsselwörter sind wie eine Kombination aus öffentlichen und privaten Schlüsselwörtern, da sie eingeführt wurden, um auf Variablen außerhalb der Klasse zuzugreifen (was bei privaten Schlüsselwörtern nicht möglich ist) und um sicherzustellen, dass nur bestimmte Methoden dieselben erben können.
Geschützte Schlüsselwörter werden mit dem vorangestellten Schlüsselwort als „geschützt“ deklariert. Wir deklarieren zunächst das geschützte Schlüsselwort in einer der Klassen namens „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 Mitgliedsebene verwendet werden, d. h. innere Klassen, die außerhalb einer Funktion deklariert und nicht statisch sind. Das geschützte Schlüsselwort unterscheidet sich von dem Schlüsselwort private, da auf es außerhalb einer Klasse und in der Unterklasse eines anderen Pakets zugegriffen werden kann.
Einige der Einschränkungen bei der Verwendung geschützter Schlüsselwörter sind:
Lassen Sie uns einige Beispiele durchgehen, anhand derer wir das Konzept geschützter Schlüsselwörter besser verstehen können.
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:
In diesem Beispiel versuchen wir, auf die Klasse „ProtectedExample5“ zuzugreifen, die geschützt ist. Dies führt zu einem 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:
Im folgenden Beispiel erstellen wir zunächst ein Paket namens „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 mithilfe der Klasse „Example1“ anzuzeigen. Dazu muss zunächst ein Objekt der übergeordneten Klasse „Example1“ erstellt und dann der dem Schlüsselwort „disp“ zugewiesene Wert ausgegeben 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:
Using the same code as above, we shall see how to call the protected keyword by creating a different package, “package2”. A protected keyword can be accessed only through inheritance from package1; hence “ProtectedExample2” is extended from “Example”. In a similar way as the first example, we have to create an object of the class “ProtectedExample2” in order to access the protected keyword from package “com.package1”.
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); } }
Output:
Here the class is declared as protected inside the inherited class “Example5”. Also, a protected class called “Example” is declared outside the function but in the same package. When an object of “Example5” is created and the protected class “disp()” is called, we can observe that the overridden method is called instead of the outside class. This is because we shall not be able to import “com.package1” and its class “Example” since it is not visible and causes a compilation error.
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(); } }
Output:
The importance of protected keyword in java is:
As shown in the above examples, we choose protected keywords depending on the access level we require at the code level. They help greatly in cases where the same variable or class needs to be accessed from other inherited methods in the program. A parent-child relationship is always present between the parent class and its sub-classes which are using the protected keyword.
Das obige ist der detaillierte Inhalt vonGeschütztes Schlüsselwort in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!