迹忆客 专注技术分享

当前位置:主页 > 学无止境 > 编程语言 > Java >

Java 输出参数

作者:迹忆客 最近更新:2023/10/19 浏览次数:

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

转载请发邮件至 1244347461@qq.com 进行申请,经作者同意之后,转载请以链接形式注明出处

本文地址:

相关文章

在 Java 中扩展 Comparable

发布时间:2023/10/19 浏览次数:96 分类:Java

本教程展示了如何在 Java 中清除 StringBuilder 本指南将了解在 Java 中扩展 Comparable 接口。它写成 Comparable。它是一个由 Java 中的许多类实现的接口。

Java 中的 Predicate 是什么

发布时间:2023/10/19 浏览次数:106 分类:Java

本文介绍 Java 8 中的 Predicate 接口。本教程通过 Java 示例介绍 Predicate 接口。Predicate 是 Java 中的一个接口,用作 lambda 表达式或方法引用的目标赋值。

Java Swing 应用程序的最佳 GUI 构建器

发布时间:2023/10/19 浏览次数:164 分类:Java

我们将对可用于 Java Swing 应用程序开发的最流行的图形用户界面(GUI) 构建器进行分类。一个优秀的图形用户界面集成了诸如自定义控制、设计代码的拆分查看和易于使用的界面等功能,并且应该

Java 中的动态方法调度

发布时间:2023/10/18 浏览次数:199 分类:Java

本教程展示了 Java 中动态方法分派的定义、优势和使用。本教程介绍了 Java 中的动态方法分派。它讲述了它的技术定义和重要性,并用代码示例进行了解释。

Java 中的 abs() 方法

发布时间:2023/10/18 浏览次数:184 分类:Java

本教程通过 Java 中的不同代码示例介绍如何使用 abs() 方法。我们将学习 Java 中的 abs() 方法来查找指定数字的绝对值。我们将通过编写和练习各种代码示例来学习。

在 Java 中使用 System.exit() 方法

发布时间:2023/10/18 浏览次数:158 分类:Java

本文介绍 Java 中 System.exit() 方法的作用。本教程介绍了 Java 中的 System.exit() 方法的作用。System 是 Java 中的一个类,它提供了几种实用方法来处理与系统相关的任务,例如 exit() 方法用于停止当前

在 Java 中编写本机方法

发布时间:2023/10/18 浏览次数:57 分类:Java

本文演示了本机方法是什么以及如何在 Java 程序中编写本机方法。本文将引导你完成学习如何在 Java 程序中编写本机方法所需的各个步骤。

Java 中静态方法和非静态方法的区别

发布时间:2023/10/18 浏览次数:134 分类:Java

本教程对 Java 中的静态和非静态方法进行了分类,同时区分了它们的核心属性和范围。之后,我们将对这两种方法运行三个示例。

Java 中的私有方法

发布时间:2023/10/18 浏览次数:51 分类:Java

本教程演示了 Java 中私有方法的使用。Java 中的私有方法有一个私有访问修饰符,这意味着它们对定义类的访问受到限制,并且在继承的子类中不可访问;这就是为什么他们没有资格覆盖。

扫一扫阅读全部技术教程

社交账号
  • https://www.github.com/onmpw
  • qq:1244347461

最新推荐

教程更新

热门标签

扫码一下
查看教程更方便