Java bietet eine Reihe von Zugriffsmodifikatoren Zugriffsstufen für Klassen, Variablen, Methoden und Konstruktoren zu setzen. Die vier Zugriffsebenen sind –
- Für das Paket sichtbar, der Standardwert. Es werden keine Modifikatoren benötigt.
- Nur für die Klasse sichtbar (privat).
- Sichtbar für die Welt (öffentlich).
- Sichtbar für das Paket und alle Unterklassen (geschützt).,
Standardzugriffsmodifikator – Kein Schlüsselwort
Standardzugriffsmodifikator bedeutet, dass wir keinen Zugriffsmodifikator für eine Klasse, ein Feld, eine Methode usw. explizit deklarieren.
Eine Variable oder Methode, die ohne Zugriffskontrollmodifikator deklariert wurde, steht jeder anderen Klasse im selben Paket zur Verfügung. Die Felder in einer Schnittstelle sind implizit public static final und die Methoden in einer Schnittstelle sind standardmäßig public.,
Example
Variablen und Methoden können ohne Modifikatoren deklariert werden, wie in den folgenden Beispielen −
String version = "1.5.1";boolean processOrder() { return true;}
Private Access Modifier – Private
Methoden, Variablen und Konstruktoren, die als privat deklariert sind, können nur innerhalb der deklarierten Klasse selbst aufgerufen werden.
Der private Zugriffsmodifikator ist die restriktivste Zugriffsebene. Klasse und Schnittstellen können nicht privat sein.
Variablen, die als privat deklariert sind, können außerhalb der Klasse aufgerufen werden, wenn öffentliche Getter-Methoden in der Klasse vorhanden sind.,
Die Verwendung des privaten Modifikators ist die Hauptmethode, mit der sich ein Objekt einkapselt und Daten vor der Außenwelt verbirgt.
Beispiel
Die folgende Klasse verwendet private Access control −
Hier ist die Formatvariable der Logger-Klasse privat, sodass andere Klassen ihren Wert nicht direkt abrufen oder festlegen können.
Um diese Variable für die Außenwelt verfügbar zu machen, haben wir zwei öffentliche Methoden definiert: getFormat(), das den Wert von format zurückgibt, und setFormat(String), das seinen Wert festlegt.,
Public-Access-Modifier – Public
Eine Klasse, Methode, Konstruktor, interface, etc. auf die deklarierte public kann von jeder anderen Klasse aus zugegriffen werden. Daher können Felder, Methoden und Blöcke, die in einer öffentlichen Klasse deklariert sind, von jeder zum Java-Universum gehörenden Klasse aus aufgerufen werden.
Wenn sich die öffentliche Klasse, auf die wir zugreifen möchten, in einem anderen Paket befindet, muss die öffentliche Klasse noch importiert werden. Aufgrund der Klassenvererbung werden alle öffentlichen Methoden und Variablen einer Klasse von ihren Unterklassen vererbt.,
Beispiel
Die folgende Funktion verwendet public access control –
public static void main(String arguments) { // ...}
Die main () – Methode einer Anwendung muss öffentlich sein. Andernfalls konnte es nicht von einem Java-Interpreter (z. B. Java) zum Ausführen der Klasse aufgerufen werden.
Protected Access Modifier-Protected
Variablen, Methoden und Konstruktoren, die in einer Oberklasse als geschützt deklariert sind, können nur von den Unterklassen in einem anderen Paket oder einer Klasse innerhalb des Pakets der Klasse der geschützten Mitglieder zugegriffen werden.
Der geschützte Zugriffsmodifikator kann nicht auf Klassen und Schnittstellen angewendet werden., Methoden, Felder können als geschützt deklariert werden, Methoden und Felder in einer Schnittstelle können jedoch nicht als geschützt deklariert werden.
Der geschützte Zugriff gibt der Unterklasse die Möglichkeit, die Hilfsmethode oder-variable zu verwenden, während verhindert wird, dass eine nicht verwandte Klasse versucht, sie zu verwenden.
Beispiel
Die folgende übergeordnete Klasse verwendet eine geschützte Zugriffskontrolle, damit ihre untergeordnete Klasse die openSpeaker () −Methode überschreiben kann –
class AudioPlayer { protected boolean openSpeaker(Speaker sp) { // implementation details }}class StreamingAudioPlayer extends AudioPlayer { boolean openSpeaker(Speaker sp) { // implementation details }}
Wenn wir hier die openSpeaker () – Methode als privat definieren, ist sie von keiner anderen Klasse als AudioPlayer aus zugänglich., Wenn wir es als öffentlich definieren, würde es für die gesamte Außenwelt zugänglich werden. Aber unsere Absicht ist es, diese Methode nur ihrer Unterklasse zugänglich zu machen, deshalb haben wir protected modifier verwendet.
Zugriffskontrolle und Vererbung
Die folgenden Regeln für vererbte Methoden werden erzwungen –
-
Methoden, die in einer Oberklasse als öffentlich deklariert sind, müssen auch in allen Unterklassen öffentlich sein.
-
Methoden, die in einer Oberklasse als geschützt deklariert sind, müssen entweder geschützt oder in Unterklassen öffentlich sein; Sie können nicht privat sein.,
-
Methoden, die als privat bezeichnet werden, werden überhaupt nicht vererbt, daher gibt es keine Regel für sie.