From 3c323deb510ce72cc872a27b76aa7568dad7f5d7 Mon Sep 17 00:00:00 2001 From: NCJOAQ <2627723488@qq.com> Date: Wed, 23 Jul 2025 14:11:51 +0800 Subject: [PATCH] =?UTF-8?q?feat(class33-35):=20=E7=AE=80=E5=8D=95=E5=AE=B6?= =?UTF-8?q?=E5=85=B7=E6=8E=A7=E5=88=B6=E7=B3=BB=E7=BB=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 A 接口和 Test 类,实现默认方法和静态方法 - 创建 JD 类和 Switch 接口,用于智能家居设备控制 - 添加 Air、Lamp、TV、WashMachine 类继承 JD - 实现 SmartHomeControl 类作为智能家居控制器 - 编写 Test 类测试智能家居控制功能 --- src/class33/A.java | 14 ++++++++++ src/class33/Test.java | 12 +++++++++ src/class34/Test.java | 7 +++++ src/class35/Air.java | 10 +++++++ src/class35/JD.java | 19 +++++++++++++ src/class35/Lamp.java | 10 +++++++ src/class35/SmartHomeControl.java | 22 +++++++++++++++ src/class35/Switch.java | 5 ++++ src/class35/TV.java | 12 +++++++++ src/class35/Test.java | 45 +++++++++++++++++++++++++++++++ src/class35/WashMachine.java | 10 +++++++ 11 files changed, 166 insertions(+) create mode 100644 src/class33/A.java create mode 100644 src/class33/Test.java create mode 100644 src/class34/Test.java create mode 100644 src/class35/Air.java create mode 100644 src/class35/JD.java create mode 100644 src/class35/Lamp.java create mode 100644 src/class35/SmartHomeControl.java create mode 100644 src/class35/Switch.java create mode 100644 src/class35/TV.java create mode 100644 src/class35/Test.java create mode 100644 src/class35/WashMachine.java diff --git a/src/class33/A.java b/src/class33/A.java new file mode 100644 index 0000000..b3a6b02 --- /dev/null +++ b/src/class33/A.java @@ -0,0 +1,14 @@ +package class33; + +public interface A { + default void go(){ + System.out.println("===go方法执行了==="); + run(); + }; + private void run(){ + System.out.println("===run方法执行了==="); + }; + static void show(){ + System.out.println("===show方法执行了==="); + }; +} diff --git a/src/class33/Test.java b/src/class33/Test.java new file mode 100644 index 0000000..6936627 --- /dev/null +++ b/src/class33/Test.java @@ -0,0 +1,12 @@ +package class33; + +public class Test { + public static void main(String[] args) { + AImpl a = new AImpl(); + a.go(); + A.show(); + } +} +class AImpl implements A{ + +} \ No newline at end of file diff --git a/src/class34/Test.java b/src/class34/Test.java new file mode 100644 index 0000000..9b55600 --- /dev/null +++ b/src/class34/Test.java @@ -0,0 +1,7 @@ +package class34; + +public class Test { + public static void main(String[] args) { + + } +} diff --git a/src/class35/Air.java b/src/class35/Air.java new file mode 100644 index 0000000..271ea6a --- /dev/null +++ b/src/class35/Air.java @@ -0,0 +1,10 @@ +package class35; + +public class Air extends JD{ + public Air(String name, boolean status) { + super(name, status); + } + + public Air() { + } +} diff --git a/src/class35/JD.java b/src/class35/JD.java new file mode 100644 index 0000000..54682ef --- /dev/null +++ b/src/class35/JD.java @@ -0,0 +1,19 @@ +package class35; + +import lombok.AllArgsConstructor; +import lombok.Data; +import lombok.NoArgsConstructor; + +@Data +@NoArgsConstructor +@AllArgsConstructor +public class JD implements Switch{ + private String name; + private boolean status; + @Override + public void press() + { + status = !status; + } + +} diff --git a/src/class35/Lamp.java b/src/class35/Lamp.java new file mode 100644 index 0000000..1fb57c3 --- /dev/null +++ b/src/class35/Lamp.java @@ -0,0 +1,10 @@ +package class35; + +public class Lamp extends JD{ + public Lamp(String name, boolean status) { + super(name, status); + } + + public Lamp() { + } +} diff --git a/src/class35/SmartHomeControl.java b/src/class35/SmartHomeControl.java new file mode 100644 index 0000000..d4e31fa --- /dev/null +++ b/src/class35/SmartHomeControl.java @@ -0,0 +1,22 @@ +package class35; + +public class SmartHomeControl { + private static final SmartHomeControl smartHomeControl = new SmartHomeControl(); + private SmartHomeControl() { + } + public static SmartHomeControl getInstance() { + return smartHomeControl; + } + public void control(JD s) { + System.out.println(s.getName() + "状态目前是:" + (s.isStatus()?"开":"关")); + System.out.println("开始您的操作......"); + s.press(); + System.out.println(s.getName() + "状态目前是:" + (s.isStatus()?"开":"关")); + + } + public void printAllStatus(JD[] arr) { + for (int i = 0; i < arr.length; i++) { + System.out.println( i+1 +","+ arr[i].getName() + "状态目前是:" + (arr[i].isStatus()?"开":"关")); + } + } +} diff --git a/src/class35/Switch.java b/src/class35/Switch.java new file mode 100644 index 0000000..fba4907 --- /dev/null +++ b/src/class35/Switch.java @@ -0,0 +1,5 @@ +package class35; + +public interface Switch { + void press(); +} diff --git a/src/class35/TV.java b/src/class35/TV.java new file mode 100644 index 0000000..7e317b2 --- /dev/null +++ b/src/class35/TV.java @@ -0,0 +1,12 @@ +package class35; + + +public class TV extends JD{ + public TV(String name, boolean status) { + super(name, status); + } + public TV(){ + + } + +} diff --git a/src/class35/Test.java b/src/class35/Test.java new file mode 100644 index 0000000..b3925b2 --- /dev/null +++ b/src/class35/Test.java @@ -0,0 +1,45 @@ +package class35; + +import java.util.Scanner; + +public class Test { + public static void main(String[] args) { + JD[] jds = new JD[4]; + jds[0] = new TV("TV",true); + jds[1] = new WashMachine("WashMachine",true); + jds[2] = new Lamp("Lamp",true); + jds[3] = new Air("Air",true); + + SmartHomeControl control = SmartHomeControl.getInstance(); + + control.control(jds[0]); + + while (true) { + control.printAllStatus(jds); + System.out.println("请选择要控制的设备:"); + Scanner sc = new Scanner(System.in); + String index = sc.next(); + switch (index){ + case "1": + control.control(jds[0]); + break; + case "2": + control.control(jds[1]); + break; + case "3": + control.control(jds[2]); + break; + case "4": + control.control(jds[3]); + break; + case "exit": + System.out.println("退出"); + return; + default: + System.out.println("输入错误"); + break; + } + } + + } +} diff --git a/src/class35/WashMachine.java b/src/class35/WashMachine.java new file mode 100644 index 0000000..8f16749 --- /dev/null +++ b/src/class35/WashMachine.java @@ -0,0 +1,10 @@ +package class35; + +public class WashMachine extends JD{ + public WashMachine(String name, boolean status) { + super(name, status); + } + + public WashMachine() { + } +}