**
*定义一个接口MediaPlayer,表示家庭影院的一个设备。MediaPlayer中包含play(),stop(),
open()三个方法,分别表示播放、停止和开仓功能。
MediaPlayer 有三个实现类,分别为:DVDPlayer,表示 DVD 播放器;CDPlayer,表示
CD 播放器;TapePlayer,表示录音机(播放磁带)。
**
创建一个遥控器 Controller 类。该遥控器有三个控制通道,可以分别控制三个设备。
要求:
- 完成 MediaPlayer 接口及其子类的代码。
- 把 Controller 补充完整,完善其构造函数,并为其增加 stop(int i)和 open(int i)方法
public interface MediaPlayer {
// 播放功能
void play();
// 停止功能
void stop();
// 开仓功能
void open();
}
public class DVDPlayer implements MediaPlayer {
/* (non-Javadoc)
* @see com.it.chp8.MediaPlayer#play()
*/
@Override
public void play() {
// TODO Auto-generated method stub
System.out.println("播放DVD");
}
/* (non-Javadoc)
* @see com.it.chp8.MediaPlayer#stop()
*/
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("停止播放DVD");
}
/* (non-Javadoc)
* @see com.it.chp8.MediaPlayer#open()
*/
@Override
public void open() {
// TODO Auto-generated method stub
System.out.println("DVD开仓");
}
}
public class CDPlayer implements MediaPlayer {
/* (non-Javadoc)
* @see com.it.chp8.MediaPlayer#play()
*/
@Override
public void play() {
// TODO Auto-generated method stub
System.out.println("播放CD");
}
/* (non-Javadoc)
* @see com.it.chp8.MediaPlayer#stop()
*/
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("停止播放CD");
}
/* (non-Javadoc)
* @see com.it.chp8.MediaPlayer#open()
*/
@Override
public void open() {
// TODO Auto-generated method stub
System.out.println("CD开仓");
}
}
public class TapePlayer implements MediaPlayer {
/* (non-Javadoc)
* @see com.it.chp8.MediaPlayer#play()
*/
@Override
public void play() {
// TODO Auto-generated method stub
System.out.println("播放磁带");
}
/* (non-Javadoc)
* @see com.it.chp8.MediaPlayer#stop()
*/
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("停止播放磁带");
}
/* (non-Javadoc)
* @see com.it.chp8.MediaPlayer#open()
*/
@Override
public void open() {
// TODO Auto-generated method stub
System.out.println("磁带出仓");
}
}
public class Controller {
private MediaPlayer[] players; // 保存成员
public MediaPlayer[] getPlayers() {
return players;
}
public void setPlayers(MediaPlayer[] players) {
this.players = players;
}
// 构造函数中初始化 players 数组
public Controller() {
// 存入三种播放器
MediaPlayer[] mp = new MediaPlayer[3];
mp[0] = new DVDPlayer();
mp[1] = new CDPlayer();
mp[2] = new TapePlayer();
setPlayers(mp);// set赋值
}
// 对相应的设备调用 play 方法
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 class TestMedia {
public static void main(String[] args) {
Controller c = new Controller();
c.play(1);//播放CD
c.play(2);//播放磁带
c.play(0);//播放DVD
c.stop(0);//停止播放DVD
//等等
}
}