- Modifikator für privaten Zugriff
- Rolle des privaten Konstrukteurs
- Standardzugriffsmodifikator
- Geschützter Zugriffsmodifikator
- Modifikator für den öffentlichen Zugriff
- Zugriffsmodifikator mit Methodenüberschreibung
In Java gibt es zwei Arten von Modifikatoren: Zugriffsmodifikatoren Und Nichtzugriffsmodifikatoren .
Die Zugriffsmodifikatoren in Java geben die Zugänglichkeit oder den Umfang eines Felds, einer Methode, eines Konstruktors oder einer Klasse an. Wir können die Zugriffsebene von Feldern, Konstruktoren, Methoden und Klassen ändern, indem wir den Zugriffsmodifikator darauf anwenden.
Es gibt vier Arten von Java-Zugriffsmodifikatoren:
Es gibt viele Nicht-Zugriffsmodifikatoren, wie z. B. statisch, abstrakt, synchronisiert, nativ, flüchtig, transient usw. Hier lernen wir nur die Zugriffsmodifikatoren kennen.
Grundlegendes zu Java-Zugriffsmodifikatoren
Lassen Sie uns die Zugriffsmodifikatoren in Java anhand einer einfachen Tabelle verstehen.
Zugriffsmodifikator | innerhalb der Klasse | im Paket | Außerhalb des Pakets nur nach Unterklasse | Außenverpackung |
---|---|---|---|---|
Privat | UND | N | N | N |
Standard | UND | UND | N | N |
Geschützt | UND | UND | UND | N |
Öffentlich | UND | UND | UND | UND |
1) Privat
Auf den privaten Zugriffsmodifikator kann nur innerhalb der Klasse zugegriffen werden.
Huffman-Codierungscode
Einfaches Beispiel für einen privaten Zugriffsmodifikator
In diesem Beispiel haben wir zwei Klassen A und Simple erstellt. Eine Klasse enthält ein privates Datenelement und eine private Methode. Wir greifen von außerhalb der Klasse auf diese privaten Mitglieder zu, daher liegt ein Fehler bei der Kompilierung vor.
class A{ private int data=40; private void msg(){System.out.println('Hello java');} } public class Simple{ public static void main(String args[]){ A obj=new A(); System.out.println(obj.data);//Compile Time Error obj.msg();//Compile Time Error } }
Rolle des privaten Konstrukteurs
Wenn Sie einen Klassenkonstruktor privat machen, können Sie die Instanz dieser Klasse nicht von außerhalb der Klasse erstellen. Zum Beispiel:
class A{ private A(){}//private constructor void msg(){System.out.println('Hello java');} } public class Simple{ public static void main(String args[]){ A obj=new A();//Compile Time Error } }
Hinweis: Eine Klasse kann nicht privat oder geschützt sein, mit Ausnahme einer verschachtelten Klasse.
2) Standard
Wenn Sie keinen Modifikator verwenden, wird er als behandelt Standard standardmäßig. Auf den Standardmodifikator kann nur innerhalb des Pakets zugegriffen werden. Es kann nicht von außerhalb des Pakets darauf zugegriffen werden. Es bietet mehr Zugänglichkeit als privat. Es ist jedoch restriktiver als geschützt und öffentlich.
wie man in Java von int in string konvertiert
Beispiel für einen Standardzugriffsmodifikator
In diesem Beispiel haben wir zwei Pakete pack und mypack erstellt. Wir greifen von außerhalb ihres Pakets auf die A-Klasse zu, da die A-Klasse nicht öffentlich ist und daher nicht von außerhalb des Pakets auf sie zugegriffen werden kann.
//save by A.java package pack; class A{ void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A();//Compile Time Error obj.msg();//Compile Time Error } }
Im obigen Beispiel ist der Gültigkeitsbereich der Klasse A und ihrer Methode msg() standardmäßig festgelegt, sodass von außerhalb des Pakets nicht darauf zugegriffen werden kann.
3) Geschützt
Der geschützter Zugriffsmodifikator ist innerhalb und außerhalb des Pakets zugänglich, jedoch nur durch Vererbung.
Der geschützte Zugriffsmodifikator kann auf das Datenelement, die Methode und den Konstruktor angewendet werden. Es kann nicht auf die Klasse angewendet werden.
Es bietet mehr Zugänglichkeit als der Standardmodifikator.
Beispiel für einen geschützten Zugriffsmodifikator
In diesem Beispiel haben wir die beiden Pakete pack und mypack erstellt. Die Paketklasse „A“ ist öffentlich und kann daher von außerhalb des Pakets aufgerufen werden. Die msg-Methode dieses Pakets ist jedoch als geschützt deklariert, sodass von außerhalb der Klasse nur durch Vererbung auf sie zugegriffen werden kann.
//save by A.java package pack; public class A{ protected void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.*; class B extends A{ public static void main(String args[]){ B obj = new B(); obj.msg(); } }
Output:Hello
4) Öffentlich
Der Modifikator für den öffentlichen Zugriff ist überall zugänglich. Es hat unter allen anderen Modifikatoren den größten Anwendungsbereich.
Beispiel für einen öffentlichen Zugriffsmodifikator
stlc
//save by A.java package pack; public class A{ public void msg(){System.out.println('Hello');} }
//save by B.java package mypack; import pack.*; class B{ public static void main(String args[]){ A obj = new A(); obj.msg(); } }
Output:Hello
Java-Zugriffsmodifikatoren mit Methodenüberschreibung
Wenn Sie eine Methode überschreiben, darf die überschriebene Methode (d. h. in der Unterklasse deklariert) nicht restriktiver sein.
class A{ protected void msg(){System.out.println('Hello java');} } public class Simple extends A{ void msg(){System.out.println('Hello java');}//C.T.Error public static void main(String args[]){ Simple obj=new Simple(); obj.msg(); } }
Der Standardmodifikator ist restriktiver als geschützt. Aus diesem Grund liegt ein Fehler bei der Kompilierung vor.