面向对象程序设计和常用类 声音设备模拟

面向对象程序设计和常用类 声音设备模拟:根据下图所描述的运输货物场景下的类的体系结构,请用面向对象的类、继承、接口等概念用Java程序实现该体系结构,并按如下要求编写主方法测试你的实现:

(1) Soundable是一个接口,包含三个抽象方法:play()表示音响设备发声,changeVolume()表示音响设备调整声音,stop()表示设备关机。

interface Soundable{
	abstract void play();
	abstract void changeVolume();
	abstract void stop();
}

(2) MP3和Phone是Soundable的实现类.实现类的方法中只需要显示对应的音响设备对应上面(1)的行为说明。

import java.util.Scanner;
class MP3 implements Soundable{

	@Override
	public void play() {
		// TODO Auto-generated method stub
		System.out.println("mp3开机");
	}

	@Override
	public void changeVolume() {
		// TODO Auto-generated method stub
		System.out.println("确认音量调整");
	}

	@Override
	public void stop() {
		// TODO Auto-generated method stub
		System.out.println("mp3关机");
	}
	
}

(3) SmartPhone是Phone的子类。

import java.util.Scanner;

class Phone implements Soundable{

	@Override
	public void play() {
		// TODO Auto-generated method stub
		System.out.println("开机");
	}

	@Override
	public void changeVolume() {
		// TODO Auto-generated method stub
		System.out.println("确认音量调整");
	}

	@Override
	public void stop() {
		// TODO Auto-generated method stub
		System.out.println("关机");
	}
}
class SmartPhone extends Phone {
	
	}

(4) SampleDisplay是一个类,只包含一个display)方法,这个方法中先开启音响设备;然后提示用户是否需要调整音量(1:是,2∶否),根据用户的键盘输入在输入1时调用音响的changeVolume()方法;最后提示用户是否需要关机(1:是,2:否),根据用户的键盘输入在输入1时调用音响的stop()方法。

import java.util.Scanner;

public class SampleDisplay {
	public void display(Soundable soundable) {
		soundable.play();
		System.out.println("是否需要调整音量(1:是,2:否)");
		Scanner on_off = new Scanner(System.in);
		int turn1 = on_off.nextInt();
		if(turn1 == 1) {
			soundable.changeVolume();
		}else
		if(turn1 == 2) {
			System.out.println("取消音量调整");
		}else {
			System.out.println("输入无效");
		}
		System.out.println("是否需要关机(1:是,2:否)");
		Scanner cv = new Scanner(System.in);
		int turn2 = cv.nextInt();
		if(turn2 == 1) {
			System.out.println("确认关机");
			soundable.stop();
		}else
		if(turn2 == 2) {
			System.out.println("取消关机");
		}else {
			System.out.println("输入无效");
		}
	}
}

(5)在测试类的主方法中提示用户选择MP3、手机、智能手机,然后根据用户的选择调用所选择音响的display(方法,模拟音响设备的发声、调整音量、关机过程。

import java.util.Scanner;

public class SoundEquipments {
	public static void main(String[] args) {
		SampleDisplay yl = new SampleDisplay();
		System.out.println("请选择设备(1:MP3,2:手机,3:智能手机):");
		Scanner ch = new Scanner(System.in);
		int choice = ch.nextInt();
		switch(choice){
		case (1):{
			MP3 mp3 = new MP3() ;
			yl.display(mp3);
			break;
		}
		case (2):{
			Phone phone = new Phone();
			yl.display(phone);
			break;
		}
		case (3):{
			SmartPhone smartPhone = new SmartPhone();
			yl.display(smartPhone);
			break;
		}
		}
		ch.close();
	}
}

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值