Java 輸出引數
Sheeraz Gul
2022年4月27日
Java 不支援像 C# 中的 out
和 ref
之類的關鍵字在方法中通過引用傳遞,因為值僅在 Java 中傳遞引數。該值甚至通過引用。
為了在 Java 中實現類似 C# 的 out
和 ref
以通過引用傳遞,我們必須將引數包裝在物件中並將該物件引用作為引數傳遞。本教程演示瞭如何在 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
Author: Sheeraz Gul
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