Heim >Java >javaLernprogramm >Wie werden in Java Parameter übergeben?

Wie werden in Java Parameter übergeben?

王林
王林nach vorne
2023-09-17 15:25:02973Durchsuche

Wie werden in Java Parameter übergeben?

Die von Programmieranfängern am häufigsten gestellte Frage ist, wie Parameter in Java übergeben werden. In der Regel verwenden Programmiersprachen die Wertübergabe und die Referenzübergabe, um Parameter an Methoden zu übergeben. Allerdings unterstützt Java diese beiden Methoden nicht und verwendet stattdessen die Wertübergabe, um Grund- und Referenztypwerte zu übergeben. In diesem Artikel erfahren Sie, wie Sie Parameter anhand eines Beispielprogramms übergeben.

Übergeben Sie Parameter an Methoden in Java

Beginnen wir die Diskussion damit, den Speichermechanismus von Java zu verstehen. Die Namen von Referenzvariablen, Methoden und Klassen werden auf dem Stapel und ihre Werte auf dem Heap gespeichert. Allerdings werden Grundelemente und ihre Werte direkt im Stapelspeicher gespeichert.

Wie bereits erwähnt, unterstützt Java nur die Wertübergabe von Basistypen und Referenztypen, was bedeutet, dass beim Aufruf einer Methode eine Kopie jedes Parameterwerts an die Methode übergeben wird

Bei Basistypen wie int, double und Boolean ist der Wert des Parameters derselbe wie der ursprüngliche Wert der Variablen. Wenn wir beispielsweise eine Variable „x“ mit dem Wert 10 haben und „x“ als Argument an eine Methode übergeben, erhält die Methode eine Kopie des ursprünglichen Werts 10 als Argument.

Da Referenzvariablen auf dem Stapel gespeichert werden, ist der Wert des Parameters für Referenztypen wie Arrays, Objekte und Zeichenfolgen die Referenz oder Adresse der angegebenen Variablen. Wenn wir beispielsweise ein Array „arr“ mit den Elementen {1, 2, 3} haben und „arr“ als Parameter an eine Methode übergeben, dann erhält die Methode eine Referenz oder eine Kopie der Adresse von „arr“ als sein Parameter.

Lassen Sie uns einige Begriffe im Zusammenhang mit der Parameterübergabe in Java besprechen

Benutzerdefinierte Methoden

Methoden sind Codeblöcke, die mehrfach wiederverwendet werden können, um einen einzelnen Vorgang auszuführen. Es spart uns Zeit und reduziert auch die Codegröße.

Grammatik

accessSpecifier nonAccessModifier return_Type method_Name(Parameters) {
   // Body of the method
}

Hier,

accessSpecifier – wird verwendet, um die Zugänglichkeit einer Methode festzulegen. Es kann öffentlich, geschützt, standardmäßig und privat sein.

nonAccessModifier – Zeigt zusätzliche Funktionalität oder Verhalten einer Methode wie statisch und final an.

return_Type – Der Datentyp, den die Methode zurückgibt. Wir verwenden das Schlüsselwort void, wenn eine Methode nichts zurückgibt.

Parameter vs. Parameter

Parameter – sind benannte Variablen, die während der Methodendefinition übergeben und als Platzhalter für Parameter verwendet werden. Sie importieren die Parameter tatsächlich in die angegebene Methode. Sie ermöglichen die Verallgemeinerung von Methoden. Generalisierung bedeutet hier, dass wir eine einzelne Methode bei Bedarf für verschiedene Daten wiederverwenden können.

Parameter – sind die tatsächlichen Werte, die beim Aufruf der Methode übergeben werden. Sie müssen mit den in der Methodendefinition übergebenen Parametertypen übereinstimmen.

Wertübergabemethode

Durch die Übergabe von Parametern auf diese Weise wird eine Kopie des Parameterwerts an die angegebene Methode übergeben. Diese Methode kann die Kopie ändern, aber den ursprünglichen Wert des Parameters nicht beeinflussen.

Übergeben als Referenz

Bei dieser Art der Parameterübergabe wird die Referenz oder Adresse des Parameters an die angegebene Methode übergeben. Diese Methode kann den ursprünglichen Wert des Parameters durch Referenz ändern

Java-Programm zeigt Parameterübertragung an

Methode

  • Definieren Sie zwei benutzerdefinierte Methoden. Die Methode „changeVal()“ wird zum Ändern des Originaltyps und die Methode „changeAray()“ zum Ändern des Referenztyps verwendet.

  • Deklarieren und initialisieren Sie in der main()-Methode einen ganzzahligen Typwert und einen Referenztypwert.

  • Rufen Sie nun diese benutzerdefinierten Methoden auf, um die Aktion auszuführen und zu beenden

Beispiel

import java.util.*;
public class ParameterPassing {
   public static void changeVal(int n) {
      n = n * 2; // modifying value
      System.out.println("Inside method: n = " + n);
   }
   public static void changeAray(int[] a) {
      a[0] = a[0] * 2; // modifying value
      System.out.println("Inside method: a = " + Arrays.toString(a));
   }
   public static void main(String[] args) {
      // for the Primitive type
      int val1 = 10;
      System.out.println("Before calling changeVal method: val1 = " + val1);
      changeVal(val1); // calling the method
      System.out.println("After calling changeVal method: val1 = " + val1);
      
      // for Reference type
      int[] aray = {1, 2, 3};
      System.out.println("Before calling changeAray method: arr = " + Arrays.toString(aray));
      changeAray(aray); // calling the method
      System.out.println("After calling changeAray method: arr = " + Arrays.toString(aray));
   }
}

Ausgabe

Before calling changeVal method: val1 = 10
Inside method: n = 20
After calling changeVal method: val1 = 10
Before calling changeAray method: arr = [1, 2, 3]
Inside method: a = [2, 2, 3]
After calling changeAray method: arr = [2, 2, 3]

Wie Sie in der Ausgabe sehen können, ändert sich der Wert des primitiven Typs „val1“ nach dem Aufruf der Methode „changeVal“ nicht. Für den Referenztyp „arr“ ändert sich sein Wert nach dem Aufruf der Methode „changeAray“.

Fazit

In diesem Artikel haben wir etwas über benutzerdefinierte Methoden gelernt und anhand eines Beispiels erläutert, wie Methodenparameter in Java übergeben werden. Die Übergabe eines Werts eines Referenztyps als Parameter ist nicht dasselbe wie die eines primitiven Typs. Java unterstützt nur die Übergabe von Verweisen auf nicht-primitive Typen, um deren Status, nicht jedoch ihre Identität zu ändern.

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

Stellungnahme:
Dieser Artikel ist reproduziert unter:tutorialspoint.com. Bei Verstößen wenden Sie sich bitte an admin@php.cn löschen