package work;
//接口
public interface MediaPlayer {
void play();//播放
void stop();//停止
void open();//开仓
}
package work;
public class DVDPlayer implements MediaPlayer {
private String name;
private boolean playB=false;//播放状态
private boolean openB=false;//开仓状态
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
DVDPlayer()
{
name="DVD 播放器";
System.out.println(name+"处于关闭状态");
}
@Override
//重写MediaPlayer类的方法
public void play() {
if(!playB)
playB=true;
if(!playB)
System.out.println(name+"已停止");
else
System.out.println(name+"正在播放");
}
public void stop() {
if(playB)
playB=false;
if(playB)
System.out.println(name+"正在播放");
else
System.out.println(name+"已停止");
}
public void open() {
if(openB)
System.out.println(name+"为关仓状态");
else
System.out.println(name+"已开仓");
if(!openB)
openB=true;
else
openB=false;
}
}
package work;
public class CDPlayer implements MediaPlayer {
private String name;
private boolean playB=false;
private boolean openB=false;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
CDPlayer()
{
name="CD 播放器";
System.out.println(name+"处于关闭状态");
}
@Override
public void play() {
if(!playB)
playB=true;
if(!playB)
System.out.println(name+"已停止");
else
System.out.println(name+"正在播放");
}
public void stop() {
if(playB)
playB=false;
if(playB)
System.out.println(name+"正在播放");
else
System.out.println(name+"已停止");
}
public void open() {
if(openB)
System.out.println(name+"为关仓状态");
else
System.out.println(name+"已开仓");
if(!openB)
openB=true;
else
openB=false;
}
}
package work;
public class TapePlayer implements MediaPlayer {
private String name;
private boolean playB=false;
private boolean openB=false;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
TapePlayer()
{
name="录音机";
System.out.println(name+"处于关闭状态");
}
@Override
public void play() {
if(!playB)
playB=true;
if(!playB)
System.out.println(name+"已停止");
else
System.out.println(name+"正在播放");
}
public void stop() {
if(playB)
playB=false;
if(playB)
System.out.println(name+"正在播放");
else
System.out.println(name+"已停止");
}
public void open() {
if(openB)
System.out.println(name+"为关仓状态");
else
System.out.println(name+"已开仓");
if(!openB)
openB=true;
else
openB=false;
}
}
package work;
public class Controller{
private MediaPlayer[] players;
public Controller(MediaPlayer m1,MediaPlayer m2,MediaPlayer m3)//构造函数中初始化 players 数组
{
players=new MediaPlayer[3];
players[0]=m1;
players[1]=m2;
players[2]=m3;
}
public void play(int i)//调用
{
players[i].play();
}
public void stop(int i)
{
players[i].stop();
}
public void open(int i)
{
players[i].open();
}
}
package work;
public class Text {
public static void main(String[] args) {
Controller c=new Controller(new DVDPlayer(), new CDPlayer(), new TapePlayer());
c.play(0);//测试
c.stop(0);
c.play(0);
c.open(0);
c.open(0);
c.open(0);
c.stop(0);
c.play(1);
c.open(1);
c.stop(1);
c.play(2);
c.open(2);
c.stop(2);
}
}