当前位置: 首页 > news >正文

正规的网站建设公司扬中营销网站建设

正规的网站建设公司,扬中营销网站建设,《网页设计与网站建设》,湖北省建筑特种作业人员证书文章目录 一、需求二、业务分析三、具体实现创建一个功能接口,实现设备的开关创建一个家电类,作为功能接口的实现类,定义名字和状态分别创建电视机、洗衣机、电灯的类,继承家电类Tv类WashMachine类Lamp类 定义智能控制系统类&…

文章目录

  • 一、需求
  • 二、业务分析
  • 三、具体实现
    • 创建一个功能接口,实现设备的开关
    • 创建一个家电类,作为功能接口的实现类,定义名字和状态
    • 分别创建电视机、洗衣机、电灯的类,继承家电类
      • Tv类
      • WashMachine类
      • Lamp类
    • 定义智能控制系统类(单例),控制调用设备的开和关
    • 主程序
  • 四、代码结构
  • 五、实现效果
  • 六、参考视频


一、需求

用户通过智能家居控制系统来控制家用设备(电视机、洗衣机、电灯)的开关。

二、业务分析

目标:面向对象编程,实现智能家居控制系统
角色:设备(电视机、洗衣机、电灯)
功能:开和关
谁来控制设备:智能家居控制系统

三、具体实现

创建一个功能接口,实现设备的开关

Switch接口

package com.itheima.smartctlsys;public interface Switch {// 定义一个成员方法,来控制开关状态void controlStatus();
}

创建一个家电类,作为功能接口的实现类,定义名字和状态

HomeDevice

package com.itheima.smartctlsys;import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;@Data   // 生成get set方法
@NoArgsConstructor  // 生成无参构造方法
@AllArgsConstructor // 生成有参构造方法
public class HomeDevice implements Switch {private String name;private boolean status;     // 开关状态,默认为false@Overridepublic void controlStatus() {// 控制当前设备开和关status = !this.status;}
}

分别创建电视机、洗衣机、电灯的类,继承家电类

Tv类

package com.itheima.smartctlsys;// 电视
public class Tv extends HomeDevice {// 定义有参构造器public Tv(String name, boolean status) {super(name, status);    // 调父类的有参构造器}
}

WashMachine类

package com.itheima.smartctlsys;// 定义洗衣机类
public class WashMachine extends HomeDevice {// 定义有参构造器public WashMachine(String name, boolean status) {super(name, status);    // 调父类的有参构造器}
}

Lamp类

package com.itheima.smartctlsys;// 灯
public class Lamp extends HomeDevice {public Lamp(String name, boolean status) {super(name, status);    // 调父类的有参构造器}
}

定义智能控制系统类(单例),控制调用设备的开和关

SmartControlSystem

package com.itheima.smartctlsys;// 智能控制系统,单例模式
public class SmartControlSystem {// 定义一个类变量,记住该类的唯一实例private static final SmartControlSystem smartControlSystem = new SmartControlSystem();// 私有化构造器private SmartControlSystem () {}// 提供公共的静态方法,获取该类的唯一实例public static SmartControlSystem getInstance() {return smartControlSystem;}// 多态public void controlDevice(HomeDevice device) {System.out.println("你控制的设备为" + device.getName() + ",当前状态为:" + (device.isStatus() ? "开" : "关"));System.out.println("请开始您的操作……");device.controlStatus();System.out.println("操作成功," + device.getName() + "的状态已调整为:" + (device.isStatus() ? "开" : "关"));}// 打印所有设备的状态public void printAllDeviceStatus(HomeDevice[] devices) {System.out.println("欢迎使用智能家居控制系统,所有设备的状态为:");// 使用for循环,根据索引遍历每个设备for (int i = 0; i < devices.length; i++) {System.out.println((i + 1) + "," + devices[i].getName() + ":" + (devices[i].isStatus() ? "开" : "关"));}}
}

主程序

定义一个数组,存储家用设备的名字和状态,代表整个家庭设备
在while循环里面,根据用户输入来决定控制哪个设备的开关

package com.itheima.smartctlsys;import java.util.Scanner;public class Test {public static void main(String[] args) {// 定义数组,存放家用设备HomeDevice[] devices = new HomeDevice[3];   // 多态写法devices[0] = new Tv("小米电视", true);devices[1] = new WashMachine("海尔洗衣机", false);devices[2] = new Lamp("华为灯泡", true);SmartControlSystem smartControlSystem = SmartControlSystem.getInstance();while (true) {// 打印所有设备的状态smartControlSystem.printAllDeviceStatus(devices);System.out.println("请选择您要控制的设备:");// 接受键盘输入Scanner sc = new Scanner(System.in);String command = sc.next();switch (command) {case "1":smartControlSystem.controlDevice(devices[0]);break;case "2":smartControlSystem.controlDevice(devices[1]);break;case "3":smartControlSystem.controlDevice(devices[2]);break;case "exit":System.out.println("退出智能控制系统,欢迎再次使用!");return;default:System.out.println("输入有误,请重新输入!");}}}}

四、代码结构

在这里插入图片描述

五、实现效果

在这里插入图片描述

六、参考视频

https://www.bilibili.com/video/BV1gb42177hm?spm_id_from=333.788.player.switch&vd_source=0467ab39cc5ec5940fee22a0e7797575&p=82

http://www.dtcms.com/a/558211.html

相关文章:

  • VSCode美化之修改新窗口首页/启动页logo
  • 做磨砂卡贴的网站网站建设是虚拟行业吗
  • 网站单页面制作wordpress会员页面
  • 电商网站设计工作内容厦门做外贸网站
  • c 网站开发简单实例wordpress的文章title在哪里
  • 选择排序优化
  • 想把公司的外部网站替换dede网站地图不显示文章列表
  • 最简单做网站亚马逊雨林的危险之处
  • 全源最短路(Johnson)
  • 网站的性能特点如何增加网站关键词
  • deepseek封装结合websocket实现与ai对话
  • 电子商务微网站制作佛山网站建设冯哥
  • 基本魔法语言数组 (二) (C语言)
  • 五金喷漆东莞网站建设公司网站制作设计联系方式
  • python进阶教程13:多线程、GIL、锁和线程隔离
  • 深圳网站建设平台厦门专业网站设计代理
  • 网站备案 法规网站建设一般涉及后台功能
  • STM32 单片机 ESP8266 联网 和 MQTT协议
  • 铜仁住房和城乡建设局网站域名主机基地
  • 主流 AI IDE 之一的 Trae IDE 介绍
  • 南京市建设工程档案馆网站网站上传的图片不显示
  • 河北省建设执业资格中心网站网站有哪些类型和它的成功案例
  • 免注册、免激活,可永久使用!
  • PySide6 Win10记事本从零到一——第六章(上) 编辑菜单界面与部分功能实现
  • Android和JAVA面试题相关资料
  • 自己开发网站需要多少钱asp.net网站开发 pdf
  • (N_087)基于java拼图游戏
  • 免费的企业建站系统app页面设计软件
  • 资源网站建设活动感受没网站能不能cpc广告点击赚钱做
  • 【愚公系列】《MCP协议与AI Agent开发》004-大模型原理及MCP开发基础(LLM 在应用中的典型接口模式)