按照要求编写程序:

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

increaseVolume( ); decreaseVolume( ); stopSound( );playSound( )分别代表是增大音量,减少音量,停止,开始播放。

Soundable 接口的这些功能将会由 3 种声音设备来具体实现 , 它们分别是收音机 Radio 、随身昕 Walkman 和手机 Mobilephone 。

设计一个类people,该类中包含有年龄和姓名两个数据属性,和一个收听音响设备的属性,而该收听行为的接口参数为接口soundable类型。

最后编写一个测试类,应用main方法进行测试,在程序运行时, 先询问用户想听哪种设备 , 然后程序就会按照该设备的工作方式来发出声音。(所有的行为均可以以简单的输入相应的字符串进行代替)

源代码(可运行):

import java.util.Scanner;public class SoundTest {public static void main(String[] args) {// TODO Auto-generated method stubpeople p=new people();int i;Scanner input=new Scanner(System.in);Soundable[] a=new Soundable[3];a[0]=new Radio();a[1]=new Walkman();a[2]=new Mobilephone();System.out.println("请用户输入想要收听的设备:");i=input.nextInt();p.listen(a[i]);a[i].increaseVolume();a[i].decreaseVolume();a[i].stopSound();}}interface Soundable{void increaseVolume();void decreaseVolume();void stopSound();void playSound();}class Radio implements Soundable{public void increaseVolume(){System.out.println("增大收音机音量!");}public void decreaseVolume(){System.out.println("降低收音机音量!");}public void stopSound(){System.out.println("停止播放收音机!");}public void playSound(){System.out.println("开始播放收音机!");}}class Walkman implements Soundable{public void increaseVolume(){System.out.println("增大随身听音量!");}public void decreaseVolume(){System.out.println("降低随身听音量!");}public void stopSound(){System.out.println("停止播放随身听!");}public void playSound(){System.out.println("开始播放随身听!");}}class Mobilephone implements Soundable{public void increaseVolume(){System.out.println("增大手机音量!");}public void decreaseVolume(){System.out.println("降低手机音量!");}public void stopSound(){System.out.println("停止播放手机!");}public void playSound(){System.out.println("开始播放手机!");}}class people{public int age;public String name;public void listen(Soundable s){s.playSound();}}

运行结果展示:

设计实现一个Soundable接口(含可运行代码)相关推荐

  1. 手把手教你如何自己设计实现一个深度学习框架(附代码实现)

    作者丨王桂波@知乎(已授权) 来源丨https://zhuanlan.zhihu.com/p/78713744 编辑丨极市平台 导读 本文首先从深度学习的流程开始分析,对神经网络中的关键组件抽象,确定 ...

  2. 按照要求设计一个Student类,并按照要求进行测试(含可运行代码)

    按照要求完成代码: 1.声明student类: 数据属性包含:学号,姓名,英语成绩,数学成绩,java成绩.总成绩 方法包含:构造方法.get方法.set方法.tosring方法.equal方法.co ...

  3. Java求三角形面积(含可运行代码)

    问题描述: 自定义类Sanj,其中有成员 x,y,z,作为三边长,构造方法Sanj(a,b,c)分别给x,y,z赋值,方法求面积getArea和显示三角形信息(三个边长)showInfo.要求:当输入 ...

  4. java设计一个形状shape_编程定义一个图形接口 Shape, 内含2个抽象方法 get... JAVA编程题:编一个程序包含一个接口 shape(该接......

    导航:网站首页 > 编程定义一个图形接口 Shape, 内含2个抽象方法 get... JAVA编程题:编一个程序包含一个接口 shape(该接... 编程定义一个图形接口 Shape, 内含2 ...

  5. [基础题] * 9.(*)设计一个Student接口,以一维数组存储一个班级的学生姓名。

    /*[基础题]  * 9.(*)设计一个Student接口,以一维数组存储一个班级的学生姓名.  * 该接口中有一个抽象方法getStudentName().  * 设计一个类Union,该类实现接口 ...

  6. 如何设计USB TYPE-C接口的显示器和电视机,形态三独立功能的双USB-C接口 +一个HDMI接口的显示器

    接着形态一跟形态二的讲述,大家对于tupe-c的显示器有了一定的了解, 接下来我们来讲一下第三种形态,独立功能的双USB-C接口 +一个HDMI接口的显示器. 这种显示器具有双USB-C接口,但是两个 ...

  7. 如何设计好一个接口?

    如何设计好一个接口? 前言 安全性 稳定性 健壮性 限流 接口响应超时处理 可靠性 幂等性 事务一致性 分布式事务 高效性 线程安全问题 可维护性 可读性 前言 接口对于我们系统来说是必不可少的,可以 ...

  8. 设计一个Shape接口和它的两个实现类Square和Circle

    设计一个Shape接口和它的两个实现类Square和Circle. (1)Shape接口中有一个抽象方法area(),方法接收有一个double类型的参数,返回一个double类型的结果. inter ...

  9. java做一个客房管理系统定制_基于JAVA酒店客房管理系统的设计与实现(JSP,MySQL)(含录像)...

    基于JAVA酒店客房管理系统的设计与实现(JSP,MySQL)(含录像)(毕业论文12000字,程序代码,MySQL数据库) 本酒店管理系统在功能模块主要分为两大方面,即用户功能模块和管理员功能模块. ...

最新文章

  1. findwindowex子窗口类型有哪几种_光学玻璃有哪几种类别?一文告诉你
  2. linux 编译器错误,linux – GHCi – Haskell编译器错误 – /home/user/.ghci归其他人所有,IGNORING...
  3. 利用Attribute和IErrorHandler处理WCF全局异常
  4. 对‘pthread_create’未定义的引用_【学习贴士】引用文献不积极,APA Guideline 帮助你...
  5. python课程将主要介绍哪些内容-Python课程详细介绍
  6. mysql 查询不为0的数据_查询数据库中所有记录总数不为0的数据表名称
  7. 大数据技术之kafka (第 3 章 Kafka 架构深入) Zookeeper 在 Kafka 中的作用
  8. JS格式化时间之后少了8个小时
  9. rpm方式安装MySQL-5.6
  10. web基础知识梳理(笔记)
  11. 用代码排出自己的名字
  12. ServletContextListener小小总结
  13. 基础集合论笔记 目录
  14. 台达PLC解密次数限制
  15. 关于通信知识的思维导图
  16. selenium+python自动化106 - 滑动 iframe 上的滚动条
  17. java获取outlook 日历,Outlook 日历 API 概述
  18. dubbo异常源码分析处理
  19. 2021年化工自动化控制仪表新版试题及化工自动化控制仪表找解析
  20. android 源代码 毛笔,android中实现毛笔效果(View 中绘图)

热门文章

  1. 友情链接交换标准注意事项
  2. 会声会影下载安装操作步骤解析(电脑小白)
  3. CTR预测经典模型GBDT+LR
  4. 华为荣耀2s设置虚拟服务器教程,荣耀路由2S怎么开启和关闭wifi
  5. windows_查看端口被占用情况、结束进程
  6. 如何修炼成大数据高手?
  7. Android 开源漫画项目ComicMTC
  8. docker下gitlab运行
  9. Django学习18 -- 富文本编辑器(Rich Edit)
  10. c++ :override的用法