定义一个接口 MediaPlayer,表示家庭影院的一个设备。MediaPlayer 中 包含 play(),stop(), open()三个方法,分别表示播放、停止和开仓功能。...

该博客介绍了如何使用Java设计一个多媒体播放器系统,包括定义一个名为MediaPlayer的接口,以及实现了该接口的DVDPlayer、CDPlayer和TapePlayer类。MediaPlayer接口包含play(), stop()和open()三个方法,分别对应播放、停止和开仓功能。Controller类作为控制器,用于操作不同类型的播放器,并通过构造方法初始化了不同类型的播放器实例。" 114222025,10595302,PHP路由与nginx rewrite实战,"['PHP', 'web开发', '框架', '服务器配置', 'URL重定向']

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
    }
}

转载于:https://my.oschina.net/u/3715020/blog/1574774

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值