使用面向对象编程模拟:设计一个电脑对象,可以安装两个USB 设备
鼠标:安装时可以完成接入,调用点击功能,拔出功能
键盘:安装时可以完成接入,调用打字功能,拔出功能
步骤:这两个共有的功能可以创建一个接口
package com.itheima.demo2;
/**
* USB接口 == 规范
*/
public interface USB {
//插入,拔出
void connect();
void unconnect();
}
其次,在分别创建一个鼠标(Mouse)类,键盘(keyBoard)类
package com.itheima.demo2;
/**
* 实现类
*/
public class keyBoard implements USB{
private String name;
public keyBoard(String name) {
this.name = name;
}
@Override
public void connect(){
System.out.println(name + "成功连接了电脑~");
}
/**
* 独有功能
*/
public void keyDown(){
System.out.println(name + "敲击了,老弟666~~~");
}
@Override
public void unconnect(){
System.out.println(name + "成功从电脑拔出了~");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
package com.itheima.demo2;
/**
* 实现类
*/
public class Mouse implements USB{
private String name;
public Mouse(String name) {
this.name = name;
}
@Override
public void connect(){
System.out.println(name + "成功连接了电脑~");
}
/**
* 独有功能
*/
public void dbClick(){
System.out.println(name + "双击点亮小红心~~~");
}
@Override
public void unconnect(){
System.out.println(name + "成功从电脑拔出了~");
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
在创建一个电脑对象
package com.itheima.demo2;
public class computer {
private String name;
public computer(String name) {
this.name = name;
}
public void start(){
System.out.println(name + "开机了~~");
}
/**
* 提供安装USB设备的入口
* @return
*/
public void installUSB(USB usb){
//多态:usb == 可能是鼠标,可能是键盘
usb.connect();
// 独有功能:先判断,再强转
if(usb instanceof keyBoard){
keyBoard k = (keyBoard) usb;
k.keyDown();
}else if(usb instanceof Mouse){
Mouse m = (Mouse) usb;
m.dbClick();
}
usb.unconnect();
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
最后做一个测试类验证是否正确
package com.itheima.demo2;
/**
* 目标:USB设备虚拟
* 1.定义USB接口:接入,拔出
* 2.定义;两个USB是实现类:鼠标,键盘
* 3.创建一个电脑对象,创建USB设备对象,安装启动
*/
public class Test {
public static void main(String[] args) {
//创建电脑对象
computer c = new computer("外星人");
c.start();
//创建鼠标对象,键盘对象
USB U = new keyBoard("双飞燕");
c.installUSB(U);
USB M = new Mouse("爱国者");
c.installUSB(M);
}
}