笔记本电脑案例

3.1.案例介绍
定义USB接口(具备开启功能、关闭功能),笔记本要使用USB设备,即笔记本在生产时需要预留可以插入USB设备的USB接口,即就是笔记本具备使用USB设备的功能,但具体是什么USB设备,笔记本并不关心,只要符合USB规格的设备都可以。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,不然鼠标和键盘的生产出来无法使用
进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘
 USB接口,包含开启功能、关闭功能
 笔记本类,包含运行功能、关机功能、使用USB设备功能
 鼠标类,要符合USB接口
 键盘类,要符合USB接口
3.2 案例需求分析
阶段一:
使用笔记本,笔记本有运行功能,需要笔记本对象来运行这个功能
阶段二:
想使用一个鼠标,又有一个功能使用鼠标,并多了一个鼠标对象。
阶段三:
还想使用一个键盘 ,又要多一个功能和一个对象
问题:每多一个功能就需要在笔记本对象中定义一个方法,不爽,程序扩展性极差。
降低鼠标、键盘等外围设备和笔记本电脑的耦合性。
3.3 实现代码步骤
 定义鼠标、键盘,笔记本三者之间应该遵守的规则

 鼠标实现USB规则

 键盘实现USB规则

 定义笔记本

Computer.java文件:
```bash
package cn.sc.computer;
/*
      定义笔记本类
      功能: 运行功能、关机功能、使用USB设备功能
 */

public class Computer {
    //运行功能
    public void run(){

        System.out.println("笔记本运行");
    }
    //关机功能
    public void closeComputer(){
        System.out.println("笔记本关闭");
    }
    //使用USB设备功能,参数可以传递鼠标和键盘等多种移动设备,所以参数为鼠标和键盘的父类
    public void useUSB(USB usb){//体现多态
        usb.open();
        usb.close();
    }
   }
  

keyBoard.java文件:

package cn.sc.computer;

public class keyBoard  implements USB{
    public void open(){
        System.out.println("开启键盘");
    }
    public void close(){
        System.out.println("关闭键盘");
    }
}

Mouse.java文件:

package cn.sc.computer;

//符合usb接口
public class Mouse implements USB {
    public void open(){
        System.out.println("开启鼠标");
    }
    public void close(){
        System.out.println("关闭鼠标");
    }

}

USB.java文件:

package cn.sc.computer;

/*
     接口的规范:功能集合。  抽象方法
     1.开启功能   : 开启usb移动设备和笔记本他通讯
     2.关闭功能   : 关闭usb移动设备和笔记本他通讯
 */

public interface USB {
    //开启、关闭功能,抽象方法,public和abstract可以省略
    public abstract void open();
    public abstract void close();
}

Test.java文件测试类:

```bash
package cn.sc.computer;

public class Test {
    public static void main(String[] args) {
        //创建笔记本对象
        Computer cr=new Computer();
        cr.run();


        //使用鼠标
       USB useMouse=new Mouse();//自动进行向上转型
       cr.useUSB(useMouse);

       //使用键盘
       USB usekeyBoard=new keyBoard();//自动向上进行转型
       cr.useUSB(usekeyBoard);

       //笔记本关闭
       cr.closeComputer();

    }
}

运行结果:
在这里插入图片描述

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值