如何在 java 中创建类似 int.getRed() 的方法?

How do I make a method like int.getRed() in java?

我正在用 java(使用 a+bi={a,b})制作一个虚数图形计算器,并想为 + - * / 和 ^ 运算符制作新函数,因为它们不t 对 double[] 变量起作用。我知道如何制作普通方法,例如 File(),但我在执行 int.getRed() 之类的事情时遇到了麻烦。这是我的加法代码

private static double[] CPlusC(double[] a, double[] b) {
    double aN = a[1] + b[1];
    double bN = a[2] + b[2];
    double[] ansN = {aN,bN};
    return ansN;
}

我有正确的加法部分,我只是找不到任何东西可以使函数更“真实”,如 double[].CPlusC(double[]) 有人可以帮帮我吗?一旦我弄清楚了这一点,我就应该知道如何做其他的了。 非常感谢!

正如我在评论中提到的,您不能像在 Kotlin or C# 中那样创建扩展方法。

但是您首先不应使用 double[] 来处理复数。更好的方法是创建自己的 Complex class,其中包含计算所需的所有必要方法。

您的 class 可能如下所示:

public class Complex {
    private final double re;
    private final double im;

    public Complex(double re, double im) {
        this.re = re;
        this.im = im;
    }

    // getters and other methods

    public Complex add(Complex other) {
        double addedRe = re + other.re;
        double addedIm = im + other.im;
        return new Complex(addedRe, addedIm);
    }

    public String toString() {
        return String.format("%s %s %si", re, im < 0 ? "-" : "+", Math.abs(im));
    }
}

然后你可以这样计算:

Complex c1 = new Complex(0, 1);
Complex c2 = new Complex(2.5, 1.3);
Complex c3 = c1.add(c2);
System.out.println(c3) // 2.5 + 2.3i