Heim  >  Artikel  >  Java  >  Zugriffsmodifikatoren in Java

Zugriffsmodifikatoren in Java

WBOY
WBOYOriginal
2024-08-30 15:59:15260Durchsuche

Wie wir alle wissen, ist Java eine der besten Programmiersprachen der Welt. Milliarden von Geräten verlassen sich seit zwei Jahrzehnten darauf. Java ist eine schnelle, zuverlässige, sichere und plattformübergreifende Sprache. Java läuft auf jedem Gerät, solange dieses Gerät über Java Runtime (JRE) verfügt, wodurch es plattformübergreifend, schnell und zuverlässig ist. Der Zugriffsmodifikator ist eine Eigenschaft von Java und macht ihn auf mehreren Plattformen sicher. Java bietet dem Programmierer Sicherheit auf Klassenebene (während der Kapselung), indem es die Eigenschaft „Zugriffsmodifikator“ verwendet. Laut dem Buch ist die Klasse der Bauplan für die Erstellung eines Objekts in Java, was sie zu einem „Baustein“ für das Programm macht, da Java eine objektorientierte Sprache ist. Ein Zugriffsmodifikator gibt an, wie jede Klasse auf eine bestimmte Klasse und ihre Felder, Konstruktoren und Methoden in verschiedenen Paketen zugreifen kann. Klassen, Felder, Konstruktoren und Methoden können einen von vier verschiedenen Java-Zugriffsmodifikatoren haben.

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

  • Privat
  • Öffentlich
  • Geschützt
  • Standard – Kein Schlüsselwort erforderlich.

Verschiedene Zugriffsmodifikatoren in Java

Die folgende Tabelle fasst zusammen, wie wir Java-Zugriffsmodifikatoren auf das Programm anwenden können:

Modifiers Class Packages Sub-Class World
Private Y N N N
Public Y Y Y Y
Protected Y Y Y N
Default Y Y N N

Wir werden jeden Java-Zugriffsmodifikator in den folgenden Abschnitten behandeln.

1. Standard

Wenn eine Klasse, ein Datenelement und eine Variable ohne Schreiben mit einem Zugriffsmodifikator deklariert wird, wird sie auf den „Standard“-Zugriffsmodifikator gesetzt. Der Zugriffsmodifikator „Standard“ 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 ein „Standard“-Zugriffsmodifikator auch als Paketzugriffsmodifikator bezeichnet, da auf ihn nur innerhalb desselben Pakets zugegriffen werden kann.
  • Unterklassen konnten nicht auf Methoden, Datenelemente und Variablen (Felder) in der Oberklasse zugreifen, wenn diese Methoden, Datenelemente und Variablen (Felder) in der Klasse mit dem Zugriffsmodifikator „Standard“ markiert sind, es sei denn, diese Unterklassen befinden sich in der gleiches 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:

Fehler bei der Kompilierung.

2. Geschützt

Syntax „geschützt“ wird von Benutzern verwendet, wenn sie 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).
  • Benutzer können Klassen und Schnittstellen nicht mit einem „geschützten“ Zugriffsmodifikator markieren. Allerdings können Methoden und Felder als geschützt deklariert werden, wenn sich Methoden und Felder in einer Schnittstelle befinden.

Zum Beispiel:

//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. Öffentlich

Benutzer können eine Klasse, Methode, einen Konstruktor und eine Schnittstelle mit einem „öffentlichen“ Zugriffsmodifikator deklarieren, auf den jede Klasse, Methode, jeder Konstruktor und jede Schnittstelle innerhalb oder in anderen Paketen zugreifen kann.

  • Dieser Zugriffsmodifikator hat den „Boundless“ unter allen Modifikatoren.
  • Wenn eine Klasse, Methode oder ein Paket mit einem „öffentlichen“ Zugriffsmodifikator gekennzeichnet ist, ist sie für jeden von überall aus im Programm zugänglich.
  • Es gibt keine Einschränkungen hinsichtlich des Umfangs der „öffentlichen“ Zugriffsklassenmethoden.

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 innerhalb derselben Klasse nur auf diese Methoden und Variablen zugreifen.

Der Benutzer kann im Programm keine Superklasse mit einem „privaten“ Zugriffsmodifikator deklarieren. Wenn der Benutzer dies mit einer Klasse tut, wird diese Klasse für keine andere Klasse im selben Paket zugänglich gemacht, sodass die Klasse keinen Nutzen mehr hat. Allerdings kann der Benutzer Variablen und Methoden innerhalb der Klasse mit einem „privaten“ Zugriffsmodifikator deklarieren, sodass niemand diese Variablen und Methoden verwenden kann.

Gelegentlich wurden die 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

Der Java-Zugriffsmodifikator verschafft Ihnen einen zusätzlichen Vorteil gegenüber Ihrem Programm, wenn Sie es öffentlich machen. Wie wir oben untersucht haben, verschiedene Arten von Zugriffsmodifikatoren in JAVA und ihre Spezifikation.

Denken Sie also jedes Mal daran, wenn Sie eine davon als Klassen- oder Schnittstellenzugriff verwenden, da sie nicht nur Zugriff gewähren, sondern diese auch überschreiben. Zwar gibt es immer Bedenken hinsichtlich der Zugänglichkeit der Methode im Programm. Wenn einer Schnittstelle beispielsweise der Zugriffsmodifikator „Standard“ in der Oberklasse zugewiesen wird, kann sie Zugriffsmodifikatoren überschreiben, die in der Unterklasse der Methode verwendet werden.

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

Das obige ist der detaillierte Inhalt vonZugriffsmodifikatoren in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Abstrakte Klasse in JavaNächster Artikel:Abstrakte Klasse in Java