Java:添加两个对象

2022-09-04 07:02:20

我正在格林福特做一个项目,我做了一个虚构的数字类。在我的项目中,我发现需要将两个虚构对象相加(或减去,或者其他什么),有没有办法像这样添加两个对象?所以这就是它在一个完美世界中的样子:

    Imaginary i1 = new Imaginary(1.7,3.14);
    Imaginary i2 = new Imaginary(5.3,9.1);
    //the class Imaginary has parameters (double real, double imaginary)
    Imaginary i3 = i1+i2;

这可能吗?


答案 1

你所描述的被称为“运算符重载”,它不能在Java中完成(至少由你和我这样的程序员完成;开发人员可以自由地做到这一点,并且使用String类这样做)。相反,您可以创建一个方法并调用该方法:add

Imaginary i3 = i1.add(i2);

答案 2

Java 没有运算符重载

例如,如果您可以编写而不是.,则会更受欢迎。BigDecimala + ba.add(b)

方式1

Imaginary i3 = i1.add(i2);

方法:

public static Imaginary add(Imaginary i2)
{
    return new Imaginary(real + i2.real, imaginary + i2.imaginary);
}

方式2

Imaginary i3 = add(i1, i2)

方法:

public static Imaginary add(Imaginary i1, Imaginary i2)
{
    return new Imaginary(i1.real + i2.real, i1.imaginary + i2.imaginary);
}

运算符重载肯定会使设计比没有它更复杂,并且可能导致更复杂的编译器或减慢JVM的速度。