我需要编写一个Temperature.equals()方法,将括号中的第一个温度与第二个温度进行比较,但我不知道正确的语法。
第1部分:
public Temperature(double degreesd, char typec)
{
degrees = degreesd;
type = typec;
}
public void set(double degreesd, char typec)
{
degrees = degreesd;
type = typec;
}
第2部分:
t1.set(100, 'C');
t2.set(212, 'F');
System.out.println(t1.equals(t2));
我需要完成的equals()方法:
public boolean equals(Temperature t2)
{
return ( Temperature.getC() == t2.getC() );
// getC() is a function that returns degrees in Celsius as a double.
}
我不知道将t1传递到“Temperature.getC()”所在的正确语法。任何帮助表示赞赏。
答案 0 :(得分:3)
public boolean equals(Temperature t2)
{
return (this.getC() == t2.getC());
// getC() is a function that returns degrees in Celsius as a double.
}
使用this
引用您呼叫equals
的对象。对于t1.equals(t2)
,this
将为t1
。
答案 1 :(得分:1)
使用getC()
方法更容易,那么您不必像我一样遇到麻烦:
public boolean equals(Temperature t1) {
return this.getC() == t1.getC();
}
至于euqals
方法(不使用getC()
):
public boolean equals(Temperature t1) {
if (this.typec == t1.typec) {
return (this.degrees == t1.degrees);
} else {
double fah = t1.typec == 'F' ? t1.degrees : t2.degrees;
double cel = t1.typec == 'C' ? t1.degrees : t2.degrees;
fah = (fah - 32) * 5 / 9;
return fah == cel;
}
}