我在Greenfoot中创建一个项目,并创建了一个假想的数字类。在我的项目中,我发现需要将两个虚构的对象加(或减,或其他方式),是否有办法像这样添加两个对象?因此,这就是在完美世界中的样子:
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;
那可能吗?
最佳答案
Java的没有运算符重载。
例如,如果可以编写BigDecimal
而不是a + b
,a.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变慢。