用Java创建“时钟”接口,实现“时、分、秒”功能。设置“时钟”的定时时间,测试定时是否准确。创建“音乐”接口,实现“音乐”播放。测试“音乐”是否能播放;测试播放“音乐”是否正确。
时间: 2023-06-12 15:06:44 浏览: 67
以下是用Java创建“时钟”接口的示例代码:
```java
public interface Clock {
void setTimer(int hours, int minutes, int seconds); // 设置定时器
void start(); // 开始计时
void stop(); // 停止计时
}
```
以下是实现“时钟”接口的示例代码:
```java
public class ClockImpl implements Clock {
private Timer timer;
private int hours;
private int minutes;
private int seconds;
@Override
public void setTimer(int hours, int minutes, int seconds) {
this.hours = hours;
this.minutes = minutes;
this.seconds = seconds;
}
@Override
public void start() {
timer = new Timer();
timer.scheduleAtFixedRate(new TimerTask() {
@Override
public void run() {
System.out.printf("%02d:%02d:%02d\n", hours, minutes, seconds);
if (hours == 0 && minutes == 0 && seconds == 0) {
stop();
} else {
if (seconds == 0) {
if (minutes == 0) {
hours--;
minutes = 59;
seconds = 59;
} else {
minutes--;
seconds = 59;
}
} else {
seconds--;
}
}
}
}, 0, 1000);
}
@Override
public void stop() {
timer.cancel();
}
}
```
以下是使用“时钟”接口的示例代码:
```java
public static void main(String[] args) {
Clock clock = new ClockImpl();
clock.setTimer(0, 1, 0); // 设置定时时间为1分钟
clock.start(); // 开始计时
}
```
以上代码将会在控制台上输出每秒一次的当前时间,直到计时器倒计时结束。
以下是用Java创建“音乐”接口的示例代码:
```java
public interface Music {
void play(); // 播放音乐
void stop(); // 停止播放
}
```
以下是实现“音乐”接口的示例代码:
```java
public class MusicImpl implements Music {
private AudioInputStream audioInputStream;
private Clip clip;
@Override
public void play() {
try {
audioInputStream = AudioSystem.getAudioInputStream(new File("music.wav"));
clip = AudioSystem.getClip();
clip.open(audioInputStream);
clip.start();
} catch (UnsupportedAudioFileException | IOException | LineUnavailableException e) {
e.printStackTrace();
}
}
@Override
public void stop() {
clip.stop();
clip.close();
}
}
```
以上代码使用Java内置的音频库,播放文件名为“music.wav”的音乐文件。
以下是使用“音乐”接口的示例代码:
```java
public static void main(String[] args) {
Music music = new MusicImpl();
music.play(); // 播放音乐
try {
Thread.sleep(5000); // 等待5秒钟
} catch (InterruptedException e) {
e.printStackTrace();
}
music.stop(); // 停止播放
}
```
以上代码将会播放音乐文件,并等待5秒钟后停止播放。