CodeGym /Java-Blog /Random-DE /Java-Methoden
John Squirrels
Level 41
San Francisco

Java-Methoden

Veröffentlicht in der Gruppe Random-DE
Variablen und Konstanten in Java speichern Werte, während Methoden eine Reihe von Operatoren enthalten, die bestimmte Aktionen ausführen. Das heißt, Methoden in Java bestimmen das Verhalten von Objekten und führen Aktionen für einige Variablen aus. Sie können Aktionen ausführen und ein bestimmtes Ergebnis erzielen.

Was sind Methoden in Java?

Methoden definieren das Verhalten von Objekten und sind eine Folge von Befehlen, mit denen Sie bestimmte Vorgänge im Programm ausführen können. In anderen Programmiersprachen werden Methoden häufig und zu Recht als „Funktionen“ bezeichnet. Tatsächlich ist eine Methode eine Funktion im mathematischen Sinne. Normalerweise wird der Eingabe der Methode etwas zugeführt (einige Variablen), diese Variablen werden durch eine Folge von Befehlen verarbeitet und dann erzeugt die Methode ein Ergebnis. Wahrscheinlich sind Sie bereits auf Methoden gestoßen, zumindest bei public static void main(String[] args) . Diese Methode startet normalerweise die Ausführung eines Java-Programms.

Wie deklariere ich Methoden in Java?

Alle Methoden in Java werden innerhalb von Klassen erstellt. Sie werden wie folgt deklariert:
accessSpecifier ReturnType name (parameter list) {
//method body
}
Zum Beispiel:
public int addTwoNumbers (int a, int b){

//method body
return}
Dabei ist public ein Zugriffsspezifizierer, int ein Variablentyp, den die Methode zurückgibt, addTwoNumbers der Name der Methode und a und b die Parameter der Methode. Schauen wir uns das etwas genauer an. Der Zugriffsspezifizierer wird verwendet, um den Zugriffstyp der Methode zu definieren. sie können wie folgt sein:
  • public : Der Zugriff auf die Methode ist von jeder Klasse aus möglich.

  • privat : Der Zugriff ist innerhalb der Klasse verfügbar, in der er definiert wurde.

  • protected : Der Zugriff ist nur innerhalb des Pakets oder anderer Unterklassen in einem anderen Paket verfügbar.

  • Standard : Der Zugriff ist über das Paket verfügbar, in dem er deklariert ist. In diesem Fall wird das Wort „default“ nicht geschrieben.

Rückgabetyp definiert den Typ, den diese Methode zurückgibt. Im obigen Beispiel ist int der Rückgabetyp. Wenn eine Methode nichts zurückgibt, ist der Rückgabetyp void:
public void printSomething (String myString) {}
Der Methodenname ist ein eindeutiger Name Ihrer Methode. Wir werden einige Java-Namensregeln etwas später in diesem Artikel erklären. In den oben genannten Methoden lauten die Namen addTwoNumbers und printSomething . Die Parameterliste ist die Liste der Argumente (Datentyp und Variablenname), die die Methode akzeptiert. Im ersten Beispiel oben sind „int a, int b“ Parameter, im zweiten ist String myString ein Argument. Sie können dieses Feld auch leer lassen, wenn Sie in der Methode keine Parameter verwenden möchten.

Beispiel für Methodenparameter

public void printSomething (String myParameter1, int myParameter2) {}
Hier sind zwei Variablen, myParameter1 und myParameter2 . Sie sind Methodenparameter. ist der in geschweifte Klammern eingeschlossene Satz von Anweisungen, die die Methode ausführen wird. Wenn der Rückgabetyp der Methode nicht void ist, muss das Schlüsselwort return im Methodenkörper vorhanden sein. Auf „return“ folgt das Argument, das diese Methode zurückgibt. Um eine Methode zu erstellen, müssen Sie also ihren Namen zusammen mit Klammern angeben, und in Klammern, falls erforderlich, die Variablen, mit denen die Methode arbeiten soll. Vor dem Methodennamen steht ein Zugriffsbezeichner und ein Typ der Variablen, die die Methode zurückgibt, oder void, wenn die Methode nichts zurückgibt. In geschweiften Klammern schreiben wir die eigentliche Methode, eine Folge von Anweisungen, die am häufigsten mit den Argumenten der Methode arbeitet. Hier ist ein Beispiel für eine Methode, die die größte Zahl in einem Array findet und zurückgibt.
public int findBiggest(int[] numbers) {
   int max;
   max = numbers[0];
   for (int i = 1; i < numbers.length; i++) {
       if (max < numbers[i]) {
           max = numbers[i];
       }
   }
   return max;
}

Wie benenne ich eine Methode?

Es gibt keine strengen Regeln für die Benennung von Methoden, aber es gibt Richtlinien, die Sie befolgen sollten, wenn Sie planen, professionell in Java zu entwickeln. Methodennamen sind sehr oft Verben, die in gemischter Schreibweise geschrieben werden und mit einem Kleinbuchstaben beginnen, aber für jedes nachfolgende Wort einen Großbuchstaben verwenden (camelCase). Hier sind einige Beispiele:
int addTwoNumbers (int a, int b)
void run()

So rufen Sie eine Methode auf

Um eine Methode aufzurufen, genügt es, ihren Namen zu schreiben und die entsprechenden Variablen zu setzen, sofern diese bei der Deklaration vorhanden waren. Rufen wir die Methode findBiggest in der Hauptmethode auf :
public static void main(String[] args) {
  int[] array = new int[] {5, 7, -2, 6, 7, 1};
  int max = findBiggest(array);
   System.out.println("the biggest number in array is: " + max);
  }
Die Ausgabe dieses Programms ist:
Die größte Zahl im Array ist: 7

Verschiedene Arten von Methoden in Java

In Java besteht alles aus Objekten und das Verhalten von Objekten wird durch Methoden definiert. Konventionell können wir sagen, dass Java über vordefinierte und benutzerdefinierte Methoden verfügt. Vordefinierte Methoden sind Methoden, die in Klassen enthalten sind, die Teil der Java-Sprache selbst sind.

Vordefinierte Methoden

Vordefinierte oder Standardbibliotheksmethoden sind in Java integriert. Natürlich kann jeder Programmierer sie für seine Programme nutzen oder auch lokal modifizieren. Die Java-Klassenbibliothek befindet sich in einer Java-Archivdatei (z. B. *jar) mit einer Java Virtual Machine (JVM) und einer Java-Laufzeitumgebung. Dies können beispielsweise Methoden der Math- Klasse wie min() , max() oder abs() sein . Oder String-Manipulationsmethoden wie concat() . Lassen Sie uns eine Klasse mit einer Hauptmethode erstellen und einige Standardbibliotheksmethoden aufrufen.
import static java.lang.Math.max;

public class Test {

    public static void main(String[] args) {
       int a = 5;
       int b = 7;
       int max = max(a,b);
       System.out.println(max);
       String str1 = "I am ";
       String str2 = "here ";
       String str3 = str1.concat(str2);
       System.out.println(str3);


   }

}
Beachten Sie, dass die Methoden der Math- Klasse zu Beginn des Programms importiert werden müssen, um sie nutzen zu können. Wenn dies nicht der Fall ist, können Sie den Klassennamen durch einen Punkt getrennt vor den Methodennamen schreiben:
int max = Math.max(a,b);

Benutzerdefinierte Methoden

Diese Methoden werden von Programmierern für die Anforderungen ihrer Projekte erstellt. Tatsächlich haben wir oben bereits die benutzerdefinierte Methode findBiggest() erstellt. Zur Konsolidierung erstellen wir eine weitere Methode, die nichts zurückgibt und keine Parameter hat, aber auf den eingegebenen Namen reagiert und „Hallo“ sagt (also an die Konsole ausgibt).
import java.util.Scanner;

public class Test {

   public void repeater() {
       Scanner scanner = new Scanner(System.in);
       System.out.println("WHat should I repeat after you?...");
       String s =  scanner.nextLine();
       System.out.println(s);
   }
}

Statische Methoden in Java erstellen

Im Allgemeinen sind Methoden in Java Methoden von Objekten. Um eine Methode aufzurufen, müssen Sie eine Instanz der Klasse erstellen, in der diese Methode definiert ist. Es gibt jedoch auch statische Methoden. Sie unterscheiden sich von regulären darin, dass sie an eine Klasse und nicht an ein Objekt gebunden sind. Eine wichtige Eigenschaft einer statischen Methode ist, dass sie nur auf statische Variablen/Methoden zugreifen kann. Sie werden mit dem Schlüsselwort static definiert . Daher sind in der Math- Klasse alle Methoden zum Arbeiten mit Variablen statisch. Wir können etwas Ähnliches wie die Math- Klasse erstellen und darin mehrere statische Methoden sammeln, die verwendet werden können, ohne eine Instanz der enthaltenden Klasse zu erstellen. Nennen wir es Zahlen .
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;


public class Numbers {


   public static int findMax(int left, int right) {
       return (left < right) ? right : left;

   }


   public static boolean isNegative(int number) {
       return number < 0;
   }

   public static long power(long number, int deg) {

       if (deg == 0) {
           number = 1;
           return number;
       } else {
           number = power(number, deg - 1) * number;
           return number;
       }
   }

   public static long abs(long number) {
       return number > 0 ? number : -number;
     }


    public static void main(String[] args) {

       int a = 5;
       int b = 7;
       long c = -7;
       long abs = abs(c);
       System.out.println(abs);
       System.out.println(findMax(a,b));

   }

}
Die Ausgabe des Programms ist hier:
7 7
Zuerst wird eine Methode aufgerufen, die den Absolutwert der Zahl ermittelt, und dann eine Methode, die nach der größeren der beiden Zahlen sucht. Sie müssen keine Instanz der Numbers- Klasse erstellen, um diese Methoden aufzurufen, da beide Methoden als statisch definiert sind.

Anwenden von Instanzmethoden in Java-Code

Instanzmethoden oder reguläre Methoden können für die Instanz der Klasse aufgerufen werden, in der die Methode definiert ist.
public class Cat implements Voice{
   String name;
   String breed;
   int year;


   public void talk() {
       System.out.println("meow meow");
   }
}
Um die talk() -Methode aufzurufen , müssen Sie eine Instanz der Cat- Klasse erstellen:
public class Demo {
   public static void main(String[] args) {
       Cat cat = new Cat ();
       cat.talk();

   }
}
Diese Programmausgabe ist hier:
Miau Miau

Abstrakte Methoden in Java

Abstrakte Methoden in Java sind Methoden ohne Implementierung. Das heißt, sie enthalten keinen Code, wenn er deklariert wird. Sie können nur in abstrakten Klassen deklariert und in ihren nicht abstrakten Nachkommen implementiert werden. Erstellen wir eine abstrakte Klasse mit einer abstrakten Methode myMethodAdd() .
abstract class DemoAbs {
   abstract void myMethodAdd();
}
Jetzt erstellen wir eine untergeordnete Klasse dieser abstrakten Klasse, DemoAbs . Hier sollten wir unbedingt die Methode myMethodAdd() implementieren .
public class myClass extends DemoAbs {

   void myMethodAdd() {
       System.out.println("hello");
   }

   public static void main(String[] args) {
       DemoAbs demoAbs = new myClass();
       demoAbs.myMethodAdd();
   }
}

Speicherzuweisung für Methodenaufrufe

Dies ist ein ziemlich komplexes Thema, das einer sorgfältigeren Analyse bedarf. Für eine oberflächliche Einarbeitung in das Thema werden wir hier nur das Grundlegende erwähnen. Der JVM-Speicher besteht aus Heap- und Stack-Bereichen. Der Heap ist ein Speicherbereich, der Java-Objekte speichert. Der Stapelspeicher ist ein temporärer Speicherbereich, der primitive Variablen und Verweise auf Methodenobjekte speichert. Der Stapelspeicher enthält kurzlebige Werte, die von der Methode abhängen. Dieser Speichertyp basiert auf dem Last In First Out (LIFO)-Prinzip. Der Stapelspeicher erstellt einen neuen Block, wenn wir eine Methode aufrufen. Es enthält lokale Grundwerte. Wenn wir eine Methode beenden, wird der im Stapelspeicher erstellte Block frei.

Abschluss

In diesem Artikel haben wir uns mit den Grundlagen zum Erstellen von Methoden in der Java-Sprache vertraut gemacht und erfahren, welche Methoden es in Java gibt und wie man mit ihnen arbeitet. Wir haben gelernt, dass Methoden das Verhalten von Klassen bestimmen. Ohne Methoden wäre es unmöglich, dass Objekte miteinander interagieren. Um das Gelernte zu vertiefen, empfehlen wir Ihnen, sich eine Videolektion aus unserem Java-Kurs anzusehen
Kommentare
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION