V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
gzk329
V2EX  ›  问与答

笔试题 设计个灯 通过按开灯键调节亮度 我这么写没问题吧?第一次求职 感觉有点简单 怕有坑?

  •  
  •   gzk329 · 2021-05-31 17:40:40 +08:00 · 801 次点击
    这是一个创建于 1302 天前的主题,其中的信息可能已经有所发展或是发生改变。
    /**
     * @Description: 台灯设计 按一次开 按两次提高亮度 按第三次关闭
     * @Author: GZK0329
     * @Date: 2021/5/31
     **/
    
    public class Lamp {
        //台灯目前状态 初始为关闭状态
        private Boolean isOpen = false;
    
        //按开关键次数统计 按一次开 按两次提高亮度 按第三次关闭
        private int clickCount = 0;
    
        //亮度统计 0 关闭 1 亮度一级 2 亮度二级
        private int brightness = 0;
    
        public Lamp() {
        }
    
        public void click() {
            clickCount++;
            clickCount %= 3;
            switch (clickCount) {
                case 0:
                    close();break;
                case 1:
                    open();break;
                case 2:
                    lightBoost();break;
                default:
                    return;
            }
        }
    
        private void lightBoost() {
            //亮度增加 0 关闭 1 亮度一级 2 亮度二级
            brightness++;
            brightness %= 3;
            System.out.println("亮度提升!,当前亮度为:" + brightness + "当前台灯是否开启"+ isOpen);
        }
    
        public void open() {
            if (isOpen == false) {
                isOpen = true;
                lightBoost();
                System.out.println("台灯当前处于关闭状态,现已开启台灯。");
            }else{
                return;
            }
        }
    
        public void close() {
            if (isOpen == true) {
                isOpen = false;
                System.out.println("台灯当前处于开启状态,现已关闭台灯。");
                brightness = 0;
                clickCount = 0;
            }else{
                return;
            }
        }
    
        public Boolean getIsOpen() {
            return isOpen;
        }
    
        public void setIsOpen(Boolean isOpen) {
            this.isOpen = isOpen;
        }
    
        public int getClickCount() {
            return clickCount;
        }
    
        public void setClickCount(int clickCount) {
            this.clickCount = clickCount;
        }
    
        public int getBrightness() {
            return brightness;
        }
    
        public void setBrightness(int brightness) {
            this.brightness = brightness;
        }
    }
    
    4 条回复    2021-05-31 19:07:19 +08:00
    gzk329
        1
    gzk329  
    OP
       2021-05-31 17:41:39 +08:00
    代码我测试过了 主要是有没有设计纰漏?
    falsemask
        2
    falsemask  
       2021-05-31 17:53:02 +08:00
    为什么 open close 方法的 else 没有空格缩进。boolean 类型变量取名不建议加 is 前缀。可以把你的代码放进 idea,会有好几处修改建议
    TomVista
        3
    TomVista  
       2021-05-31 17:53:04 +08:00
    brightness%3 ; clickCount %= 3;

    考虑是个灯,换成 if(a=0){a=1} if(a=1){a=2} if(a=2){a=0} 会更好
    hxsf
        4
    hxsf  
       2021-05-31 19:07:19 +08:00
    按两次提高亮度 是 %2 还是 双击?
    %2 感觉有点违背常识啊。。。想调亮度得开关开关绕一圈啊。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3243 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 41ms · UTC 12:19 · PVG 20:19 · LAX 04:19 · JFK 07:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.