Einführung in Access Modifiers in Java

Wie wir alle wissen, ist Java eine der besten Programmiersprachen der Welt. Milliarden von Geräten verlassen sich in den letzten zwei Jahrzehnten darauf. Java ist eine schnelle, zuverlässige, sichere und plattformübergreifende Sprache. Java kann auf jedem Gerät ausgeführt werden, sofern dieses Gerät über Java Runtime (JRE) verfügt. Dies macht es zu einer plattformübergreifenden, schnellen und zuverlässigen Sprache. Der Zugriffsmodifikator ist die Eigenschaft von Java, wodurch er auf allen Plattformen sicher ist. Java bietet dem Programmierer Sicherheit auf Klassenebene (während der Kapselung), indem es die Eigenschaft access modifier verwendet. Dem Buch zufolge ist Class die Blaupause für das Erstellen eines Objekts in Java, wodurch es für das Programm zum „Baustein“ wird, da Java eine objektorientierte Sprache ist. Ein Zugriffsmodifikator gibt an, wie eine Klasse auf eine bestimmte Klasse und deren Felder, Konstruktoren und Methoden sowie auf verschiedene Pakete zugreifen kann. Klassen, Felder, Konstruktoren und Methoden können einen von vier verschiedenen Java-Zugriffsmodifikatoren haben.

  • Privat
  • Öffentlichkeit
  • Geschützt
  • Standard - Kein Schlüsselwort erforderlich.

Verschiedene Zugriffsmodifikatoren in Java

In der folgenden Tabelle wird zusammengefasst, wie Java-Zugriffsmodifikatoren auf das Programm angewendet werden können:

ModifikatorenKlassePaketeUnterklasseWelt
PrivatY.NNN
ÖffentlichkeitY.Y.Y.Y.
GeschütztY.Y.Y.N
StandardY.Y.NN

In den folgenden Abschnitten werden die einzelnen Java-Zugriffsmodifikatoren behandelt.

1) Standard

Wenn eine Klasse, Datenelemente und die Variable deklariert werden, indem kein Zugriffsmodifizierer angegeben wird, wird der Zugriffsmodifizierer auf "Standard" gesetzt. Der 'Standard'-Zugriffsmodifikator bedeutet, dass der Code in jeder Klasse auf das gesamte Programm innerhalb desselben Pakets zugreifen kann.

  • Dieser Zugriffsmodifikator funktioniert nur innerhalb desselben Pakets.
  • Manchmal wird der Standardzugriffsmodifikator auch als Paketzugriffsmodifikator bezeichnet, da nur innerhalb desselben Pakets darauf zugegriffen werden kann.
  • Unterklassen können nicht auf Methoden, Datenelemente und Variablen (Felder) in der Oberklasse zugreifen, wenn diese Methoden, Datenelemente und Variablen (Felder) in der Klasse mit dem Zugriffsmodifikator 'default' gekennzeichnet sind, es sei denn, diese Unterklassen befinden sich im selben Paket wie die Superklasse.

Beispiel 1:

//Java program to show the default modifier.
package Test;
//Where Class eduCBA is having Default access modifier as no access modifier is specified here
class eduCBA
(
void display ()
(
System.out.println("Hello World!");
)
)

Ausgabe:

Hallo Welt!

Beispiel # 2:

//Java program to show error while using class from different package with default modifier
package test2;
import test.*;
//This class check is having default access modifier
class Check
(
public static void main(String args())
(
//accessing class eduCBA from package test
eduCBA obj = new eduCBA();
obj.display();
)
)

Ausgabe:

Kompilierzeitfehler.

2) Geschützt

Die Syntax 'protected' wird von Benutzern verwendet, die diesen Zugriffsmodifikator verwenden möchten.

  • Auf diesen Zugriffsmodifikator kann nur innerhalb desselben Pakets oder derselben Unterklassen in verschiedenen Klassen zugegriffen werden (Benutzer müssen jedoch das Paket dort importieren, wo es angegeben wurde).
  • Der Benutzer kann Klassen und Interfaces nicht mit dem Zugriffsmodifikator 'protected' markieren. Methoden und Felder können jedoch als geschützt deklariert werden, wenn sich Methoden und Felder in einer Schnittstelle befinden.

Beispielsweise:

//Java program to show to protected access modifier
package test;
//Class eduCBA
public class eduCBA
(
protected void display ()
(
System.out.println("Hello World!");
)
)
//Java program to show to protected modifier in same sub-classes of different packages
package test2;
import test.*;
//Class pro is subclass of eduCBA
class pro extends eduCBA
(
public static void main(String args())
(
pro obj = new pro();
obj.display();
)
)

Ausgabe:

Hallo Welt!

3) Öffentlichkeit

Der Benutzer kann eine Klasse, eine Methode, einen Konstruktor und eine Schnittstelle mit einem öffentlichen Zugriffsmodifikator deklarieren, auf den alle Klassen, Methoden, Konstruktoren und Schnittstellen in Paketen oder in unterschiedlichen Paketen zugreifen können.

  • Dieser Zugriffsmodifikator hat die Grenze unter allen Modifikatoren.
  • Bei Klassen, Methoden oder Paketen, die mit dem Zugriffsmodifikator "public" gekennzeichnet sind und auf die jeder über das Programm von überall aus zugreifen kann.
  • Es gibt keine Einschränkungen für den Umfang der Methoden der 'öffentlichen' Zugriffsklasse.

Zum Beispiel: -

//Java program to show to public access modifier
package test;
public class eduCBA
(
public void display ()
(
System.out.println("Hello World!");
)
)
package test2;
import test.*;
class pub
(
public static void main (String args ())
(
eduCBA obj = new eduCBA ();
obj.display ();
)
)

Ausgabe:

Hallo Welt!

4) Privat

Wenn eine Methode oder Variable als "private" Zugriffsmodifikatoren markiert ist, kann Code in derselben Klasse nur auf diese Methoden und Variablen zugreifen.

Der Benutzer kann keine Superklasse mit dem Zugriffsmodifikator 'private' im Programm deklarieren. Wenn der Benutzer dies mit einer Klasse tut, wird diese Klasse für keine andere Klasse im selben Paket zugänglich, wodurch die Klasse jedoch nicht verwendet wird Der Benutzer kann Variablen und Methoden innerhalb einer Klasse mit dem Zugriffsmodifikator 'private' deklarieren, sodass diese Variablen und Methoden von niemandem verwendet werden können.

Gelegentlich wurden die Benutzer mit den Zugriffsmodifikatoren "privat" und "geschützt" verwechselt, aber beide sind unterschiedlich.

Zum Beispiel: -

//Program to show error while using a class from different packages with private modifier.
package test;
class eduCBA
(
private void display()
(
System.out.println("Hello World!");
)
)
class Check
(
public static void main (String args())
(
eduCBA obj = new eduCBA();
//make class check to access private method of another class eduCBA.
obj.display();
)
)

Ausgabe:

Fehler: display () hat privaten Zugriff in eduCBA obj.display ();

Fazit

Mit dem Java-Zugriffsmodifikator erhalten Sie einen zusätzlichen Vorteil gegenüber Ihrem Programm, wenn Sie es veröffentlichen. Wie wir oben studieren, verschiedene Arten von Zugriffsmodifikatoren in JAVA und ihre Spezifikation.

Denken Sie also jedes Mal daran, wenn Sie einen von ihnen als Klassen- oder Schnittstellenzugriff verwenden, da sie nicht nur Zugriff gewähren, sondern sie auch überschreiben. Zwar gibt es immer Bedenken hinsichtlich der Zugänglichkeit der Methode im Programm. Wenn einer Schnittstelle beispielsweise der Zugriffsmodifikator 'default' in der Superklasse zugewiesen wird, kann er die in der Unterklasse der Methode verwendeten Zugriffsmodifikatoren überschreiben.

Anmerkung: Die Klasse enthält Variablen, Konstruktoren, Felder und Methoden, und die Schnittstelle enthält bestimmte Felder oder Methoden.

Empfohlene Artikel

Dies ist eine Anleitung zu Access Modifiers in Java. Hier diskutieren wir die verschiedenen Arten von Zugriffsmodifikatoren in Java und deren Spezifikation. Sie können auch unsere anderen Artikelvorschläge durchgehen, um mehr zu erfahren -

  1. Objektorientierte Programmierung in Java
  2. Java Interview Fragen
  3. Was ist Synchronisation in Java?
  4. Autoboxing und Unboxing in Java
  5. Zugriffsmodifikatoren in C ++ (Typen)
  6. Erstaunlicher Leitfaden für den Zugriff auf Modifikatoren in C #
  7. Zugriffsmodifikatoren in PHP
  8. JRE vs JVM | Top 8 Unterschiede zu (Infografiken)