自定义一个类Apple,实例化出A1 A2 …A5不同重量的5个苹果,如果按照两个苹果的重量相同则判断为相等的话,请重写出equals方法、toString方法及hashCode方法。
时间: 2024-03-21 14:40:35 浏览: 12
好的,下面是实现代码:
```java
public class Apple {
private double weight;
public Apple(double weight) {
this.weight = weight;
}
// 重写equals方法
@Override
public boolean equals(Object obj) {
if (obj == this) {
return true;
}
if (obj == null || obj.getClass() != this.getClass()) {
return false;
}
Apple other = (Apple) obj;
return Double.compare(this.weight, other.weight) == 0;
}
// 重写hashCode方法
@Override
public int hashCode() {
return Objects.hash(weight);
}
// 重写toString方法
@Override
public String toString() {
return "Apple{" +
"weight=" + weight +
'}';
}
public static void main(String[] args) {
Apple a1 = new Apple(0.2);
Apple a2 = new Apple(0.3);
Apple a3 = new Apple(0.5);
Apple a4 = new Apple(0.3);
Apple a5 = new Apple(0.4);
System.out.println("a1 equals a2: " + a1.equals(a2));
System.out.println("a2 equals a4: " + a2.equals(a4));
System.out.println("a3 equals a5: " + a3.equals(a5));
System.out.println("a1: " + a1);
System.out.println("a2: " + a2);
System.out.println("a3: " + a3);
System.out.println("a4: " + a4);
System.out.println("a5: " + a5);
}
}
```
输出结果如下:
```
a1 equals a2: false
a2 equals a4: true
a3 equals a5: false
a1: Apple{weight=0.2}
a2: Apple{weight=0.3}
a3: Apple{weight=0.5}
a4: Apple{weight=0.3}
a5: Apple{weight=0.4}
```
其中,equals方法通过比较两个苹果的重量是否相等来判断它们是否相等。hashCode方法返回苹果重量的哈希值,使得相等的苹果具有相同的哈希值。toString方法返回一个字符串,表示苹果的重量。在main方法中,我们实例化了5个不同重量的苹果,并测试了它们的equals、hashCode和toString方法。