接口实现手机功能

简介: 接口实现手机功能

1. 实现思路


2. 编写类及接口


3. 编写测试类、让手机播放音频、发信息和通电话


4. 让智能手机上网、播放视频、照相、发信息和通电话


TheakePictures接口
//照相
 public interface TheakePictures {
      void takePictures();
  }``
NetWork接口
//连接网络
public interface NetWork {
    void netWorkConn();
}
PlayWiring 接口
//播放
public interface PlayWiring {
    void play();
/**
 * 手机抽象类
 */
public abstract  class Handset {
    private  String brand;
    private  String type;
    public abstract void sendInfo();
    public abstract void call();
    public abstract void info();
    public String getBrand() {
        return brand;
    }
    public void setBrand(String brand) {
        this.brand = brand;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public abstract void show();
}
/**
 * 手机抽象类
 */
public abstract  class Handset {
    private  String brand;
    private  String type;
    public abstract void sendInfo();
    public abstract void call();
    public abstract void info();
    public String getBrand() {
        return brand;
    }
    public void setBrand(String brand) {
        this.brand = brand;
    }
    public String getType() {
        return type;
    }
    public void setType(String type) {
        this.type = type;
    }
    public abstract void show();
}
/**
 * 智能手机类
 */
public class AptitudeHandset extends Handset implements NetWork,TheakePictures,PlayWiring{
    @Override
    public void sendInfo() {
        System.out.println(this.getBrand()+this.getType()+"发信息");
    }
    @Override
    public void call() {
        System.out.println(this.getBrand()+this.getType()+"打电话");
    }
    @Override
    public void info() {
        System.out.println(this.getBrand()+this.getType()+"收信息");
    }
    @Override
    public void netWorkConn() {
        System.out.println(this.getBrand()+this.getType()+"上网");
    }
    @Override
    public void play() {
        System.out.println(this.getBrand()+this.getType()+"播放视频");
    }
    @Override
    public void takePictures() {
        System.out.println(this.getBrand()+this.getType()+"照照片");
    }
    public void show(){
        this.netWorkConn();
        this.call();
        this.sendInfo();
        this.takePictures();
        this.play();
    }
}
/**
 * 普通手机类
 */
public class CommonHandset extends Handset implements PlayWiring {
    @Override
    public void sendInfo() {
        System.out.println(this.getBrand()+this.getType()+"手机发信息");
    }
    @Override
    public void call() {
        System.out.println(this.getBrand()+this.getType()+"手机打电话");
    }
    @Override
    public void info() {
        System.out.println(this.getBrand()+this.getType()+"手机收信息");
    }
    @Override
    public void play() {
        System.out.println(this.getBrand()+this.getType()+"手机播放视频");
    }
    @Override
    public void show() {
        this.call();
        this.sendInfo();
        this.play();
    }
}


import java.util.Scanner;
/**
 * 装配手机类
 */
public class Host {
    Scanner sc=new Scanner(System.in);
    int brandId,typeId;//手机品牌 手机型号
    public Handset select(int type){
        Handset handset;
        if(type==1){
            /**
             * 实现智能手机功能
             */
            handset=new AptitudeHandset();
            System.out.println("1、小米 2、华为、 3、苹果");
            System.out.println("请选择手机品牌:");
            brandId=sc.nextInt();
            switch (brandId){
                case 1:
                    //设置手机品牌
                    handset.setBrand("小米");
                    // System.out.println(aptitudeHandset.getBrand());
                    System.out.println("1、红米 2、小米note 3、小米8");
                    System.out.println("请选择小米手机类型");
                    typeId=sc.nextInt();
                    //设置小米手机类型
                    if(typeId==1){
                        handset.setType("红米");
                        }else if (typeId==2){
                                handset.setType("小米note");
                            }else {
                                handset.setType("小米8");
                            }
                break;
                case 2:
                    handset.setBrand("华为");
                    System.out.println("1、荣耀  2、nava  3、华为10");
                    System.out.println("请选择华为手机类型");
                    typeId=sc.nextInt();
                    //设置小米手机类型
                    if(typeId==1){
                         handset.setType("荣耀 ");
                    }else if (typeId==2){
                         handset.setType("nava");
                    }else {
                         handset.setType("华为10");
                          }
                break;
                default:
                    handset.setBrand("苹果");
                    System.out.println("1、iphone7  2、iphoneX  3、iphone9");
                    System.out.println("请选择华为手机类型");
                    typeId=sc.nextInt();
                    //设置小米手机类型
                    if(typeId==1){
                        handset.setType("iphone7 ");
                    }else if (typeId==2){
                        handset.setType("iphoneX");
                    }else {
                        handset.setType("iphone9");
                    }
            break;
            }
        }else{
            /**
             * 实现普通手机功能
             */
            handset=new CommonHandset();
            System.out.println("1、诺基亚 2、金立手机 3、三星");
            System.out.println("请选择普通手机品牌");
            brandId=sc.nextInt();
            switch (brandId){
                case 1:
                    //设置手机品牌
                    handset.setBrand("诺基亚");
                    System.out.println("1、210黑色直板 2、105老人备用机 3、3.1plus移动版");
                    System.out.println("请选择诺基亚手机类型");
                    typeId=sc.nextInt();
                    if (typeId==1){
                        handset.setType("210黑色直板");
                    }else if(typeId==2){
                        handset.setType("105老人备用机");
                    }else {
                        handset.setType("3.1plus移动版");
                    }
                    break;
                case 2:
                    handset.setBrand("金立");
                    System.out.println("1、语音王 2、A350");
                    System.out.println("请选择金立手机类型");
                    typeId=sc.nextInt();
                    if(typeId==1){
                        handset.setType("语音王");
                    }else {
                        handset.setType("A350");
                    }
                    break;
                default:
                    handset.setBrand("三星");
                    System.out.println("1、B289电信 2、E1150老人机");
                    System.out.println("请选择三星手机类型");
                    typeId=sc.nextInt();
                    if(typeId==1){
                        handset.setType("B289电信");
                    }else {
                        handset.setType("E1150老人机");
                    }
                    break;
            }
        }
        return  handset;
    }
}


import java.util.Scanner;
/**
 * 测试类
 */
public class Test {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        Host host=new Host();
//        AptitudeHandset aptitudeHandset=new AptitudeHandset();
//        CommonHandset commonHandset=new CommonHandset();
        Handset handset;
        System.out.println("1、智能手机 2、普通手机");
        System.out.println("请选择手机类型:");
        int chiooce=sc.nextInt();
        handset=host.select(chiooce);
        handset.show();
    }
}







目录
相关文章
|
1月前
|
Java
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
【Java每日一题】— —第二十一题:编程把现实生活的手机事物映射成一个标准类Phone,并定义一个测试类PhoneDemo测试Phone类的功能
35 0
|
1月前
|
安全 Java 数据库连接
【Java每日一题】——第四十四题:综合案例:编程模拟智能手机和普通手机功能。
【Java每日一题】——第四十四题:综合案例:编程模拟智能手机和普通手机功能。
40 0
|
1月前
|
数据挖掘 数据处理 API
使用TransBigData组件实现个人手机定位功能
使用TransBigData组件实现个人手机定位功能
21 0
|
2月前
|
Android开发
用Airtest快速实现手机文件读写与删除功能
用Airtest快速实现手机文件读写与删除功能
|
8月前
|
安全 Java 数据库
SpringSecurity-9-实现通过手机短信进行认证功能
SpringSecurity-9-实现通过手机短信进行认证功能
82 1
|
3月前
|
移动开发 JavaScript 前端开发
vue实现调用手机拍照、录像功能
vue实现调用手机拍照、录像功能
149 0
|
4月前
|
传感器 物联网 Android开发
【Android App】物联网中查看手机支持的传感器及实现摇一摇功能-加速度传感器(附源码和演示 超详细)
【Android App】物联网中查看手机支持的传感器及实现摇一摇功能-加速度传感器(附源码和演示 超详细)
62 1
|
4月前
|
XML Java 定位技术
【Android App】定位导航GPS中开启手机定位功能讲解及实战(附源码和演示 超详细)
【Android App】定位导航GPS中开启手机定位功能讲解及实战(附源码和演示 超详细)
112 0
|
4月前
|
XML 安全 Java
Android Studio App开发之广播组件Broadcast的讲解及实战(包括收发标准、有序、静态广播实现手机震动功能 附源码)
Android Studio App开发之广播组件Broadcast的讲解及实战(包括收发标准、有序、静态广播实现手机震动功能 附源码)
37 0
|
4月前
|
移动开发 JavaScript 前端开发
vue实现调用手机拍照、录像功能
vue实现调用手机拍照、录像功能
170 1

热门文章

最新文章