1. Zugriffsmodifikatoren

Vor jeder Methode können Programmierer sogenannte Zugriffsmodifikatoren angeben. Dazu gehören die folgenden Schlüsselwörter: public, protected, private.

Mit diesen Zugriffsmodifikatoren können Sie den Zugriff anderer Klassen auf eine Methode einschränken.

Wenn Sie beispielsweise das privateSchlüsselwort vor einer Methodendeklaration schreiben, kann die Methode nur von derselben Klasse aufgerufen werden, in der sie deklariert ist. Das publicSchlüsselwort ermöglicht den Zugriff auf die markierte Methode von jeder Methode einer beliebigen Klasse aus.

Es gibt insgesamt 3 solcher Modifikatoren, aber es gibt 4 Arten des Zugriffs auf eine Methode. Dies liegt daran, dass auch das Fehlen eines Zugriffsmodifikators eine Bedeutung hat.

Zugang von...
Modifikatoren Jede Klasse Kinderklasse Sein Paket Seine Klasse
public Ja Ja Ja Ja
protected NEIN Ja Ja Ja
kein Modifikator NEIN NEIN Ja Ja
private NEIN NEIN NEIN Ja

1. publicModifikator

Auf eine mit dem Modifikator markierte Methode (oder Variable oder Klasse) publickann von überall im Programm aus zugegriffen werden . Dies ist das höchste Maß an Offenheit – es gibt keine Einschränkungen.

2. privateModifikator

Auf eine mit dem Modifikator markierte Methode (oder Variable oder Klasse) privatekann nur von derselben Klasse aus zugegriffen werden, in der sie deklariert ist . Für alle anderen Klassen ist die markierte Methode (oder Variable) unsichtbar. Es ist, als ob es nicht existiert. Dies ist die höchste Einschränkungsstufe – nur eine eigene Klasse.

3. Kein Modifikator (Standardmodifikator)

Wenn eine Methode (oder Variable) nicht mit einem Modifikator markiert ist, wird davon ausgegangen, dass sie den „Standardmodifikator“ hat. Variablen oder Methoden mit diesem Modifikator (also ohne überhaupt) sind für alle Klassen in dem Paket sichtbar, in dem sie deklariert sind . Und nur für sie. Dieser Modifikator wird manchmal auch genannt package-private, was darauf hindeutet, dass der Zugriff auf Variablen und Methoden für das gesamte Paket offen ist, in dem sich ihre Klasse befindet.

4. protectedModifikator

Wenn eine Methode mit dem protectedModifikator markiert ist, kann von derselben Klasse, demselben Paket und von Nachkommen (Klassen, die die Klasse erben, in der die Methode deklariert ist) auf sie zugegriffen werden. Wir werden dieses Thema in der Java Core-Quest genauer analysieren.

Sie können den publicModifikator für alle Ihre Methoden (sowie alle Ihre Klassen und Klassenvariablen) verwenden, bis Sie das Ende der Java-Syntax-Quest erreicht haben. Sie benötigen die anderen Modifikatoren, wenn wir beginnen, OOP aktiv zu lernen.

Warum werden Zugriffsmodifikatoren benötigt?

Sie werden für große Projekte notwendig, die von Dutzenden oder Hunderten von Programmierern gleichzeitig geschrieben werden.

Manchmal gibt es Situationen, in denen ein Programmierer eine übermäßig große Methode in Teile aufteilen und einen Teil des Codes in Hilfsmethoden verschieben möchte. Gleichzeitig möchte er jedoch nicht, dass andere Programmierer diese Hilfsmethoden aufrufen, da der entsprechende Code möglicherweise nicht korrekt funktioniert.

Also haben sie sich diese Zugriffsmodifikatoren ausgedacht. Wenn Sie eine Hilfsmethode mit dem Wort private markieren , kann kein anderer Code als Ihre Klasse Ihre Hilfsmethode sehen.



2. staticSchlüsselwort

Das staticSchlüsselwort macht eine Methode statisch. Was das bedeutet, schauen wir uns später an. Erinnern Sie sich vorerst nur an ein paar Fakten über statische Methoden.

Fakt 1: Eine statische Methode ist keinem Objekt zugeordnet , sondern gehört zu der Klasse, in der sie deklariert ist. Um eine statische Methode aufzurufen, müssen Sie Folgendes schreiben:

ClassName.MethodName()

Beispiele für statische Methoden:

Klassenname Statischer Methodenname
Thread.sleep() Thread sleep()
Math.abs() Math abs()
Arrays.sort() Arrays sort()

Der Klassenname vor dem Namen einer statischen Methode kann weggelassen werden, wenn Sie die statische Methode aus ihrer Klasse heraus aufrufen. Aus diesem Grund müssen Sie nicht Solutionvor den Namen jeder aufgerufenen statischen Methode schreiben.

Fakt 2: Eine statische Methode kann nicht auf die nicht statischen Methoden ihrer eigenen Klasse zugreifen. Eine statische Methode kann nur auf statische Methoden zugreifen. Als Ergebnis deklarieren wir alle Methoden, die wir über die Methode static aufrufen möchten main.

Warum? Sie werden diese Frage selbst beantworten können, wenn Sie mit dem Erlernen von OOP beginnen und verstehen, wie statische Methoden funktionieren.



3. throwsSchlüsselwort

Es gibt ein weiteres Schlüsselwort, das Sie wahrscheinlich in einer Methodendeklaration gesehen haben – das throwsSchlüsselwort. Im Gegensatz zu Zugriffsmodifikatoren und dem staticSchlüsselwort wird dieses Schlüsselwort nach den Methodenparametern platziert:

public static Type name(parameters) throws Exception
{
  method body
}

Wir werden die genaue Bedeutung etwas später betrachten, wenn wir Ausnahmen untersuchen.

Aber um es oberflächlich zu betrachten, können wir sagen, dass eine mit dem Schlüsselwort throws markierte Methode Fehler (Ausnahmen) auslösen kann, also Instanzen der Exception Klasse (und Klassen, die sie erben). Wenn in einer Klasse mehrere verschiedene Arten von Fehlern auftreten können, müssen Sie diese jeweils durch Kommas getrennt auflisten.


4. mainMethode

Die Zeile, in der eine Methode deklariert wird und alle Modifikatoren enthält, wirkt sich darauf aus, wie diese Methode von anderen Klassen und Methoden aufgerufen wird. Es wirkt sich auf die Art des Ergebnisses aus, das die Methode zurückgibt, und gibt an, welche Fehler während der Ausführung möglich sind.

Eine solche Zeile wird als Methodendeklaration bezeichnet und hat das folgende allgemeine Format:

access modifier static Type name(parameters) throws exceptions
Allgemeines Format einer Methodendeklaration

Wo wird durch , , oder gar nichts access modifiers ersetzt ;publicprotectedprivate

Wenn die Methode statisch ist, staticerscheint das Schlüsselwort (bei nicht statischen Methoden fehlt es).

Typeist der Typ des Rückgabewerts ( voidwenn es kein Ergebnis gibt)

Jetzt verstehen Sie wahrscheinlich, was alle Schlüsselwörter in der Deklaration der mainMethode bedeuten:

public static void main(String[] args) throws Exception
mainMethode deklarieren

Der Zugriff auf die main()Methode ist von jeder Klasse aus möglich, wie durch das publicSchlüsselwort angegeben.

Die Methode ist statisch und kann daher explizit als aufgerufen werden Solution.main().

Die mainMethode gibt kein Ergebnis zurück. Der Rückgabetyp ist void(kein Typ).

Die mainMethode akzeptiert Argumente(!): ein Array von Zeichenfolgen. Und der Parametername argssuggeriert uns „Argumente“. Wenn das Programm startet, können Sie ihm Argumente übergeben – ein Array von Zeichenfolgen. Sie werden im args Array der main()Methode enthalten sein.

In der Methode können unbehandelte Fehler wie Exception(oder ihre Nachkommen) auftreten main().