多彩的声音-课后程序(JAVA基础案例教程-黑马程序员编著-第四章-课后作业)

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

记得 关注,收藏,评论哦,作者将持续更新。。。。

【案例介绍】

  1. 案例描述

设计和实现一个Soundable发声接口,该接口具有发声功能,同时还能调节声音大小。

Soundable接口的这些功能将由有3种声音设备来实现,他们分别是收音机Radio、随身听Walkman、手机MobilePhone。最后还需设计一个应用程序类来使用这些实现Soundable接口的声音设备。程序运行时,先询问用户想哪个设备,用户选择设备后,程序按照该设备的工作方式打印发出的发音。

本案例要求使用抽象类实现。

  1. 运行结果

【案例分析】

1)通过任务的描述可知,此程序包含了一个发声接口SoundableSoundable接口的有三个声音设备实现类实现了Soundable接口,分别是收音机类Radio,随身听类Walkman和手机类Mobilephon

2RadioWalkmanMobilePhon这三个声音设备实现类需要分别实现Soundable接口接口的相关功能。

3)然后,还需设计一个应用程序类来使用这些实现Soundable接口的声音设备。

4)最后编写测试类,在main()方法中,编写程序,使用户可以自主选择要使用的设备;创建使用设备的对象,根据用户选择的声音设备,调用相关方法,模拟使用声音设备对应的功能。

【案例实现】

Soundable.java

  1. public interface Soundable {
  2.     // 发出声音
  3.     public void playSound() ;
  4.     // 降低声音
  5.     public void decreaseVolume();
  6.    // 停止声音
  7.     public void stopSound();
  8. }

上述代码中,创建了一个Soundable接口,在接口中定义了三个方法playSound()decreaseVolume()stopSound()

SampleDisplay.java

  1. import java.util.Scanner;
  2. public class SampleDisplay {
  3.      public void display(Soundable soundable) {
  4.             soundable.playSound();
  5.             System.out.println("您是否要降低音量?");
  6.             System.out.println("1-  2-");
  7.             Scanner in = new Scanner(System.in);
  8.             if(in.nextLine().equals("1")) {
  9.              soundable.decreaseVolume();
  10.             }
  11.             System.out.println("您是否要关机?");
  12.             System.out.println("1-  2-");
  13.             Scanner ins = new Scanner(System.in);
  14.             if(in.nextLine().equals("1")) {
  15.                 soundable.stopSound();
  16.             }
  17.         }
  18. }

上述代码中,创建了一个SampleDisplay类,在SampleDisplay类中编写了display(Soundable soundable)方法,根据传入的声音设备的对象,调用相关方法,模拟使用声音设备对应的功能。

Radio.java

  1. public class Radio implements Soundable{
  2.     @Override
  3.     public void playSound() {
  4.         System.out.println("收音机播放广播:第八套小学生广播体操");
  5.     }
  6.     @Override
  7.     public void decreaseVolume() {
  8.         System.out.println("已降低收音机音量。");
  9.     }
  10.     @Override
  11.     public void stopSound() {
  12.         System.out.println("已关闭收音机。");
  13.     }
  14. }

上述代码中,创建了一个Radio类并实现了Soundable接口,同时,实现了Soundable接口的三个方法:playSound()decreaseVolume()stopSound()

Walkman.java

  1. public class Walkman implements Soundable{
  2.     @Override
  3.     public void playSound() {
  4.         System.out.println("正在播放歌曲:七里香");
  5.     }
  6.     @Override
  7.     public void decreaseVolume() {
  8.         System.out.println("已降低随身听音量");
  9.     }
  10.     @Override
  11.     public void stopSound() {
  12.         System.out.println("已关闭随身听");
  13.     }
  14. }

上述代码中,创建了一个Walkman类并实现了Soundable接口,同时,实现了Soundable接口的三个方法:playSound()decreaseVolume()stopSound()

MobilePhone.java

  1. public class MobilePhone implements Soundable{
  2.     @Override
  3.     public void playSound() {
  4.         System.out.println("手机发出来电铃声:叮当 叮当");
  5.     }
  6.     @Override
  7.     public void decreaseVolume() {
  8.         System.out.println("已降低手机音量");
  9.     }
  10. @Override
  11. public void stopSound() {
  12.     System.out.println("已关闭手机");
  13.   } 
  14. }

上述代码中,创建了一个MobilePhone类并实现了Soundable接口,同时,实现了Soundable接口的三个方法:playSound()decreaseVolume()stopSound()

TestDemo.java

  1. import java.util.Scanner;
  2. public class TestDemo {
  3.     public static void main(String[] args) {
  4.         Scanner in = new Scanner(System.in);
  5.         System.out.println("你想听什么?请输入:");
  6.         System.out.println("0-收音机  1-随身听  2-手机");
  7.         int choice;
  8.         choice = in.nextInt();
  9.         SampleDisplay sampledisplay = new SampleDisplay();
  10.         if (choice == 0)
  11.             sampledisplay.display(new Radio());
  12.         else if(choice == 1)
  13.             sampledisplay.display(new Walkman());
  14.         else if(choice == 2)
  15.             sampledisplay.display(new MobilePhone());
  16.         else 
  17.             System.out.println("您的输入有误,请重新输入!");
  18.         in.close();
  19.     }
  20. }

上述代码中,首先创建了一个sampledisplay对象,然后,根据用户选择使用的声音设备,通过sampledisplay对象调用display()方法并传入声音设备对象,模拟使用声音设备相关的功能。

  • 3
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

xiaozhima-dun

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值