JavaRush /Java-Blog /Random-DE /Methoden in Java
articles
Level 15

Methoden in Java

Veröffentlicht in der Gruppe Random-DE
Methoden in Java - 1In Java besteht eine Anwendung aus Klassen. Klassen wiederum bestehen aus Variablen. Sie sind für die Speicherung von Daten und Methoden verantwortlich, die für das Verhalten der Klasse verantwortlich sind: mit anderen Worten für die Logik, die sie bereitstellen kann (z. B. Verarbeitung einiger Daten, Aufruf anderer Methoden usw.). Wir können lange über solche Komponenten als Variablen sprechen, aber das ist nicht der Grund, warum wir uns heute versammelt haben. Sprechen wir besser über eine solche Komponente der Klasse als Methode. Methoden in Java - 2Eine Methode ist ein benannter Codeblock, der innerhalb einer Klasse deklariert wird. Es enthält eine bestimmte vollständige Abfolge von Aktionen (Anweisungen), die auf die Lösung eines separaten Problems abzielen und wiederverwendet werden können. Mit anderen Worten, eine Methode ist eine Funktion: etwas, das Ihre Klasse tun kann. Auch andere Sprachen haben Funktionen. Nur in Java sind sie Mitglieder von Klassen und werden gemäß der OOP-Terminologie als Methoden bezeichnet. Aber bevor wir fortfahren, schauen wir uns ein kleines Beispiel an:
public String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
  return resultSentence;
}
Hier gibt es nichts Kompliziertes: eine Java-Methode, deren Aufgabe es ist, eine Begrüßungszeichenfolge mit dem Namen zu generieren, den wir ihr übergeben. Wie zum Beispiel: Hello world! My name is Bobby Lassen Sie uns den Aufbau einer Methode richtig verstehen, indem wir uns jedes Schlüsselwort in der Methodendeklaration ansehen (von links nach rechts). Unser erstes Schlüsselwort ist publicund bezeichnet einen Zugriffsmodifikator:

Zugriffsmodifikatoren

Sie geben den zulässigen Sichtbarkeitsbereich für Klassenmitglieder an, also die Einschränkung der Stellen, an denen eine Variable oder Methode verwendet werden darf. Methoden in Java - 3Die folgenden Zugriffsmodifikatoren werden in Java verwendet:
  • öffentlich : öffentlich. Methoden oder Felder mit diesem Modifikator sind öffentlich und für andere Klassen (bzw. deren Methoden und Felder) aus dem aktuellen Paket und aus externen Paketen sichtbar. Dies ist die umfassendste bekannte Zugriffsebene.

  • protected : Auf Methoden oder Variablen mit diesem Modifikator kann von überall in der aktuellen Klasse oder dem aktuellen Paket oder in Klassen, die diesen erben, sowie auf Methoden oder Felder zugegriffen werden, selbst wenn sie sich in anderen Paketen befinden

    protected String constructHelloSentence(String name) {...}
  • Standardmodifikator. Wenn ein Klassenfeld oder eine Methode keinen Modifikator hat, wird der Standardmodifikator angewendet. In diesem Fall sind die Felder oder Methoden für alle Klassen im aktuellen Paket sichtbar (wie protected , jedoch ohne Sichtbarkeit bei der Vererbung).

    String constructHelloSentence(String name) {...}
  • private : das Gegenteil des öffentlichen Modifikators . Eine Methode oder Variable mit einem solchen Modifikator ist nur in der Klasse verfügbar, in der sie deklariert ist.

    private String constructHelloSentence(String name) {...}
Als nächstes haben wir Stringdie Methodensignatur (die erste Zeile der Methode, die ihre Eigenschaften beschreibt).

Rückgabewert

Der Rückgabewert sind die Daten (ein Ergebnis der Methodenausführung), die nach dem Aufruf an ihre Stelle treten. Jede Methode hat einen Rückgabewert. Oder nicht?

Rückgabewertmethoden

Dieser Wert kann ein beliebiger Datentyp sein: eine Variable eines einfachen Typs oder ein Referenztyp. In diesem Beispiel geben wir an, dass die Methode ein Objekt vom Typ zurückgeben muss String, bei dem es sich, wie wir uns erinnern, um eine Klasse handelt, die einen String beschreibt. Der zweite Punkt hier ist das Wort return. Es hat eine direkte Beziehung zum Rückgabewert: Der Wert danach wird an die Stelle zurückgesendet, an der die Methode aufgerufen wurde, und die Methode selbst wird dann returngeschlossen. Dieses Wort erscheint normalerweise in der letzten Zeile der Methode (außer bei Methoden mit mehreren Zweigen wie if, else...). Wenn Sie den Code in die nächste Zeile danach schreiben return:
private String constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  return resultSentence;
  System.out.println(resultSentence);
}
Dann bekommen wir Flüche vom Compiler, was nicht sehr gut ist (der Compiler empfiehlt keinen Unsinn). Sie müssen auch bedenken, dass der Datentyp danach сmit dem in der Methodensignatur deklarierten übereinstimmen muss. returnLesen Sie hier mehr darüber .

Leere

Wofür wird es in Java verwendet void? Nicht alle Methoden haben einen Rückgabewert. Manche haben entweder nichts oder müssen nichts zurückgeben. Was ist dann zu tun? Dann schreiben wir in die Methodensignatur void. Wie würde unsere Methode ohne Rückgabewert aussehen?
protected void constructHelloSentence(String name) {
  String resultSentence = "Hello world! My name is " + name;
  System.out.println(resultSentence);
}
Sie haben wahrscheinlich bemerkt, dass zusammen mit dem Rückgabewert das Wort „ returnSo it is“ verschwunden ist, da unsere Methode nichts zurückgeben sollte. Es kann jedoch hier platziert werden, jedoch ohne Bedeutung, nur return; in der letzten Zeile. Dies ist im Allgemeinen nutzlos und daher voidin Methoden mit optional. Es kann jedoch sinnvoll in voidMethoden wie Verzweigungen oder Schleifen verwendet werden, bei denen Sie die Methode sofort verlassen möchten. Als nächstes hatten wir in der Methodendeklaration constructHelloSentence.

Methodennamen

constructHelloSentence - der Name der Methode, ein charakteristisches Merkmal, anhand dessen wir die eine oder andere Methode unterscheiden können. Rufen Sie dementsprechend die eine oder andere Methode auf. Methoden in Java - 4Methodennamen müssen mit einem Kleinbuchstaben beginnen, dürfen aber auch die Kamel-Schreibweise (CamelCase, Kamel-Fall) verwenden: d. h. Jedes nächste Wort im Namen grenzt an das vorherige an und wird mit einem Großbuchstaben geschrieben. Methodennamen sollten die Methode beschreiben (der beste Kommentar ist die richtige Benennung). Verwenden Sie dazu Verben oder Kombinationen mit Verben: getCat, delete, createCarusw. Innerhalb einer Klasse müssen Methodennamen eindeutig sein (Methodenüberladung nicht mitgerechnet, worüber wir etwas später sprechen werden). Schauen wir uns die Methode, die wir analysieren, genauer an und sehen ( String name)

Methodenparameter

Methoden können bestimmte Daten enthalten (oder auch nicht), die von außen stammen, nämlich von dem Ort, an dem die Methode aufgerufen wurde. In unserem Fall sehen wir, dass ein Typobjekt Stringmit einem Namen ankommt name, und in Zukunft verwenden wir diese Variable in unserer Methode. Sie können eine unbegrenzte Anzahl von Parametern in einer Methode verwenden, mehr als 7 werden jedoch nicht empfohlen. Wenn wir die genaue Anzahl der Elemente nicht kennen, aber alle diese Elemente für denselben Zweck benötigt werden und vom gleichen Typ sind (z. B. String), werden Auslassungspunkte verwendet:
public void constructHelloSentence(String...name) {
 ...
}
Die Anziehungskraft auf jedes Element wird wie folgt aussehen: name[0] Erinnert es Sie an irgendetwas? Genau, Array! Es wird sich nichts ändern, wenn wir schreiben:
protected void constructHelloSentence(String[] name) {
 ...
}
Der Zugriff auf die Elemente wird ebenfalls die Form haben: name[1] Und noch etwas. Methodenargumente können endgültig sein :
public String constructHelloSentence(final String name) {
  ...
}
Dies bedeutet, dass die Namensreferenz an ein bestimmtes Objekt gebunden ist Stringund nicht überschrieben werden kann. Informationen zum Arbeiten mit Referenzvariablen und deren Interaktion mit reservierten Wörtern finalfinden Sie im Material „ Referenzdatentypen in Java “.

Aufrufende Methoden

Wir haben uns also mit der Erstellung von Methoden befasst. Lassen Sie uns nun über deren Verwendung sprechen. Wie rufe ich eine Methode in Java auf? Methoden in Java - 5Jede Methode in Java ist in einer Klasse. Um zu verstehen, wie das Aufrufen von Methoden in Java funktioniert, nehmen wir eine Klasse:
public class StringConstructor {
  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Da unsere Methode nicht statisch ist (dies ist ein separates Diskussionsthema, das den Rahmen des heutigen Artikels sprengt), müssen Sie zum Aufrufen zunächst ein Objekt erstellen und dann die Methode darauf aufrufen:
class Application{
  public static void main(String[] args) {
     StringConstructor stringConstructor = new StringConstructor();
     stringConstructor.constructHelloSentence("Den");
  }
}
In den Argumenten unserer Methode haben wir die Zeichenfolge (Name) übergeben, die wir in der resultierenden Zeichenfolge auf dem Bildschirm sehen möchten:

Hello world! My name is Den
Denken Sie auch daran, dass Methoden beliebig oft wiederverwendet werden können – es gibt keine Einschränkungen.

Das

Sie können das Schlüsselwort häufig in Code sehen this, beispielsweise in Settern:
public void setValue(Long value) {
   this.value = value;
}
Und was bedeutet das? thisIn Java ist dies ein Verweis auf das aktuelle Objekt dieser Klasse. Wenn wir beispielsweise ein Objekt erstellt haben:
StringConstructor stringConstructor = new StringConstructor();
dann gibt es thisinnerhalb des Objekts einen Link zu demselben Objekt. wird sowohl zum Verweisen auf eine Objektvariable (wie im Setter oben) als auch zum Aufrufen einer Methode verwendet. Wir können unsere Klasse ein wenig umschreiben: stringConstructorthis
public class StringConstructor {

  public String constructHelloSentence(String name) {
     String resultSentence = this.getSentence()  + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  private String getSentence() {
     return "Hello world! My name is ";
  }
}
Wir thisrufen die Methode dieses Objekts auf, um die erforderliche Zeichenfolge zu erhalten. Dennoch wird dies in der Regel fast nicht für Methoden verwendet, da auch ohne es eine Referenz auf eine Methode eines bestimmten Objekts vorliegt; hauptsächlich wird es für eine Objektvariable verwendet.

Methodenüberladung

Nehmen wir an, wir brauchten eine Methode, die im Wesentlichen die gleiche Logik ausführt, aber in einem Hello world! Stattdessen worldwollen wir unser eigenes Wort (String) einfügen. Aber wir haben bereits eine Methode constructHelloSentence. Müssen wir uns also einen neuen Namen für eine Methode ausdenken, die im Wesentlichen die gleiche Funktionalität ausführt? Egal wie es ist: In diesem Moment kommt uns die Methodenüberladung zu Hilfe. Methoden in Java - 7Unter Methodenüberladung versteht man die mehrmalige Verwendung desselben Methodennamens bei der Deklaration in einer Klasse. Aus Sicht der Sprachsyntax kann es in einem lokalen Raum nicht zwei identische Namen geben. Es ist aber auch möglich, Methoden mit gleichen Namen, aber unterschiedlichen Argumenten zu deklarieren. Mit anderen Worten: Eine Klasse enthält Überladungen, wenn es zwei oder mehr Methoden mit demselben Namen, aber unterschiedlichen Eingabedaten gibt:
public class Constructor {

  public String constructHelloSentence(String name) {
     String resultSentence = "Hello world! My name is " + name;
     System.out.println(resultSentence);
     return resultSentence;
  }

  protected String constructHelloSentence(String firstName, String secondName) {
     String resultSentence = "Hello " + firstName + "! My name is " + secondName;
     System.out.println(resultSentence);
     return resultSentence;
  }
}
Hier sehen wir, dass Methoden nicht denselben Zugriffsmodifikator (sowie den gleichen Rückgabetyp) enthalten müssen. Wird eine überladene Methode aufgerufen, ermittelt der Compiler aus mehreren deklarierten Methoden anhand der beim Aufruf angegebenen Parameter automatisch die benötigte.
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION