gpt4 book ai didi

java - 公共(public) boolean 等于(对象其他)

转载 作者:搜寻专家 更新时间:2023-10-31 20:30:09 25 4
gpt4 key购买 nike

这是一个分数程序。我有私有(private)整数 num 和 den、Fraction 和 FractionInterface——标准的家庭作业问题。我几乎完成了所有工作,现在在 equals 方法上停留了几个小时。由于 other 是一个 Object,我不能将它等同于 Fraction。这是我拥有的:

public boolean equals(Object other){        
if (other == this){
return true;
} else {
return false;
}
}

这编译但它给出了错误的结果:

1/2 eq 1/2 = true
1/2 eq 1/2 = true
1/2 eq 1/2 = false
1/2 eq 1/2 = false

如果我尝试其他 == Fraction,它不会编译。感谢您的帮助!

最佳答案

您可以测试 other 是否是 FractionInterface 的实例并使用强制转换:

public boolean equals(Object other){        
if (other == this){
return true;
} else if (other instanceof FractionInterface) {
FractionInterface fOther = (FractionInterface) other;
// compare numerator and denominator...
} else {
return false;
}
}

请注意,如果 other == nullinstanceof 将为 false,因此不需要单独的 null 检查。

关于java - 公共(public) boolean 等于(对象其他),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9506303/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com