【案例 4-3】多彩的声音

【案例介绍】

运行结果:

请添加图片描述

【案例目标】

  • 学会分析“发声接口程序设计”实现的逻辑思路。
  • 能够独立完成“发声接口程序设计”的源代码编写、编译及运行。
  • 掌握接口的实现方式。

【案例分析】

(1)通过任务的描述可知,此程序包含了一个发声接口 Soundable,Soundable 接口的
有三个声音设备实现类实现了 Soundable 接口,分别是收音机类 Radio,随身听类 Walkman
和手机类 Mobilephon。
(2)Radio、Walkman 和 MobilePhon 这三个声音设备实现类需要分别实现 Soundable 接
口接口的相关功能。
(3)然后,还需设计一个应用程序类来使用这些实现 Soundable 接口的声音设备。
(4)最后编写测试类,在 main()方法中,编写程序,使用户可以自主选择要使用的设
备;创建使用设备的对象,根据用户选择的声音设备,调用相关方法,模拟使用声音设备对
应的功能。

【案例实现】

import java.util.Scanner;
import java.util.Scanner;

interface Soundable {
    // 发出声音
    public void playSound();

    // 降低声音
    public void decreaseVolume();

    // 停止声音
    public void stopSound();
}


class SampleDisplay {
    public void display(Soundable soundable) {
        soundable.playSound();
        System.out.println("您是否要降低音量?");
        System.out.println("1-是     2-否");
        Scanner scan = new Scanner(System.in);
        int choice = scan.nextInt();
        switch (choice) {
            case 1:
                soundable.decreaseVolume();
                break;
            case 2:
                break;
            default:
                System.out.println("请在可选择范围内选择!");
        }
        System.out.println("您是否要关机?");
        System.out.println("1-是     2-否");
        choice = scan.nextInt();
        switch (choice) {
            case 1:
                soundable.stopSound();
                break;
            case 2:
                break;
            default:
                System.out.println("请在可选择范围内选择!");
        }
    }
}

class Radio implements Soundable {
    @Override
    public void playSound() {
        System.out.println("收音机发出声音:滋滋滋~~~");
    }

    @Override
    public void decreaseVolume() {
        System.out.println("已降低收音机音量");
    }

    @Override
    public void stopSound() {
        System.out.println("已关闭收音机");
    }
}


class Walkman implements Soundable {
    @Override
    public void playSound() {
        System.out.println("随身听发出声音:铃铃~~~");
    }

    @Override
    public void decreaseVolume() {
        System.out.println("已降低随身听音量");
    }

    @Override
    public void stopSound() {
        System.out.println("已关闭随身听");
    }
}

class MobilePhone implements Soundable {
    @Override
    public void playSound() {
        System.out.println("手机发出来电铃声:叮当、叮当");
    }

    @Override
    public void decreaseVolume() {
        System.out.println("已降低手机音量");
    }

    @Override
    public void stopSound() {
        System.out.println("已关闭手机");
    }
}

public class TestDemo {
    public static void main(String[] args) {
        System.out.println("你想听什么?请输入:");
        System.out.println("0-收音机   1-随身听   2-手机");
        Scanner scan = new Scanner(System.in);
        int choice = scan.nextInt();
        SampleDisplay sampleDisplay = new SampleDisplay();
        switch (choice) {
            case 0:
                Radio radio = new Radio();
                sampleDisplay.display(radio);
                break;
            case 1:
                Walkman walkman = new Walkman();
                sampleDisplay.display(walkman);
                break;
            case 2:
                MobilePhone mobilePhone = new MobilePhone();
                sampleDisplay.display(mobilePhone);
                break;
            default:
                System.out.println("请在可选择范围内选择!");
                break;
        }
    }
}
  • 7
    点赞
  • 38
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值