如何在 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
我正在用 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