第十章案例 电脑案例

案例介绍:

定义USB接口(具备开启功能、关闭功能),笔记本要使用USB设备,即笔记本在生产时需要预留可以插入USB设备的USB接口,即就是笔记本具备使用USB设备的功能,但具体是什么USB设备,笔记本并不关心,只要符合USB规格的设备都可以。鼠标和键盘要想能在电脑上使用,那么鼠标和键盘也必须遵守USB规范,不然鼠标和键盘的生产出来无法使用

进行描述笔记本类,实现笔记本使用USB鼠标、USB键盘

l  USB接口,包含开启功能、关闭功能

l  笔记本类,包含运行功能、关机功能、使用USB设备功能

l  鼠标类,要符合USB接口

l  键盘类,要符合USB接口


案例分析:

阶段一:

使用笔记本,笔记本有运行功能,需要笔记本对象来运行这个功能

阶段二:

想使用一个鼠标,又有一个功能使用鼠标,并多了一个鼠标对象。

阶段三:

还想使用一个键盘 ,又要多一个功能和一个对象

问题:每多一个功能就需要在笔记本对象中定义一个方法,不爽,程序扩展性极差。

降低鼠标、键盘等外围设备和笔记本电脑的耦合性。


实现代码:

/*
 *  自定义的USB接口类
 *  规范,就是抽象方法
 *  开,关
 */
public interface USB {
public abstract void open();
public abstract void close();
}

/*
 *  定义笔记本类
 *  功能: 开机,关机,使用USB设备
 */
public class Computer {
public void openComputer(){
System.out.println("笔记本开机");
}

public void closeComputer(){
System.out.println("笔记本关机");
}

//使用USB设备方法,哪个设备
//方法的参数,就是USB设备
public void useUSB(USB usb){// USB usb = new Mouse()
usb.open();
usb.close();
}

}

/*
 *  自定义的鼠标类
 *  满足USB接口规范
 *  实现USB接口,重写抽象方法
 */
public class Mouse implements USB{
public void open(){
System.out.println("开启鼠标");
}

public void close(){
System.out.println("关闭鼠标");
}
}

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

public class Test {
public static void main(String[] args) {
//创建笔记本对象,调用笔记本的功能
Computer com = new Computer();
com.openComputer();

//调用笔记本使用USB设备的方法
//参数,是USB接口类型,接口不能建立对象
//调用方法,传递USB接口的实现类的对象
//Mouse m = new Mouse();
com.useUSB(new Mouse());
//使用USB设备,使用键盘
com.useUSB(new Keyboard());

com.closeComputer();
}
}

运行结果:


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值