Java Access Modifiers (mit Beispielen)

In diesem Tutorial lernen wir anhand von Beispielen den Java Access Modifier, seine Typen und deren Verwendung kennen.

Was sind Zugriffsmodifikatoren?

In Java werden Zugriffsmodifikatoren verwendet, um die Zugänglichkeit (Sichtbarkeit) von Klassen, Schnittstellen, Variablen, Methoden, Konstruktoren, Datenelementen und den Setter-Methoden festzulegen. Beispielsweise,

 class Animal ( public void method1() (… ) private void method2() (… ) )

Im obigen Beispiel haben wir zwei Methoden deklariert: method1 () und method2 (). Hier,

  • Methode1 ist public- Dies bedeutet, dass andere Klassen darauf zugreifen können.
  • Methode2 ist private- Dies bedeutet, dass andere Klassen nicht darauf zugreifen können.

Beachten Sie das Schlüsselwort publicund private. Dies sind Zugriffsmodifikatoren in Java. Sie werden auch als Sichtbarkeitsmodifikatoren bezeichnet.

Hinweis : Sie können den Zugriffsmodifikator für Getter-Methoden nicht festlegen.

Arten von Zugriffsmodifikatoren

Bevor Sie sich mit den Arten von Zugriffsmodifikatoren vertraut machen, sollten Sie sich mit Java-Paketen vertraut machen.

In Java gibt es vier Schlüsselwörter für Zugriffsmodifikatoren:

Modifikator Beschreibung
Standard Deklarationen sind nur innerhalb des Pakets sichtbar (Paket privat)
Privat Deklarationen sind nur innerhalb der Klasse sichtbar
Geschützt Deklarationen sind im Paket oder in allen Unterklassen sichtbar
Öffentlichkeit Erklärungen sind überall sichtbar

Standardzugriffsmodifikator

Wenn wir keinen Zugriffsmodifikator für Klassen, Methoden, Variablen usw. explizit angeben, wird standardmäßig der Standardzugriffsmodifikator berücksichtigt. Beispielsweise,

 package defaultPackage; class Logger ( void message()( System.out.println("This is a message"); ) )

Hier hat die Logger-Klasse den Standardzugriffsmodifikator. Die Klasse ist für alle Klassen sichtbar, die zum defaultPackage-Paket gehören. Wenn wir jedoch versuchen, die Logger-Klasse in einer anderen Klasse außerhalb von defaultPackage zu verwenden, wird ein Kompilierungsfehler angezeigt.

Modifikator für privaten Zugriff

Wenn Variablen und Methoden deklariert werden private, kann außerhalb der Klasse nicht auf sie zugegriffen werden. Beispielsweise,

 class Data ( // private variable private String name; ) public class Main ( public static void main(String() main)( // create an object of Data Data d = new Data(); // access private variable and field from another class d.name = "Programiz"; ) )

Im obigen Beispiel haben wir eine private Variable mit dem Namen name und eine private Methode mit dem Namen deklariert display(). Wenn wir das Programm ausführen, wird der folgende Fehler angezeigt:

 Main.java:18: error: name has private access in Data d.name = "Programiz"; ^

Der Fehler wird generiert, weil wir versuchen, von der Hauptklasse aus auf die private Variable und die private Methode der Data-Klasse zuzugreifen.

Sie fragen sich vielleicht, was passiert, wenn wir auf diese privaten Variablen zugreifen müssen. In diesem Fall können wir die Getter- und Setter-Methode verwenden. Beispielsweise,

 class Data ( private String name; // getter method public String getName() ( return this.name; ) // setter method public void setName(String name) ( this.name= name; ) ) public class Main ( public static void main(String() main)( Data d = new Data(); // access the private variable using the getter and setter d.setName("Programiz"); System.out.println(d.getName()); ) )

Ausgabe :

 Der Name ist Programiz

Im obigen Beispiel haben wir eine private Variable namens name. Um von der äußeren Klasse aus auf die Variable zuzugreifen, haben wir folgende Methoden verwendet: getName()und setName(). Diese Methoden werden in Java als Getter und Setter bezeichnet.

Hier haben wir die Setter-Methode ( setName()) verwendet, um der Variablen einen Wert zuzuweisen, und die Getter-Methode ( getName()), um auf die Variable zuzugreifen.

Wir haben das thisSchlüsselwort setName () verwendet, um auf die Variable der Klasse zu verweisen. Um mehr über dieses Schlüsselwort zu erfahren, besuchen Sie Java dieses Schlüsselwort.

Hinweis : In Java können keine Klassen und Schnittstellen als privat deklariert werden. Die verschachtelten Klassen können jedoch als privat deklariert werden. Weitere Informationen finden Sie unter Java Nested and Inner Class.

Modifikator für geschützten Zugriff

Wenn Methoden und Datenelemente deklariert sind protected, können wir sowohl innerhalb desselben Pakets als auch aus Unterklassen darauf zugreifen. Beispielsweise,

 class Animal ( // protected method protected void display() ( System.out.println("I am an animal"); ) ) class Dog extends Animal ( public static void main(String() args) ( // create an object of Dog class Dog dog = new Dog(); // access protected method dog.display(); ) )

Ausgabe :

 Ich bin ein Tier

Im obigen Beispiel haben wir eine geschützte Methode, die display()innerhalb der Animal-Klasse benannt ist. Die Tierklasse wird von der Hundeklasse geerbt. Weitere Informationen zur Vererbung finden Sie unter Java Inheritance.

Wir haben dann einen Objekthund der Hundeklasse erstellt. Mit dem Objekt haben wir versucht, auf die geschützte Methode der übergeordneten Klasse zuzugreifen.

Da über die untergeordneten Klassen auf geschützte Methoden zugegriffen werden kann, können wir über die Dog-Klasse auf die Methode der Animal-Klasse zugreifen.

Hinweis : protectedIn Java können keine Klassen oder Schnittstellen deklariert werden .

Modifikator für den öffentlichen Zugriff

Wenn Methoden, Variablen, Klassen usw. deklariert sind public, können wir von überall darauf zugreifen. Der Modifikator für den öffentlichen Zugriff unterliegt keiner Bereichsbeschränkung. Beispielsweise,

 // Animal.java file // public class public class Animal ( // public variable public int legCount; // public method public void display() ( System.out.println("I am an animal."); System.out.println("I have " + legCount + " legs."); ) ) // Main.java public class Main ( public static void main( String() args ) ( // accessing the public class Animal animal = new Animal(); // accessing the public variable animal.legCount = 4; // accessing the public method animal.display(); ) )

Ausgabe :

Ich bin ein Tier. Ich habe 4 Beine.

Hier,

  • Auf die öffentliche Klasse Animal wird von der Hauptklasse aus zugegriffen.
  • Auf die öffentliche Variable legCount wird von der Hauptklasse aus zugegriffen.
  • Auf die öffentliche Methode display()wird von der Hauptklasse aus zugegriffen.

Zugriffsmodifikatoren In einer Abbildung zusammengefasst

Zugänglichkeit aller Zugriffsmodifikatoren in Java

Zugriffsmodifikatoren werden hauptsächlich zur Kapselung verwendet. Ich kann uns helfen zu steuern, welcher Teil eines Programms auf die Mitglieder einer Klasse zugreifen kann. Damit kann ein Missbrauch von Daten verhindert werden. Weitere Informationen zur Kapselung finden Sie unter Java-Kapselung.

Interessante Beiträge...