我正在做一个关于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非常陌生,所以如果这是一个非常明显的答案,我表示歉意。请帮忙,谢谢!
我个人会做的(假设温度类可以是摄氏或华氏。)是做一个方法,把给定的刻度转换成预定义的刻度。例如,如果你有一个类是摄氏和一个类是华氏,它最容易把摄氏转换成华氏或反之亦然,所以你可以很容易地比较这两个。当然,有正确值的一个不需要转换。
完成此操作后,您可以使用转换后的值来比较两个温度。
它看起来是这样的:
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和