java案例9:多彩的声音

思路:

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

 1.包含的接口
 发声接口Soundable,Soundable接口的有三个声音设备实现类实现了Soundable接口,分别是
 收音机类 Radio
 随身听类 Walkman
 手机类 Mobilephone
 2.Radio、Walkman和MobilePhone这三个声音设备实现类需要分别实现Soundable接口的相关功能。
 3.然后,设计一个应用程序类来使用这些实现Soundable接口的声音设备
 4.编写测试类,在main()方法中编写程序,使用户可以自主选择要是用的设备

 */

代码:

代码结构:

 测试类:

package base.base009;

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

 1.包含的接口
 发声接口Soundable,Soundable接口的有三个声音设备实现类实现了Soundable接口,分别是
 收音机类 Radio
 随身听类 Walkman
 手机类 Mobilephone
 2.Radio、Walkman和MobilePhone这三个声音设备实现类需要分别实现Soundable接口的相关功能。
 3.然后,设计一个应用程序类来使用这些实现Soundable接口的声音设备
 4.编写测试类,在main()方法中编写程序,使用户可以自主选择要是用的设备


 */

import java.util.Scanner;

public class Test09 {
    public static void main(String[] args) {
        System.out.println("请输入想要连接的设备");
        System.out.println("1:收音机");
        System.out.println("2:随身听");
        System.out.println("3:手机");

        Scanner sc = new Scanner(System.in);

        int a = sc.nextInt();

        UseSound user = new UseSound();


        if(a==1){
            System.out.println("~~~~~~~~~~~~~~~~~~~~收音机~~~~~~~~~~~~~~~~~~~~");
            user.use(new Radio());
        }
        else if(a==2){
            System.out.println("~~~~~~~~~~~~~~~~~~~~随身听~~~~~~~~~~~~~~~~~~~~");
            user.use(new Walkman());
        }
        else if(a==3){
            System.out.println("~~~~~~~~~~~~~~~~~~~~手机~~~~~~~~~~~~~~~~~~~~");
            user.use(new Mobilephone());
        }
        else{
            System.out.println("输入的数据有误,请重新输入");
        }

    }
}

Mobilephone类

package base.base009;

public class Mobilephone implements Soundable {
    @Override
    public void playSound() {
        System.out.println("已匹配手机设备,即将播放《Susan说》...");
    }

    @Override
    public void lower() {
        System.out.println("已降低音量");

    }

    @Override
    public void stopSound() {
        System.out.println("音乐已暂停...");

    }
}

Radio类:

package base.base009;

public class Radio implements Soundable{
    @Override
    public void playSound() {
        System.out.println("播放深夜电台,正在朗诵《红与黑》......");
    }

    @Override
    public void lower() {
        System.out.println("已降低音量");

    }

    @Override
    public void stopSound() {
        System.out.println("电台已暂停...");

    }
}

Soundable接口:

package base.base009;

/*
抽象方法:
播放声音 playSound();
调节音量 lower();
关闭声音 stopSound();
 */

public interface Soundable {
    public abstract void playSound();
    public abstract void lower();
    public abstract void stopSound();

}

UseSound类:

package base.base009;

import java.util.Scanner;

public class UseSound {
    public void use(Soundable s){
        s.playSound();
        System.out.println("是否要降低音量? 1--是;2--否");
        Scanner sc = new Scanner(System.in);
        int a = sc.nextInt();

        if(a == 1){
            s.lower();
            System.out.println("是否要关闭设备? 1--是");
            int b = sc.nextInt();
            if(b == 1){
                s.stopSound();
            }else{
                System.out.println("音乐播放中...");
            }

        }else if(a == 2){
            System.out.println("是否要关闭设备? 1--是");
            int b = sc.nextInt();
            if(b == 1){
                s.stopSound();
            }else{
                System.out.println("音乐播放中...");
            }
        }
        else{
            System.out.println("请重新输入!");
        }
    }
}

Walkman类:

package base.base009;

public class Walkman implements Soundable {
    @Override
    public void playSound() {
        System.out.println("您正在使用随身听设备,即将播放《春风吹》...");
    }

    @Override
    public void lower() {
        System.out.println("已降低音量");

    }

    @Override
    public void stopSound() {
        System.out.println("音乐已暂停...");

    }
}

猜你喜欢

转载自blog.csdn.net/weixin_54446335/article/details/131509513