需求:
使用面向对象编程模拟;设计一个电脑对象,可以安装两个usb接口
鼠标:被安装时可以完成接入,调用点击,拔出功能
键盘:被安装时可以完成接入,调用打字,拔出功能
分析:
定义一个usb接口(申明usb设备的规范必须是:可以接入和拔出)
提供2个usb实现类代表鼠标和键盘,让其实现usb接口,并且分别定义独有功能
创建电脑对象,创建2个usb实现对象,分别安装到电脑并出发功能的执行
创建一个接口规范
public interface Usb {
void connect();//接入功能
void unconnect(); //拔出功能
}
创建一个鼠标类
/**
* 鼠标
*/
public class Mouse implements Usb{
private String name;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
@Override
public void connect() {
// TODO Auto-generated method stub
System.out.println(name+"鼠标已插入");
}
@Override
public void unconnect() {
// TODO Auto-generated method stub
System.out.println(name+"鼠标已拔出");
}
/**
* 鼠标可以点击,鼠标的独立功能
*/
public void click() {
System.out.println(name+"鼠标正在点击");
}
public Mouse(String name) {
super();
this.name = name;
}
}
创建一个键盘类
public class KeyBoard implements Usb {
private String name;//键盘名称
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
public KeyBoard(String name) {
super();
this.name = name;
}
@Override
public void connect() {
// TODO Auto-generated method stub
System.out.println("name"+"键盘设备已连接");
}
@Override
public void unconnect() {
// TODO Auto-generated method stub
System.out.println("name"+"键盘设备已拔出");
}
public void input() {
System.out.println(name+"正在输入文字");
}
}
创建一个电脑类
public class Computer {
private String name;
/**
* @return the name
*/
public String getName() {
return name;
}
/**
* @param name the name to set
*/
public void setName(String name) {
this.name = name;
}
/**
* 安装usb
* @param a
*/
public void usbinstall(Usb usb) {//多态的应用
usb.connect();//设备连接成功
//私有方法先判断在强制转换
if(usb instanceof Mouse) {
Mouse mouse=(Mouse) usb;
mouse.click();//鼠标独有的功能
}
else if(usb instanceof KeyBoard) {
KeyBoard keyBoard =(KeyBoard) usb;
keyBoard.input(); //键盘独有的功能
}
}
public void run() {
System.out.println(name+"电脑正在开机");
}
}
测试一下
public class Test {
public static void main(String[] args) {
// TODO Auto-generated method stub
Computer computer=new Computer();//创建电脑对象
computer.setName("联想");
Usb m=new Mouse("惠普");//买个个鼠标
computer.run();//电脑开机
computer.usbinstall(m);
}
}