Java での参照による呼び出しの定義では、パラメーターを参照として使用することが推測されます。引数の参照を、これを使用する関数にパラメータとして送信します。両方の引数を実パラメータと仮パラメータとして出荷します。これらは正確な場所を指します。つまり、特定の関数に変更が加えられると、その変更はプロセスの呼び出し時に実際のパラメータに反映されます。明示的に指定したり呼び出したりする必要はありません。変数のアドレスが送信されます。これは、これらの実際の変数が関数を呼び出していることを意味します。
広告 このカテゴリーの人気コース JAVA マスタリー - スペシャライゼーション | 78 コース シリーズ | 15 回の模擬テスト無料ソフトウェア開発コースを始めましょう
Web 開発、プログラミング言語、ソフトウェア テスト、その他
以下は、Java で参照による呼び出しを実装できる方法です。
void function_name(datatype1, datatype2); //Function declaration int main() { Datatype declaration; Function Call(datatype1, datatype2); } Function_name () { // Function definition }
説明: 上記の構文は、最初に関数を宣言しています。 C とは異なり、Java には、特定のアドレスで変数を取得するための特別な規定はありません。 Java は参照変数も渡す値による呼び出しを使用します。
参照による呼び出しの基本的な機能は、変数のアドレスを参照することです。したがって、変数のアドレスに変更がある場合、それを使用する関数が呼び出される場所に反映されます。以下のコードは、この機能をより深く理解するのに役立ちます。
コード:
Void inc(int ); Public static voidmain(string args[]) { int a = 10; System.out.println("Before function was called the Value of a = ", a); void inc(); System.out.println("After function is called Value of a = ", a); } Void inc(intx) { int x = x + 1; }
ここでは変数を使用して関数 inc を宣言しています。その後、変数を宣言しました。変数は定義された値を受け取ります。ただし、先に進むと、「inc」関数と呼ばれます。関数「inc」が呼び出され、呼び出されるたびに変数「a」の場所を指します。参照変数のコピーが作成され、値が存在すると、それらの値が使用されるメソッドに渡されます。この参照は変数「a」のアドレスを指します。この値をインクリメントし、関数が呼び出されるときにこのアドレスから値を取得します。この場合、inc 関数は値を 1 ずつ増やしているため、11 になります。値はメインに出力されます。参照変数のコピーを作成することもできます。新しいオブジェクトまたは変数が参照用に作成された場合、プライマリ アドレスは同じままであるため影響を受けません。
これについてさらにいくつかの例を確認すると、理解を深めることができます。
参照による呼び出しを使用した Java での番号の交換。以下のコードは、参照による呼び出しを使用して 2 つの番号を交換できる例です。
コード:
public class EduByReference { public static void main(String[] args) { int num1 = 55; int num2 = 85; System.out.println("The values before swapping are: number1 = " + num1 + " and number2 = " + num2); // Calling the function to swap swapByReference(num1, num2); System.out.println("\nThe numbers before and after swapping will be same in main:"); System.out.println("Once the swapping is done, the values will be back to original: num1 = " + num1 + " and num2 is " + num2); } public static void swapByReference(int num1, int num2) { System.out.println("Before swapping in function locally, num1 = " + num1 + " num2 = " + num2); // Swapping number1 and number2 int temp = num1; num1 = num2; num2 = temp; System.out.println("After swapping in function locally, num1 = " + num1 + " num2 = " + num2); } }
出力:
説明: 上記のプログラムは 2 つの数値を交換しています。値がそれぞれ 55 と 85 である 2 つの整数変数 a と b を取得しました。次に、関数 swapByReference(a, b) を呼び出します。この関数では、メインから送信されたこれらの変数を取得します。この関数は a と b の値を取得し、これら 2 つの変数の値を交換します。交換には、別の変数「c」を使用しました。これが完了すると、この関数は 85 と 55 の値を返します。主要な値は以前と同じままであることがわかります。これは参照渡しの使用です。関数を呼び出すと元の値がそのまま保存され、関数ごとに値が変更されます。元の値はそのまま残ります。上記の関数の出力は以下のようになります。
関数による作業が完了すると、変数のアドレスにより元の値が保持されることがわかります。変数の位置は変更されませんでした。
Java で参照による呼び出しを使用して 2 つの数値を加算する:
コード:
public class EduAddByReference{ int d=50; public void add(int d){ d=d+100;//These changes will happen locally, that means it will be reflected only in this function System.out.println("The value in function after performing addition is " + d); } public static void main(String args[]){ EduAddByReference edad=new EduAddByReference(); System.out.println("before change "+edad.d); edad.add(500); System.out.println("after change "+edad.d); } }
出力:
説明: 上記のプログラムは、Java の call-by 参照の別の例です。ここではメインで、関数 EduAddByReference() を呼び出しています。この関数はメインから数値を取得して加算します。このエディションは関数で印刷されています。変数のこの値は、この関数に対してローカルのままです。関数の制御がメインに移ると、元の値を持つ変数が再度出力されます。以下の出力を確認してください。これは、このプログラムの動作を改善するのに役立ちます。
Java の参照による呼び出しは、関数を呼び出し、オペランドまたは変数のアドレスを使用してデータをチェックします。値はローカルで変更され、関数のスコープまでのみ永続的になります。参照による呼び出しは、元の値をそのまま保持し、必要に応じていつでも変更するのに役立ちます。これは、変数にローカルで何らかの操作を実行させたい場合にいつでも使用できます。変数の独自性が保持されます。
以上がJava 参照呼び出しの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。