设计一个名为Fan的类表示一个风扇。这个类包括: 1.三个名为SlOW、MEDIUM和FAST,其值为1、2和3常量表示风扇的速度。 2.一个名为speed的int类型私有数据域,表示风扇的速度(默认值为SLOW)。 3.一个名为on的boolean类型私有数据域表示风扇是否打开(默认值为false)。 4.一个名为radius的double类型私有数据域表示风扇的半径(默认值为5)。 5.一个名为color的string类型数据域表示风扇的颜色(默认值为white)。 6.这四个成员变量(数据域)的访问器和修改器。 7.一个无参构造方法。 8.一个名为toString()的方法返回描述风扇的字符串。如果风扇是打开的,那么该方法在一个组合的字符串中返回风扇的速度、颜色和半径。如果风扇没有打开,该方法就会返回一个由"fan is off"和风扇颜色以及半径组合成的字符串。 9.重写equals方法,根据颜色和半径判断两个风扇是否相同。 要求:创建三个Fan对象: 1.将第一个对象设置为默认值; 2.将第二个对象设置为中等速度、半径为8、颜色为blue、状态为打开。通过调用它们的toString方法显示这些对象。 3.将第三个对象设置为最大速度、半径为8、颜色为blue、状态为关闭。通过调用它们的toString方法显示这些对象。 4.通过调用它们的toString方法显示这些对象。 5.通过调用它们的equals方法判断两个风扇对象是否一样。
时间: 2024-02-03 19:13:55 浏览: 397
下面是代码实现:
```java
public class Fan {
public static final int SLOW = 1;
public static final int MEDIUM = 2;
public static final int FAST = 3;
private int speed;
private boolean on;
private double radius;
private String color;
public Fan() {
this.speed = SLOW;
this.on = false;
this.radius = 5.0;
this.color = "white";
}
public int getSpeed() {
return speed;
}
public void setSpeed(int speed) {
this.speed = speed;
}
public boolean isOn() {
return on;
}
public void setOn(boolean on) {
this.on = on;
}
public double getRadius() {
return radius;
}
public void setRadius(double radius) {
this.radius = radius;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public String toString() {
if (on) {
return "Fan speed: " + speed + ", color: " + color + ", radius: " + radius;
} else {
return "Fan is off, color: " + color + ", radius: " + radius;
}
}
public boolean equals(Fan fan) {
return this.color.equals(fan.getColor()) && this.radius == fan.getRadius();
}
}
```
下面是测试代码:
```java
public class FanTest {
public static void main(String[] args) {
Fan fan1 = new Fan();
fan1.setColor("white");
fan1.setRadius(5.0);
System.out.println(fan1.toString());
Fan fan2 = new Fan();
fan2.setColor("blue");
fan2.setRadius(8.0);
fan2.setSpeed(Fan.MEDIUM);
fan2.setOn(true);
System.out.println(fan2.toString());
Fan fan3 = new Fan();
fan3.setColor("blue");
fan3.setRadius(8.0);
fan3.setSpeed(Fan.FAST);
fan3.setOn(false);
System.out.println(fan3.toString());
System.out.println("Fan1 equals Fan2? " + fan1.equals(fan2));
System.out.println("Fan2 equals Fan3? " + fan2.equals(fan3));
}
}
```
运行结果:
```
Fan is off, color: white, radius: 5.0
Fan speed: 2, color: blue, radius: 8.0
Fan is off, color: blue, radius: 8.0
Fan1 equals Fan2? false
Fan2 equals Fan3? true
```
阅读全文