Java 輸出引數

Sheeraz Gul 2023年10月12日
Java 輸出引數

Java 不支援像 C# 中的 outref 之類的關鍵字在方法中通過引用傳遞,因為值僅在 Java 中傳遞引數。該值甚至通過引用。

為了在 Java 中實現類似 C# 的 outref 以通過引用傳遞,我們必須將引數包裝在物件中並將該物件引用作為引數傳遞。本教程演示瞭如何在 Java 中實現與 C# 的 out 引數相同的輸出。

Java 中的 Out 引數

如上所述,Java 不支援 out 引數。我們可以通過將原語包裝到類或使用陣列來儲存多個返回值來實現此 C# 功能。我們可以通過引用傳遞來回撥該值。

看一個例子;首先,帶有 out 關鍵字的 C# 程式和 Java 程式通過簡單地按值傳遞來執行相同的操作。

using System;
class Out_Parameter {
  static void Divide(int x, int y, out int divide_result, out int divide_remainder) {
    divide_result = x / y;
    divide_remainder = x % y;
  }
  static void Main() {
    for (int x = 1; x < 5; x++)
      for (int y = 1; y < 5; y++) {
        int result, remainder;
        Divide(x, y, out result, out remainder);
        Console.WriteLine("{0} / {1} = {2}r{3}", x, y, result, remainder);
      }
  }
}

上面的 C# 程式使用 out 引數來計算除法和餘數。

見輸出:

1 / 1 = 1r0
1 / 2 = 0r1
1 / 3 = 0r1
1 / 4 = 0r1
2 / 1 = 2r0
2 / 2 = 1r0
2 / 3 = 0r2
2 / 4 = 0r2
3 / 1 = 3r0
3 / 2 = 1r1
3 / 3 = 1r0
3 / 4 = 0r3
4 / 1 = 4r0
4 / 2 = 2r0
4 / 3 = 1r1
4 / 4 = 1r0

現在讓我們嘗試通過按值傳遞引數來在 Java 中實現相同的 out 引數功能。

package delftstack;

public class Out_Parameter {
  static void divide(int x, int y, int divide_result, int divide_remainder) {
    divide_result = x / y;
    divide_remainder = x % y;
    System.out.println(x + "/" + y + " = " + divide_result + " r " + divide_remainder);
  }
  public static void main(String[] args) {
    for (int x = 1; x < 5; x++)
      for (int y = 1; y < 5; y++) {
        int result = 0, remainder = 0;
        divide(x, y, result, remainder);
      }
  }
}

上面的程式碼將給出與 C# out 相同的輸出。

1/1 = 1 r 0
1/2 = 0 r 1
1/3 = 0 r 1
1/4 = 0 r 1
2/1 = 2 r 0
2/2 = 1 r 0
2/3 = 0 r 2
2/4 = 0 r 2
3/1 = 3 r 0
3/2 = 1 r 1
3/3 = 1 r 0
3/4 = 0 r 3
4/1 = 4 r 0
4/2 = 2 r 0
4/3 = 1 r 1
4/4 = 1 r 0
作者: Sheeraz Gul
Sheeraz Gul avatar Sheeraz Gul avatar

Sheeraz is a Doctorate fellow in Computer Science at Northwestern Polytechnical University, Xian, China. He has 7 years of Software Development experience in AI, Web, Database, and Desktop technologies. He writes tutorials in Java, PHP, Python, GoLang, R, etc., to help beginners learn the field of Computer Science.

LinkedIn Facebook

相關文章 - Java Parameter