//接口
package org.jsoft.HomeWork;
public interface MediaPlayer {
void open();
void stop();
void paly();
}
//调用接口
package org.jsoft.HomeWork;
public class TapePlayer implements MediaPlayer {
@Override
public void open() {
// TODO Auto-generated method stub
System.out.println("开启TapePlayer成功");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("暂停TapePlayer成功");
}
@Override
public void paly() {
// TODO Auto-generated method stub
System.out.println("切换TapePlayer成功");
}
}
package org.jsoft.HomeWork;
public class DVDPlayer implements MediaPlayer{
@Override
public void open() {
// TODO Auto-generated method stub
System.out.println("开启DVD成功");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("暂停DVD成功");
}
@Override
public void paly() {
// TODO Auto-generated method stub
System.out.println("切换DVD成功");
}
}
package org.jsoft.HomeWork;
public class CDPlayer implements MediaPlayer{
@Override
public void open() {
// TODO Auto-generated method stub
System.out.println("打开CD成功");
}
@Override
public void stop() {
// TODO Auto-generated method stub
System.out.println("暂停CD成功");
}
@Override
public void paly() {
// TODO Auto-generated method stub
System.out.println("切换CD成功");
}
}
//Contorller类:
package org.jsoft.HomeWork;
public class Controller {
private MediaPlayer players[];
public Controller(){
players=new MediaPlayer[3];
players[0]=new CDPlayer();//CDPlayer 是players[0]
players[1]=new DVDPlayer();//DVD是Players[1]
players[2]=new TapePlayer();//DVD是TapePlayer
}
public void play(int i){
players[i].paly();//相应的下角标调用相应的函数
}
public void open(int i){
players[i].open();
}
public void stop(int i ){
players[i].stop();
}
}
//测试类:
package org.jsoft.HomeWork;
import java.util.Scanner;
public class Test {
MediaPlayer cc=new CDPlayer();//实例化MediaPlayer类型的CDPlayer
MediaPlayer cd=new DVDPlayer();//实例化MediaPlayer类型的DVDPlayer
MediaPlayer ct=new TapePlayer();//实例化MediaPlayer类型的TapePlayer
Controller cr=new Controller(cc,cd,ct);//实例化带参数的Controller类型的cr对象
void Test(){//构造方法
System.out.println("请输入你要选择的设备:");
System.out.println("*******************");
System.out.println("1、DVD 2、CD 3、Tape");
System.out.println("*******************");
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
if(num==1){
cr.open(1);//调用Controller类中的open方法,并调取第2个数组,即DVD类中的open方法
do{
System.out.println("请选择你的操作:暂停 or切换");
String a=sc.next();
if(a.equals("暂停")){
cr.stop(1);//调用Controller类中的stop方法,并调取第2个数组,即DVD类中的stop方法
}
else if (a.equals("切换")){
cr.play(1);//调用Controller类中的play方法,并调取第2个数组,即DVD类中的play方法
}}while(true);
}else if(num==2){
cr.open(0);//调用Controller类中的open方法,并调取第1个数组,即CD类中的stop方法
do{
System.out.println("请选择你的操作:暂停 or切换");
String a=sc.next();
if(a.equals("暂停")){
cr.stop(0);//调用Controller类中的stop方法,并调取第1个数组,即CD类中的stop方法
}else if(a.equals("切换"))
{
cr.play(0);//调用Controller类中的play方法,并调取第1个数组,即CD类中的play方法
}}while(true);
}else if(num==3){
cr.open(2);//调用Controller类中的open方法,并调取第3个数组,即Tape类中的open方法
do{
System.out.println("请选择你的操作:暂停or切换");
String a=sc.next();
if(a.equals("暂停")){
cr.stop(2);//调用Controller类中的stop方法,并调取第3个数组,即Tape类中的stop方法
}else if(a.equals("切换")){
cr.play(2);//调用Controller类中的play方法,并调取第3个数组,即Tape类中的play方法
}}while(true);
}else{
System.out.println("输入错误!");
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Test t=new Test();
t.Test();
}
}