7-1 设计一个风扇Fan类

简介: 7-1 设计一个风扇Fan类

这一节开始记录自己的pta 做题笔记

后续会整理成不同的系列 (按模块)有兴趣的小伙伴可以看我主页 哦


7-1 设计一个风扇Fan类


分数 10

作者 殷伟凤

单位 浙江传媒学院


设计一个名为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.一个有参构造方法 public Fan(int fanSpeed,boolean fanOn,double fanRadius,String fanColor) { ... },

9.一个名为toString()的方法返回描述风扇的字符串。如果风扇是打开的,那么该方法在一个组合的字符串中返回风扇的速度、颜色和半径。如果风扇没有打开,该方法就会返回一个由"fan is off"和风扇颜色以及半径组合成的字符串。


请在自己的草稿本上画出UML图,养成良好的设计习惯。

要求:创建两个Fan对象:

第一个对象利用无参构造方法构造默认风扇对象Fan1;

第二个对象依据输入的风扇属性,调用有参构造方法构造自定义风扇对象Fan2。

通过调用它们的toString方法显示这些对象。


输入格式:


第二个对象的属性


输出格式:


分别输出默认风扇和自定义风扇的速度、颜色、半径以及风扇是否打开


输入样例:


在这里给出一组输入。例如:

2
True
6
Red 


输出样例:


在这里给出相应的输出。例如:

-------
Default
-------
speed 1
color white
radius 5.0
fan is off
-------
My Fan
-------
speed 2
color Red
radius 6.0
fan is on


我的做法

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        
        Fan fan1 = new Fan();
       Scanner input = new Scanner(System.in);
        int speed = input.nextInt();
        boolean on = input.nextBoolean();
        double radius = input.nextDouble();
        String color = input.next();
        Fan fan2 = new Fan(speed, on, radius, color);
 
        System.out.println("-------\nDefault\n-------");
        System.out.println(fan1.toString());
 
        System.out.println("-------\nMy Fan\n-------");
        System.out.println(fan2.toString());
    }
}
 
class Fan {
    private final int SLOW = 1;
    private final int MEDIUM = 2;
    private final int FAST = 3;
 
    private int speed;
    private boolean on;
    private double radius;
    private String color;
 
    public Fan() {
        speed = SLOW;
        on = false;
        radius = 5.0;
        color = "white";
    }
 
    public Fan(int fanSpeed, boolean fanOn, double fanRadius, String fanColor) {
        speed = fanSpeed;
        on = fanOn;
        radius = fanRadius;
        color = fanColor;
    }
 
    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 "speed " + speed + "\ncolor " + color + "\nradius " + radius + "\nfan is on";
        } else {
            return "speed " + speed + "\ncolor " + color + "\nradius " + radius + "\nfan is off";
        }
    }
}
相关文章
|
8月前
|
芯片
电容在ESD测试中的选用方法
电容在ESD测试中的选用方法
113 2
|
8月前
|
数据建模 C++ 芯片
栅极驱动 IC 自举电路的设计与应用指南
硬件工程师应该都用过buck,一些buck芯片会有类似下面的自举电容,有时还会串联一个电阻。 那么你是否对这个自举电路有深入的了解呢?比如,这个电容的容值大小该怎么选?大了或者小了会影响什么?耐压要求是怎么样的? 最近呢,正好看到ON Semiconductor的一个文档AN-6076,对于自举电路讲得相当的详细了,想深入了解的兄弟可以自己的仔细的读读,源文档可以自己去网上搜,也可以去我的网盘下载(文末会提供下载链接)。 1. 介绍 本文讲述了一种运用功率型MOSFET和IGBT设计高性能自举式栅极驱动电路的系统方法,适用于高频率,大功率及高效率的开关应用场合。不同经验的电力电子工程师
154 2
|
8月前
|
算法 5G 数据处理
m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench
m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench
122 0
|
8月前
|
算法 异构计算
m基于FPGA的MPPT最大功率跟踪算法verilog实现,包含testbench
该内容包括三部分:1) 展示了Vivado 2019.2和Matlab中关于某种算法的仿真结果图像,可能与太阳能光伏系统的最大功率点跟踪(MPPT)相关。2) 简述了MPPT中的爬山法原理,通过调整光伏电池工作点以找到最大功率输出。3) 提供了一个Verilog程序模块`MPPT_test_tops`,用于测试MPPT算法,其中包含`UI_test`和`MPPT_module_U`两个子模块,处理光伏电流和电压信号。
83 1
|
8月前
|
数据格式
LabVIEW编程LabVIEW开发控制安东电子LU-926U04Y四路调节模例程与相关资料
LabVIEW编程LabVIEW开发控制安东电子LU-926U04Y四路调节模例程与相关资料
50 1
基于PID控制器的直流电机位置控制系统simulink建模与仿真
**摘要:** 构建基于PID的直流电机位置控制系统,利用PID的简易性和有效性实现精确控制。在MATLAB2022a中进行系统仿真,展示结果。控制器基于误差(e(t))生成控制信号(u(t)),由比例(K_p)、积分(K_i)和微分(K_d)项构成。系统采用三层控制环:位置环设定速度参考,速度环调节实际速度,电流环确保电流匹配,以达成期望位置。
|
7月前
|
传感器
基于PI控制和六步逆变器供电的无刷直流电动机控制系统simulink建模与仿真
该文介绍了基于PI控制和六步逆变器的无刷直流电动机(BLDC)控制系统。BLDC因高效、长寿用于各类产品,其控制需结合逆变器与精确的PI控制器。六步逆变器将直流转换为三相交流电,PI控制器负责速度和位置控制。系统包括速度、位置传感器,PI控制器,PWM发生器和逆变器,通过闭环控制实现电机稳定运行。MATLAB2022a用于仿真验证。参数优化对系统性能关键,常通过实验或仿真确定。
|
8月前
【Simulink】基于无差拍的三相L型滤波并网逆变器电流控制
【Simulink】基于无差拍的三相L型滤波并网逆变器电流控制
|
8月前
【Simulink】基于FCS-MPC的带阻感负载的三相逆变器电流控制(Matlab Function)
【Simulink】基于FCS-MPC的带阻感负载的三相逆变器电流控制(Matlab Function)
|
8月前
【Simulink】基于FCS-MPC的三相并网逆变器电流控制(Stateflow)
【Simulink】基于FCS-MPC的三相并网逆变器电流控制(Stateflow)