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";
        }
    }
}
相关文章
|
6月前
|
数据建模 C++ 芯片
栅极驱动 IC 自举电路的设计与应用指南
硬件工程师应该都用过buck,一些buck芯片会有类似下面的自举电容,有时还会串联一个电阻。 那么你是否对这个自举电路有深入的了解呢?比如,这个电容的容值大小该怎么选?大了或者小了会影响什么?耐压要求是怎么样的? 最近呢,正好看到ON Semiconductor的一个文档AN-6076,对于自举电路讲得相当的详细了,想深入了解的兄弟可以自己的仔细的读读,源文档可以自己去网上搜,也可以去我的网盘下载(文末会提供下载链接)。 1. 介绍 本文讲述了一种运用功率型MOSFET和IGBT设计高性能自举式栅极驱动电路的系统方法,适用于高频率,大功率及高效率的开关应用场合。不同经验的电力电子工程师
142 2
|
6月前
|
算法 5G 数据处理
m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench
m基于FPGA的PPM光学脉位调制解调系统verilog实现,包含testbench
109 0
|
6月前
|
Linux SoC
关于S3学习所涉及到的知识(三):Generic PM之Suspend功能&&Gicv3电源/功耗管理
关于S3学习所涉及到的知识(三):Generic PM之Suspend功能&&Gicv3电源/功耗管理
116 0
|
存储 传感器 定位技术
【NI Multisim 14.0原理图设计基础——元器件分类】
一、元器件分类 NI Multisim 14.0不仅提供了数量众多的元器件符号图形,而且还设计了元器件的模型,并分门类地存储在各个元器件库中。下面按照元器件库的命名不同详细介绍常用的元器件。 1.电源库 单击“元器件”工具栏中的“放置源” 按钮,Sources 库的“系列”栏包括以下几种,如图所示: 电源(POWER-SOURCES):包括常用的交直流电源、数字地、地线、星形或三角形连接的三相电源、VCC、VDD、VEE、VSS 电压源,其元器件”栏下内容如图所示: 电压信号源(SIGNAL-VOLTAG…):包括交流电压、时钟电压、脉冲电压、指数电压、FM、AM等多种形式的电压信号,其“元器
6416 1
【NI Multisim 14.0原理图设计基础——元器件分类】
|
6月前
|
数据格式
LabVIEW编程LabVIEW开发控制安东电子LU-926U04Y四路调节模例程与相关资料
LabVIEW编程LabVIEW开发控制安东电子LU-926U04Y四路调节模例程与相关资料
38 1
|
5月前
|
传感器
基于PI控制和六步逆变器供电的无刷直流电动机控制系统simulink建模与仿真
该文介绍了基于PI控制和六步逆变器的无刷直流电动机(BLDC)控制系统。BLDC因高效、长寿用于各类产品,其控制需结合逆变器与精确的PI控制器。六步逆变器将直流转换为三相交流电,PI控制器负责速度和位置控制。系统包括速度、位置传感器,PI控制器,PWM发生器和逆变器,通过闭环控制实现电机稳定运行。MATLAB2022a用于仿真验证。参数优化对系统性能关键,常通过实验或仿真确定。
|
6月前
LabVIEW编程LabVIEW开发PXI-6704输出大于20mA的电流例程与相关资料
LabVIEW编程LabVIEW开发PXI-6704输出大于20mA的电流例程与相关资料
42 0
|
6月前
|
编解码
GE IC200ALG320 4点模拟电流输出模块 VersaMax I/O系列
GE IC200ALG320 4点模拟电流输出模块 VersaMax I/O系列
|
6月前
|
编解码
GE Fanuc IC200ALG331 4点模拟电压/电流输入模块
GE Fanuc IC200ALG331 4点模拟电压/电流输入模块
|
传感器
【GUI】使用PID控制器进行台式过程控制实验,以保持热敏电阻的温度(Matlab代码实现)
【GUI】使用PID控制器进行台式过程控制实验,以保持热敏电阻的温度(Matlab代码实现)
【GUI】使用PID控制器进行台式过程控制实验,以保持热敏电阻的温度(Matlab代码实现)