/** * 智能电视类 * 实现了Device、BrightnessAdjustable、MediaPlayable和Timable接口 */ public class SmartTV implements Device, BrightnessAdjustable, MediaPlayable, Timable { private String name; private boolean on; private int brightness; private String currentMedia; private String playbackStatus; private int timerMinutes; private boolean timerSet; public SmartTV(String name) { this.name = name; this.on = false; this.brightness = 70; // 默认亮度70% this.currentMedia = null; this.playbackStatus = "停止"; this.timerMinutes = 0; this.timerSet = false; } @Override public String getName() { return name; } @Override public void turnOn() { if (!on) { on = true; System.out.println(name + " 智能电视已开启"); } } @Override public void turnOff() { if (on) { on = false; playbackStatus = "停止"; System.out.println(name + " 智能电视已关闭"); } } @Override public boolean isOn() { return on; } @Override public void increaseBrightness(int level) { if (on) { brightness = Math.min(100, brightness + level); System.out.println(name + " 亮度已增加到: " + brightness + "%"); } } @Override public void decreaseBrightness(int level) { if (on) { brightness = Math.max(0, brightness - level); System.out.println(name + " 亮度已降低到: " + brightness + "%"); } } @Override public void setBrightness(int brightness) { if (on) { if (brightness >= 0 && brightness <= 100) { this.brightness = brightness; System.out.println(name + " 亮度已设置为: " + brightness + "%"); } } } @Override public int getCurrentBrightness() { return brightness; } @Override public void play(String mediaName) { if (on) { this.currentMedia = mediaName; this.playbackStatus = "播放中: " + mediaName; System.out.println(name + " 正在播放: " + mediaName); } } @Override public void pause() { if (on && "播放中: " + currentMedia.equals(playbackStatus)) { this.playbackStatus = "暂停: " + currentMedia; System.out.println(name + " 已暂停播放"); } } @Override public void stop() { if (on) { this.playbackStatus = "停止"; this.currentMedia = null; System.out.println(name + " 已停止播放"); } } @Override public String getPlaybackStatus() { return playbackStatus; } @Override public void setTimer(int minutes) { if (on && minutes > 0) { this.timerMinutes = minutes; this.timerSet = true; System.out.println(name + " 已设置定时器: " + minutes + " 分钟后关闭"); } } @Override public void cancelTimer() { if (timerSet) { this.timerSet = false; this.timerMinutes = 0; System.out.println(name + " 定时器已取消"); } } @Override public boolean isTimerSet() { return timerSet; } @Override public int getRemainingTime() { return timerMinutes; } }