Обновление target
(не ссылка), в частности скопируйте значения source
nominator
и denominator
в target.nominator
и target.denominator
соответственно. Например,
public static void copy(Fraction source, Fraction target)
{
// target = source; // Good try, but this just updates a local reference
target.nominator = source.nominator; // <-- copy the `nominator`
target.denominator = source.denominator; // <-- copy the `denominator`
}
Кроме того, добавьте setFraction
функцию к Fraction
, например,
public void setFraction(Fraction f) {
this.nominator = f.nominator;
this.denominator = f.denominator;
}
Кроме того, вы не должны изменять toString()
как это. Добавьте его также к Fraction
,
@Override
public String toString() {
return nominator + "/" + denominator;
}
И я бы также переопределил Object.equals(Object)
в Fraction
.
@Override
public boolean equals(Object o) {
if (this == o) {
return true;
}
if (o instanceof Fraction) {
Fraction that = (Fraction) o;
return nominator.equals(that.nominator) && denominator.equals(that.denominator);
}
return false;
}
Тогда вы можете написать
public static void copy(Fraction source, Fraction target)
{
target.setFraction(source);
}
И если вы следовали вместе с toString
, тогда
System.out.println("SOURCE: " + toString(SOURCE));
System.out.println("TARGET: " + toString(TARGET));
Может быть
System.out.println("SOURCE: " + SOURCE);
System.out.println("TARGET: " + TARGET);
System.out.println("TARGET.equals(SOURCE): " + TARGET.equals(SOURCE));