access modifiers java tutorial with examples
In diesem Video-Tutorial wird anhand von Beispielen erläutert, was Zugriffsmodifikatoren in Java sind und wie Standard-, öffentliche, geschützte und private Zugriffsmodifikatoren verwendet werden:
In Java haben wir Klassen und Objekte. Diese Klassen und Objekte sind in einem Paket enthalten. Außerdem können Klassen verschachtelte Klassen, Methoden, Variablen usw. haben. Da Java eine objektorientierte Programmiersprache ist, müssen wir der Kapselung folgen, in der wir die unerwünschten Details verbergen.
Java bietet Entitäten mit der Bezeichnung 'Zugriffsmodifikatoren oder Zugriffsspezifizierer', mit denen wir den Umfang oder die Sichtbarkeit eines Pakets, einer Klasse, eines Konstruktors, von Methoden, Variablen oder anderen Datenelementen einschränken können. Diese Zugriffsmodifikatoren werden auch aufgerufen 'Sichtbarkeitsspezifizierer'.
Durch die Verwendung der Zugriffsspezifizierer kann eine bestimmte Klassenmethode oder Variable auf den Zugriff beschränkt oder vor den anderen Klassen verborgen werden.
=> Überprüfen Sie ALLE Java-Tutorials hier.
Fragen und Antworten zum Interview mit informatica powercenter
Was du lernen wirst:
- Video-Tutorial zu Zugriffsmodifikatoren in Java
- Zugriffsmodifikatoren In Java
- Arten von Zugriffsmodifikatoren In Java
- Fazit
Video-Tutorial zu Zugriffsmodifikatoren in Java
Zugriffsmodifikatoren In Java
Die Zugriffsspezifizierer bestimmen auch, auf welche Datenelemente (Methoden oder Felder) einer Klasse andere Datenelemente von Klassen oder Paketen usw. zugreifen können. Um die Kapselung und Wiederverwendbarkeit sicherzustellen, sind diese Zugriffsspezifizierer / Modifikatoren ein wesentlicher Bestandteil der objektorientierten Programmierung.
Es gibt zwei Arten von Modifikatoren in Java:
# 1) Zugriffsmodifikatoren
Mit Zugriffsmodifikatoren in Java können wir den Umfang oder die Zugänglichkeit oder Sichtbarkeit eines Datenelements festlegen, sei es ein Feld, ein Konstruktor, eine Klasse oder eine Methode.
# 2) Modifikatoren ohne Zugriff
Java bietet auch Nichtzugriffsspezifizierer, die mit Klassen, Variablen, Methoden, Konstruktoren usw. verwendet werden. Die Nichtzugriffsspezifizierer / -modifikatoren definieren das Verhalten der Entitäten für die JVM.
Einige der Nichtzugriffsspezifizierer / -modifikatoren in Java sind:
- statisch
- Finale
- abstrakt
- vorübergehend
- flüchtig
- synchronisiert
- einheimisch
In unseren früheren Tutorials haben wir statische, synchronisierte und flüchtige Schlüsselwörter behandelt. Wir werden die anderen Nichtzugriffsmodifikatoren in unseren zukünftigen Tutorials behandeln, da sie den Rahmen dieses Tutorials sprengen.
Arten von Zugriffsmodifikatoren In Java
Java bietet vier Arten von Zugriffsspezifizierern, die wir mit Klassen und anderen Entitäten verwenden können.
Diese sind:
# 1) Standard: Wenn eine bestimmte Zugriffsebene nicht angegeben wird, wird davon ausgegangen, dass sie 'Standard' ist. Der Umfang der Standardebene liegt im Paket.
# 2) Öffentlich: Dies ist die häufigste Zugriffsebene. Wenn der öffentliche Zugriffsspezifizierer mit einer Entität verwendet wird, kann auf diese bestimmte Entität innerhalb oder außerhalb der Klasse, innerhalb oder außerhalb des Pakets usw. zugegriffen werden.
# 3) Geschützt: Die geschützte Zugriffsebene hat einen Bereich, der im Paket enthalten ist. Auf eine geschützte Entität kann auch außerhalb des Pakets über eine geerbte Klasse oder eine untergeordnete Klasse zugegriffen werden.
# 4) Privat: Wenn eine Entität privat ist, kann außerhalb der Klasse nicht auf diese Entität zugegriffen werden. Auf eine private Entität kann nur innerhalb der Klasse zugegriffen werden.
Wir können die Zugriffsmodifikatoren in der folgenden Tabelle zusammenfassen.
Zugriffsspezifizierer | Innerhalb der Klasse | Innenpaket | Außerhalb der Paketunterklasse | Außenpaket |
---|---|---|---|---|
Privat | Ja | Nein | Nein | Nein |
Standard | Ja | Ja | Nein | Nein |
Geschützt | Ja | Ja | Ja | Nein |
Öffentlichkeit | Ja | Ja | Ja | Ja |
Als nächstes werden wir jeden dieser Zugriffsspezifizierer im Detail diskutieren.
Standardzugriffsspezifizierer
Ein Standardzugriffsmodifikator in Java hat kein bestimmtes Schlüsselwort. Wenn der Zugriffsmodifikator nicht angegeben wird, wird davon ausgegangen, dass er der Standard ist. Die Entitäten wie Klassen, Methoden und Variablen können einen Standardzugriff haben.
Auf eine Standardklasse kann innerhalb des Pakets zugegriffen werden, aber nicht von außerhalb des Pakets, d. H. Alle Klassen innerhalb des Pakets, in denen die Standardklasse definiert ist, können auf diese Klasse zugreifen.
In ähnlicher Weise kann auch innerhalb des Pakets, in dem sie definiert sind, und nicht außerhalb des Pakets auf eine Standardmethode oder -variable zugegriffen werden.
Das folgende Programm demonstriert den Standardzugriffsmodifikator in Java.
class BaseClass { void display() //no access modifier indicates default modifier { System.out.println('BaseClass::Display with 'dafault' scope'); } } class Main { public static void main(String args()) { //access class with default scope BaseClass obj = new BaseClass(); obj.display(); //access class method with default scope } }
Ausgabe:
Im obigen Programm haben wir eine Klasse und eine Methode ohne Zugriffsmodifikator. Daher haben sowohl die Klassen- als auch die Methodenanzeige Standardzugriff. Dann sehen wir, dass wir in der Methode direkt ein Objekt der Klasse erstellen und die Methode aufrufen können.
Modifikator für den öffentlichen Zugriff
Auf eine Klasse, eine Methode oder ein Datenfeld, die als 'öffentlich' angegeben sind, kann von jeder Klasse oder jedem Paket im Java-Programm aus zugegriffen werden. Die öffentliche Einrichtung ist sowohl innerhalb des Pakets als auch außerhalb des Pakets zugänglich. Im Allgemeinen ist der Modifikator für den öffentlichen Zugriff ein Modifikator, der die Entität überhaupt nicht einschränkt.
class A { public void display() { System.out.println('SoftwareTestingHelp!!'); } } class Main { public static void main(String args()) { A obj = new A (); obj.display(); } }
Ausgabe:
Geschützter Zugriffsspezifizierer
Der geschützte Zugriffsspezifizierer ermöglicht den Zugriff auf Entitäten über Unterklassen der Klasse, in der die Entität deklariert ist. Es spielt keine Rolle, ob sich die Klasse im selben oder in einem anderen Paket befindet. Solange die Klasse, die versucht, auf eine geschützte Entität zuzugreifen, eine Unterklasse dieser Klasse ist, kann auf die Entität zugegriffen werden.
Beachten Sie, dass eine Klasse und eine Schnittstelle nicht geschützt werden können, d. H. Wir können keine geschützten Modifikatoren auf Klassen und Schnittstellen anwenden.
Der Modifikator für geschützten Zugriff wird normalerweise in Eltern-Kind-Beziehungen verwendet.
Das folgende Programm demonstriert die Verwendung des Modifikators 'Geschützter Zugriff' in Java.
Welches Windows-Betriebssystem ist am besten?
//A->B->C = class hierarchy class A { protected void display() { System.out.println('SoftwareTestingHelp'); } } class B extends A {} class C extends B {} class Main{ public static void main(String args()) { B obj = new B(); //create object of class B obj.display(); //access class A protected method using obj C cObj = new C(); //create object of class C cObj.display (); //access class A protected method using cObj } }
Ausgabe:
Modifikator für privaten Zugriff
Der 'private' Zugriffsmodifikator ist derjenige mit der niedrigsten Zugriffsstufe. Auf die Methoden und Felder, die als privat deklariert sind, kann außerhalb der Klasse nicht zugegriffen werden. Sie sind nur innerhalb der Klasse zugänglich, deren Mitglieder diese privaten Einheiten sind.
Beachten Sie, dass die privaten Entitäten für die Unterklassen der Klasse nicht einmal sichtbar sind. Ein Modifikator für den privaten Zugriff stellt die Kapselung in Java sicher.
Einige Punkte, die in Bezug auf den Modifikator für den privaten Zugriff zu beachten sind.
- Der Modifikator für den privaten Zugriff kann nicht für Klassen und Schnittstellen verwendet werden.
- Der Umfang privater Entitäten (Methoden und Variablen) ist auf die Klasse beschränkt, in der sie deklariert sind.
- Eine Klasse mit einem privaten Konstruktor kann kein Objekt der Klasse von einem anderen Ort wie der Hauptmethode aus erstellen. (Weitere Details zu privaten Konstruktoren wurden in unserem früheren Tutorial erläutert.)
Das folgende Java-Programm verwendet einen Private Access Modifier.
class TestClass{ //private variable and method private int num=100; private void printMessage(){System.out.println('Hello java');} } public class Main{ public static void main(String args()){ TestClass obj=new TestClass(); System.out.println(obj.num);//try to access private data member - Compile Time Error obj.printMessage();//Accessing private method - Compile Time Error } }
Ausgabe:
Das obige Programm gibt einen Kompilierungsfehler aus, da wir versuchen, mit dem Klassenobjekt auf private Datenelemente zuzugreifen.
Es gibt jedoch eine Methode, um auf private Mitgliedsvariablen zuzugreifen. Diese Methode verwendet Getter und Setter in Java. Daher stellen wir eine öffentliche get-Methode in derselben Klasse bereit, in der die private Variable deklariert ist, damit der Getter den Wert der privaten Variablen lesen kann.
Ebenso stellen wir eine öffentliche Setter-Methode bereit, mit der wir einen Wert für die private Variable festlegen können.
Das folgende Java-Programm demonstriert die Verwendung von Getter- und Setter-Methoden für private Variablen in Java.
class DataClass { private String strname; // getter method public String getName() { return this.strname; } // setter method public void setName(String name) { this.strname= name; } } public class Main { public static void main(String() main){ DataClass d = new DataClass(); // access the private variable using the getter and setter d.setName('Java Programming'); System.out.println(d.getName()); } }
Ausgabe:
Das obige Programm hat eine Klasse mit einer privaten Zeichenfolgenvariablen. Wir stellen eine öffentliche getName-Membermethode bereit, die den Wert der privaten Variablen zurückgibt. Wir stellen auch eine öffentliche setName-Methode in der Klasse bereit, die einen String als Argument verwendet und ihn der privaten Variablen zuweist.
Da beide Methoden öffentlich sind, können wir mit dem Objekt der Klasse problemlos darauf zugreifen. Auf diese Weise können wir den Kompilierungsfehler überwinden, der jedes Mal auftritt, wenn wir versuchen, auf die privaten Datenelemente der Klasse zuzugreifen.
Häufig gestellte Fragen
F # 1) Wie viele Zugriffsmodifikatoren gibt es in Java?
Antworten: Java bietet vier Modifikatoren, d. H. Standard, öffentlich, geschützt und privat.
F # 2) Was sind Zugriffsmodifikatoren und Nichtzugriffsmodifikatoren in Java?
Antworten: Zugriffsmodifikatoren definieren die Sichtbarkeit oder den Umfang einer Programmentität wie einer Klasse oder einer Methode oder einer Variablen oder eines Konstruktors. Nichtzugriffsmodifikatoren definieren das Verhalten einer Entität. Beispielsweise, Eine synchronisierte Methode oder ein synchronisierter Block zeigt an, dass er in einer Multithreading-Umgebung arbeiten kann. Eine letzte Variable gibt an, dass es sich um eine Konstante handelt.
F # 3) Warum sind Zugriffsspezifizierer wichtig?
Antworten: Modifikatoren geben an, welche Klasse auf welche anderen Klassen oder Methoden oder Variablen zugreifen kann. Mithilfe von Zugriffsspezifizierern können wir den Zugriff auf verschiedene Klassen, Methoden, Konstruktoren und Variablen beschränken und die Kapselung und Wiederverwendbarkeit von Java-Entitäten sicherstellen.
F # 4) Welche Modifikatoren werden für die Klasse nicht verwendet?
Antworten: Geschützte und private Modifikatoren werden für eine Klasse nicht verwendet.
F # 5) Was sind Modifikatoren ohne Zugriff?
Antworten: Modifikatoren, die das Verhalten von Entitäten wie Klassen, Methoden oder Variablen definieren, denen sie zugeordnet sind, sind Modifikatoren ohne Zugriff. Wie der Name schon sagt, geben sie den Zugriff nicht an. Java bietet verschiedene Nichtzugriffsmodifikatoren wie statisch, endgültig, synchronisiert, flüchtig, abstrakt usw.
Weitere Informationen zu Sichtbarkeitsmodifikatoren
Java bietet viele Modifikatoren für den Zugriff auf Variablen, Methoden und Konstruktoren.
In Java gibt es 4 Arten von Zugriffsvariablen:
Der einfachste Weg, YouTube in MP3 umzuwandeln
- Privat
- Öffentlichkeit
- Standard
- Geschützt
# 1) Privat
Wenn eine Variable als privat deklariert ist, kann innerhalb der Klasse darauf zugegriffen werden. Diese Variable ist außerhalb der Klasse nicht verfügbar. Daher können die externen Mitglieder nicht auf die privaten Mitglieder zugreifen.
Hinweis: Klassen und Schnittstellen können nicht privat sein.
# 2) Öffentlich
Auf Methoden / Variablen mit öffentlichen Modifikatoren können alle anderen Klassen im Projekt zugreifen.
# 3) Geschützt
Wenn eine Variable als geschützt deklariert ist, kann auf sie innerhalb derselben Paketklassen und Unterklasse aller anderen Pakete zugegriffen werden.
Hinweis: Der Modifikator für geschützten Zugriff kann nicht für Klassen und Schnittstellen verwendet werden.
# 4) Standardzugriffsmodifikator
Wenn eine Variable / Methode ohne ein Schlüsselwort für den Zugriffsmodifikator definiert ist, hat dies einen Standardzugriff für den Modifikator.
Zugriffsmodifikatoren | Sichtweite |
---|---|
Öffentlichkeit | Sichtbar für alle Klassen. |
Geschützt | Sichtbar für Klassen mit im Paket und den Unterklassen anderer Pakete. |
Kein Zugriffsmodifikator (Standard) | Sichtbar für die Klassen mit dem Paket |
Privat | Sichtbar mit in der Klasse. Es ist außerhalb der Klasse nicht zugänglich. |
Demo-Klasse:
class AccessModifiersDemo { private int empsalaray ; public String empName; private void calculateSalary() { System.out.println('insid methodone'); } public String printEmpName(String empName ) { this.empName=empName; return empName; } }
Zugriff auf die Mitglieder der Klasse in einer anderen Klasse:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); accessobj.calculateSalary(); } }
Ausgabe:
Zugang zu den öffentlichen Mitgliedern:
public class TestAccessModifier { public static void main(String() args) { AccessModifiersDemo accessobj =new AccessModifiersDemo(); System.out.println(accessobj.printEmpName('Bobby')); } }
Ausgabe:
Bobby
Wichtige Punkte:
- Zugriffsspezifizierer definieren die Sichtbarkeit der Klasse.
- Wenn kein Schlüsselwort erwähnt wird, ist dies der Standardzugriffsmodifikator.
- Zu den vier Modifikatoren in Java gehören public, private, protected und default.
- Private und geschützte Schlüsselwörter können nicht für Klassen und Schnittstellen verwendet werden.
Fazit
In diesem Tutorial haben wir Access Modifiers in Java im Detail untersucht. Java bietet vier Arten von Zugriffsmodifikatoren oder Sichtbarkeitsspezifizierern, d. H. Standard, öffentlich, privat und geschützt. Dem Standardmodifikator ist kein Schlüsselwort zugeordnet.
Wenn einer Klasse, Methode oder Variablen kein Zugriffsspezifizierer zugeordnet ist, wird davon ausgegangen, dass sie über Standardzugriff verfügt. Der Modifikator für den öffentlichen Zugriff ermöglicht den Zugriff auf alles innerhalb oder außerhalb der Klasse oder des Pakets. Für den öffentlichen Modifikator gibt es keine Zugriffsbeschränkung.
Der geschützte Sichtbarkeitsspezifizierer ermöglicht den Zugriff nur auf Unterklassen, die die Klasse erben, in der geschützte Mitglieder deklariert sind. Mit dem Modifikator 'Privater Zugriff' kann nur innerhalb der Klasse auf die Mitglieder mit dem geringsten Zugriff zugegriffen werden.
Modifikatoren begrenzen den Umfang von Datenelementen wie Klassen, Konstruktoren, Methoden und Variablen und definieren die Begrenzung, auf die Klassen oder Pakete zugreifen können. Zugriffsspezifizierer fördern die Kapselung und Wiederverwendbarkeit in Java. Beachten Sie, dass Klassen und Schnittstellen nicht geschützt oder privat sein können.
=> Besuchen Sie hier, um Java von Grund auf neu zu lernen.
Literatur-Empfehlungen
- Java Reflection Tutorial mit Beispielen
- JAVA-Tutorial für Anfänger: Über 100 praktische Java-Video-Tutorials
- Einführung in die Java-Programmiersprache - Video-Tutorial
- Java SWING Tutorial: Container-, Komponenten- und Ereignisbehandlung
- Java String mit String Buffer und String Builder Tutorial
- Java-Bereitstellung: Erstellung und Ausführung einer Java-JAR-Datei
- Java Virtual Machine: Wie JVM beim Ausführen von Java-Anwendungen hilft
- JCF-Tutorial (Java Collections Framework)