MediaPlayer类:
package java_1115;
public interface MediaPlayer {//表示家庭影院的一个设备
void play();//播放
void stop();//停止
void open();//开仓
}
DVDPlayer 类:
package java_1115;
public class DVDPlayer implements MediaPlayer{
@Override
public void play() {//MediaPlayer类中的方法在子类中的重写
// TODO Auto-generated method stub
System.out.println("您已播放DVDPlayer");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("您已暂停DVDPlayer");
}
@Override
public void open() {
// TODO Auto-generated method stub
System.out.println("您已打开DVDPlayer");
}//表示DVD播放器
}
CDPlayer类:
package java_1115;
public class CDPlayer implements MediaPlayer{
@Override
public void play() {//MediaPlayer类中的方法在子类中的重写
// TODO Auto-generated method stub
System.out.println("您已播放CDPlayer");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("您已暂停DPlayer");
}
@Override
public void open() {
// TODO Auto-generated method stub
System.out.println("您已打开CDPlayer");
}//表示CD播放器
}
TapePlayer类:
package java_1115;
public class TapePlayer implements MediaPlayer{//继承接口
@Override
public void play() {//MediaPlayer类中的方法在子类中的重写
// TODO Auto-generated method stub
System.out.println("您已播放TapePlaye");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("您已暂停TapePlaye");
}
@Override
public void open() {
// TODO Auto-generated method stub
System.out.println("您已打开TapePlaye");
}//表示录音机,播放磁带
}
Controller 类:
package java_1115;
import java.util.Scanner;
class Controller {
private MediaPlayer[] players;
public Controller() {
players = new MediaPlayer[3];
players[0] = new DVDPlayer();//因为0表示操作DVDPlayer,所以就new DVDPlayer(),用谁就给谁开辟空间
players[1] = new CDPlayer();//同上
players[2] = new TapePlayer();//同上
// 造函数中初始化 players 数组
// 对相应的设备调用 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 static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("请执行您的操作,0为DVDPlayer,1为CDPlayer,2为apePlayer");
int i = input.nextInt();
Controller c = new Controller();
if (i == 0) {
for (int k = 0; k < 3; k++) {
System.out.println("请选择您的操作:打开,播放,暂停");
Scanner input1 = new Scanner(System.in);
String str = input1.nextLine();
if (str.equals("打开")) {
c.open(i);
} else if (str.equals("播放")) {
c.play(i);
} else if (str.equals("暂停")) {
c.stop(i);
}
}
} else if (i == 1) {
for (int k = 0; k < 3; k++) {
System.out.println("请选择您的操作:打开,播放,暂停");
Scanner input1 = new Scanner(System.in);
String str = input1.nextLine();
if (str.equals("打开")) {
c.open(i);
} else if (str.equals("播放")) {
c.play(i);
} else if (str.equals("暂停")) {
c.stop(i);
}
}
} else if (i == 2) {
for (int k = 0; k < 3; k++) {
System.out.println("请选择您的操作:打开,播放,暂停");
Scanner input1 = new Scanner(System.in);
String str = input1.nextLine();
if (str.equals("打开")) {
c.open(i);
} else if (str.equals("播放")) {
c.play(i);
} else if (str.equals("暂停")) {
c.stop(i);
}
}
} else {
System.out.println("操作不正确");
}
}
}
运行结果: