设计一个名为Fan的类来代表风扇。这个类包括三个常量SLOW,MEDIUM和FAST,其值分别为1,2,3,表示风扇的速度

简介: 设计一个名为Fan的类来代表风扇。这个类包括三个常量SLOW,MEDIUM和FAST,其值分别为1,2,3,表示风扇的速度

题目描述:

设计一个名为Fan的类来代表风扇。这个类包括:

1 三个常量SLOW,MEDIUM和FAST,其值分别为1,2,3,表示风扇的速度;

2 int类型的数据域speed表示风扇的速度;默认值为SLOW

3 boolean型的数据域on表示风扇是否打开;默认值为false

4 double型的数据域radius表示风扇的半径;默认值为5

5 string型的数据域color表示风扇的颜色;默认值为blue

6 无参构造方法创建默认风扇;

7 全部四个数据域的访问器和修改器;

9 toString()方法返回描述风扇的字符串。如果风扇打开,该方法用一个组合的字符串返回风扇的速度,颜色和半径;否则,用一个组合的字符串和“fan is off”一起返回风扇的颜色和半径。

画出该类的UML图并实现它。编写一个测试程序,创建两个Fan对象,将第一个对象设置为最大速度,半径为10,颜色为yellow,打开状态;第二个对象为中等速度,半径为5,颜色blue,关闭状态。通过调用toString方法显示该对象。

代码:

/**
 *作者:魏宝航
 *2020年11月27日,下午10:41
 */
package 测试;
import java.util.*;
public class Test{
  public static void main(String[] args) {
    Fan fan1=new Fan();
    Fan fan2=new Fan();
    fan1.setSpeed(Fan.FAST);
    fan1.setRadius(10);
    fan1.setColor("yellow");
    fan1.setOn(true);
    fan2.setSpeed(Fan.MEDIUM);
    fan2.setRadius(5);
    fan2.setColor("blue");
    fan2.setOn(false);
    System.out.println(fan1.toString());
    System.out.println(fan2.toString());
  }
}
class Fan{
  static final int SLOW=1;
  static final int MEDIUM=2;
  static final int FAST=3;
  private int speed=SLOW;
  private boolean on=false;
  private double radius=5;
  private String color="blue";
  public Fan() {}
  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;
  }
  @Override
  public String toString() {
    if(!on) {
      return "fan is off";
    }
    return "风扇的速度:"+speed+"\n颜色:"+color+"\n半径:"+radius;
  }
}


目录
相关文章
|
7月前
|
uml
7-1 设计一个风扇Fan类
7-1 设计一个风扇Fan类
|
6月前
|
Python
使用Mix-in类组合功能
使用Mix-in类组合功能
|
7月前
GE Fanuc IC200MDD849模块 离散混合I/O模块
GE Fanuc IC200MDD849模块 离散混合I/O模块
|
传感器 监控 vr&ar
Vibro-meter VM600 IOC4T 网络和处理器之间的输入/输出模块
Vibro-meter VM600 IOC4T 网络和处理器之间的输入/输出模块
115 0
Vibro-meter VM600 IOC4T 网络和处理器之间的输入/输出模块
|
测试技术 API
使用交互函数充当 check 进行二分
使用交互函数充当 check 进行二分
|
算法
Google Earth Engine ——MCD43A4 V6天底双向反射分布函数调整反射率(NBAR)这个产品结合了Terra和Aqua航天器的数据,从16天的时间里选择最好的代表像素。
Google Earth Engine ——MCD43A4 V6天底双向反射分布函数调整反射率(NBAR)这个产品结合了Terra和Aqua航天器的数据,从16天的时间里选择最好的代表像素。
776 0
Google Earth Engine ——MCD43A4 V6天底双向反射分布函数调整反射率(NBAR)这个产品结合了Terra和Aqua航天器的数据,从16天的时间里选择最好的代表像素。
|
C++
warning C4250: “MyClassD”: 通过域控制继承“MyClassC::MyClassC::MyMethod”
warning C4250: “MyClassD”: 通过域控制继承“MyClassC::MyClassC::MyMethod”
332 0
1000BASE-T/SX/LX/EX/ZX代表哪种SFP光模块?
今天给大家介绍常见的SFP光模块1000BASE-SX、1000BASE-LX、1000BASE-EX、1000BASE-ZX、1000BASE-T这五种传输介质标准代表是哪种光模块呢?1000BASE-LX、1000BASE-LH和1000BASE-LX/LH SFP光模块它们又有哪些区别?现由专业光模块制造商-易天光通信在本文中详细为你解答。
2741 0
重构——26以字面常量取代魔法数(Replace Magic Number with Symbolic Constant)
以字面常量取代魔法数(Replace Magic Number with Symbolic Constant):你有一个字面数值,带有特别含义:创造一个常量,根据其意义为它命名,并将上述的字面数值替换为这个常量
1439 0