当前位置: 首页 > 知识库问答 >
问题:

比较方法

盛建德
2023-03-14

我正在做一个关于java类的介绍的作业,该作业要求使用方法将温度从摄氏转换为华氏,反之亦然。它需要使用三种比较方法,而我无法弄清楚该把什么放进去。以下是说明:

三种比较方法:

public boolean equals(Temperature other)-此方法将另一个温度作为参数,如果调用对象具有与other相同的温度,则返回true,否则返回false。注意,摄氏温度可以等于华氏温度,如上式所示。

public boolean lessThan(Temperature other)-如果调用对象的温度低于其他温度,则此方法将返回true,否则返回false。

public boolean greaterThan(TemperateOther)-如果调用对象的温度高于其他对象,则此方法将返回true,否则返回false。

这是我目前所拥有的全部,因为我还不确定该如何开始:

public boolean equals (Temperature other) 
{
    // code here
}
public boolean lessThan (Temperature other) 
{
    // code here
}
public boolean greaterThan (Temperature other) 
{
    // code here
}

我对java非常陌生,所以如果这是一个非常明显的答案,我表示歉意。请帮忙,谢谢!

共有1个答案

拓拔高畅
2023-03-14

我个人会做的(假设温度类可以是摄氏或华氏。)是做一个方法,把给定的刻度转换成预定义的刻度。例如,如果你有一个类是摄氏和一个类是华氏,它最容易把摄氏转换成华氏或反之亦然,所以你可以很容易地比较这两个。当然,有正确值的一个不需要转换。

完成此操作后,您可以使用转换后的值来比较两个温度。

它看起来是这样的:

public float toCelsius() {
    switch (scale) {
        case "celsius":
            return temperature;
        case "fahrenheit":
            return (temperature - 32) / 1.8;
    }
    return 0;
}

public boolean equals (Temperature other) {
    return toCelsius() == other.toCelsius();
}

注意:为了更干净,你可以添加一个比例尺的枚举,例如,我没有这样做,因为问这个问题的人是新来的,我假设他们不必这样做。只需记住,添加枚举将是执行开关事例和存储刻度的一种更干净的方法。

 类似资料:
  • 谁能解释一下为什么下面的代码不起作用: 但这一个有效: 换句话说,与创建普通类实例相比,接口实现何时是可互换的?当我使用compareTo()方法时会出现错误,该方法是Comparable接口的一部分,由所有包装类(如整数)实现。 所以我猜

  • 我有一个类字段,和。我需要使用对它们进行排序,但我得到了一个异常: java.lang.IllegalArgumentException:比较方法违反了它的一般约定! 我的< code>compareTo方法: 请帮我找出compareTo方法中的错误。谢了。

  • 我有一个客户对象类,它有一些变量,并且已经实现了一个关于其中一个变量的比较器。然而,我需要为不同的变量last_name实现另一个比较器。 因为我的Customer类中不能有2个compareTo()方法,所以我决定在这里专门创建一个Comparing类 但一旦触及Collections.sort(客户); 它不会激活下面的公共int比较(Customer Customer_1,Customerc

  • 我目前正在Java中对集合进行排序。我收到了错误消息“比较方法违反了它的一般契约”。我也理解这个错误消息,但我(主要)使用Long类型的构建比较方法。所以我不知道,在这种情况下,排序方法仍然违反了契约。这是我的代码: 这里是错误:

  • 互联网上的两种主要的分发方式:HLS和RTMP,什么时候用谁,完全决定于应用场景。 还有其他的分发方式,这些分发方式不属于互联网常见和通用的方式,不予以比较: UDP:譬如YY的实时应用,视频会议等等,或者RTSP之类。这类应用的特点就是实时性要求特别高,以毫秒计算。TCP家族协议根本就满足不了要求,所以HTTP/TCP都不靠谱。这类应用没有通用的方案,必须自己实现分发(服务端)和播放(客户端)。

  • 我有一个关于compareTo函数如何帮助比较器排序的问题,即o1。比较(o2)与o2。比较(o1) 如果两个字符串相等,则此方法返回0,否则返回正值或负值。如果第一个字符串在词典上大于第二个字符串,则结果为正,否则结果为负。 上面的陈述很简单,但是为什么o1.compare(o2)会给我一个升序,而o2.compare(o1)给了我一个降序? 如果我有整数值“5,10,3”,我得到3,5,10和