MediaPlayer类:
package org.jsoft.zuoye;
public interface MediaPlayer {
void play();//抽象方法,播放
void stop();//抽象方法,停止
void open();//抽象方法,出仓
}
DVDPlayer类:
package org.jsoft.zuoye;
public class DVDPlayer implements MediaPlayer{
@Override
public void play() {
System.out.println("播放DVD");
}
@Override
public void stop() {
System.out.println("停止播放DVD");
}
@Override
public void open() {
System.out.println("DVD开仓");
}
}
CDPlayer类:
package org.jsoft.zuoye;
public class CDPlayer implements MediaPlayer{
@Override
public void play() {
System.out.println("播放CD");
}
@Override
public void stop() {
System.out.println("停止播放CD");
}
@Override
public void open() {
System.out.println("CD开仓");
}
}
TapePlayer类:
package org.jsoft.zuoye;
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("磁带出仓");
}
}
Controller类:
package org.jsoft.zuoye;
public class Controller {
private MediaPlayer[] players;//保存成员
public MediaPlayer[] getPlayers() {
return players;
}
public void setPlayers(MediaPlayer[] players) {
this.players = players;
}
public Controller(){//构造方法,初始化数组
MediaPlayer[] mp=new MediaPlayer[3];//mp中保存三个播放器
mp[0]=new DVDPlayer();
mp[1]=new CDPlayer();
mp[2]=new TapePlayer();
setPlayers(mp);
}
public void play(int i){
getPlayers()[i].play();
}
public void stop(int i){
getPlayers()[i].stop();
}
public void open(int i){
getPlayers()[i].open();
}
}
TestMediaPlayer类:
package org.jsoft.zuoye;
public class TestMediaPlayer {
public static void main(String[] args) {
Controller c=new Controller();
c.play(0);
c.stop(0);
c.open(0);
c.play(1);
c.stop(1);
c.open(1);
c.play(2);
c.stop(2);
c.open(2);
}
}