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月前
|
数据建模 C++ 芯片
栅极驱动 IC 自举电路的设计与应用指南
硬件工程师应该都用过buck,一些buck芯片会有类似下面的自举电容,有时还会串联一个电阻。 那么你是否对这个自举电路有深入的了解呢?比如,这个电容的容值大小该怎么选?大了或者小了会影响什么?耐压要求是怎么样的? 最近呢,正好看到ON Semiconductor的一个文档AN-6076,对于自举电路讲得相当的详细了,想深入了解的兄弟可以自己的仔细的读读,源文档可以自己去网上搜,也可以去我的网盘下载(文末会提供下载链接)。 1. 介绍 本文讲述了一种运用功率型MOSFET和IGBT设计高性能自举式栅极驱动电路的系统方法,适用于高频率,大功率及高效率的开关应用场合。不同经验的电力电子工程师
154 2
|
5月前
|
算法 SoC
在写PWM风扇驱动之前:如何透过FG信号,获取风扇转速?
本文介绍了如何通过PWM风扇的FG信号线获取风扇转速的方法,包括风扇规格的解读、FG信号的公式推导、软件算法的解析,以及在全志H713平台上实现风扇转速获取的驱动代码示例。
419 2
在写PWM风扇驱动之前:如何透过FG信号,获取风扇转速?
|
5月前
|
编解码 前端开发 芯片
全国产化用于生物电测量的低功耗双通道模拟前端芯片 Low-Power, 2-Channel AFE for Biopotential Measurement
这款低功耗双通道模拟前端芯片专为生物电测量设计,集成两个低噪声放大器与24位高精度ADC,支持125至8k SPS的数据速率及多种增益设置。工作电压2.7至3.3V,内置RLD、断线检测等功能,并具备SPI接口。适用于穿戴式健康监测设备、运动智能装备及医疗仪器,如心电图监测。提供TQFP(32)与VQFN(32)封装选项,尺寸紧凑,满足便携与小型化需求。
|
异构计算
实验三 基于FPGA的数码管动态扫描电路设计 quartus/数码管/电路模块设计(上)
实验三 基于FPGA的数码管动态扫描电路设计 quartus/数码管/电路模块设计(上)
922 0
实验三 基于FPGA的数码管动态扫描电路设计 quartus/数码管/电路模块设计(上)
|
存储 机器学习/深度学习 编解码
基于IGBT的变频电源设计(1)
基于IGBT的变频电源设计(1)
612 1
基于IGBT的变频电源设计(2)
基于IGBT的变频电源设计(2)
|
安全 芯片
电容触摸屏原理以及敦泰TP FT5X06驱动
电容触摸屏原理以及敦泰TP FT5X06驱动
214 0
|
异构计算
基于FPGA的电梯控制系统设计
在本项目中一共分为了五个模块:时钟分频、按键消抖、状态控制、蜂鸣、译码显示及流水指示灯。
|
存储
【NI Multisim 14.0虚拟仪器设计——放置虚拟仪器仪表(示波器)】
🍍放置虚拟仪器仪表 NI Multisim 14.0 提供了多种仪器仪表,存储在集成库中,供用户选择使用。下面详细介绍常用的仪器仪表。 🍉示波器 示波器用来显示电信号波形的形状、大小、频率等参数的仪器,如图所示为示波器图标。 选择菜单栏中的“仿真”→“仪器”→“示波器”命令,或者单击“仪器”工具栏中的“示波器”按钮,放置图标,双击示波器图标,打开如图所示的示波器的面板图。 示波器面板各按键的作用、调整及参数的设置与实际的示波器类似,一共分成3个参数设置选项组和一个波形显示区。 1.“时基”选项组 (1)标度 显示示波器的时间基准,其基准为0.1fs/Div~1000Ts/Div可供选择
1203 0
【NI Multisim 14.0虚拟仪器设计——放置虚拟仪器仪表(示波器)】
基于西门子PLC s7-200 的自动立体车库设计自动化设计(控制器步进电机直流电机)
基于西门子PLC s7-200 的自动立体车库设计自动化设计(控制器步进电机直流电机)
213 0