定义一个接口 MediaPlayer,表示家庭影院的一个设备。MediaPlayer 中
包含 play(),stop(), open()三个方法,分别表示播放、停止和开仓功能。
MediaPlayer 有三个实现类,分别为: DVDPlayer,表示 DVD 播放器; CDPlayer,表示 CD 播放器;TapePlayer,表示录音机(播放磁带)。
创建一个遥控器 Controller 类。该遥控器有三个控制通道,可以分别控制三个设备。部分代码如下:
class Controller{
private MediaPlayer[] players;
public Controller(){ //构造函数中初始化 players 数组 }
//对相应的设备调用 play 方法
public void play(int i){ players[i].play();}
}
要求:
- 完成 MediaPlayer 接口及其子类的代码。
- 把 Controller 补充完整,完善其构造函数,并为其增加 stop(int i)和open(int i)方法
package org.jsoft.assignment;
public interface MediaPlayer {
//家庭影院的一个设备
//三个功能:播放、停止和开仓
void play();
void stop();
void open();
}
package org.jsoft.assignment;
public class DVDPlayer implements MediaPlayer{
//DVD播放器
@Override
public void play() {
System.out.println("DVD播放器播放");
}
@Override
public void stop() {
System.out.println("DVD播放器停止");
}
@Override
public void open() {
System.out.println("DVD播放器开仓");
}
}
package org.jsoft.assignment;
public class CDPlayer implements MediaPlayer{
//CD播放器
@Override
public void play() {
System.out.println("CD播放器播放");
}
@Override
public void stop() {
System.out.println("CD播放器停止");
}
@Override
public void open() {
System.out.println("CD播放器开仓");
}
}
package org.jsoft.assignment;
public class TapePlayer implements MediaPlayer{
//录音机(播放磁带)
@Override
public void play() {
System.out.println("录音机播放");
}
@Override
public void stop() {
System.out.println("录音机停止");
}
@Override
public void open() {
System.out.println("录音机开仓");
}
}
package org.jsoft.assignment;
public class Controller {
private MediaPlayer [] players;
public Controller(){//创建并初始化players数组
players = new MediaPlayer[3];
players[0]=new DVDPlayer();
players[1]=new CDPlayer();
players[2]=new TapePlayer();
}
public void play(int i){
players[i].play();
}
public void stop(int i){
players[i].stop();
}
public void open(int i){
players[i].open();
}
public static void main(String []agrs){
Controller controller = new Controller();
for(int i=0;i<controller.players.length;i++){
controller.play(i);
controller.stop(i);
controller.open(i);
}
}
}