接口使用--以计算机举例

接口使用,举例配置一个简易的计算机:

 1.定义一个显卡的接口:

interface VideoCard{
void display();
String getName();

}

 

 2.定义一个Cpu的接口:

interface PCPU{
 void run();
 String getName();
}

 

 3.实现显卡接口:

class ThreeColor implements VideoCard{

String name;
public ThreeColor(){

  name="Three Color Inc.";

}

public void display(){
  System.out.println("Three Color's VideoCard is working");
}

public String getName(){

 return name;

}

}

 

 4.实现Cpu接口:

class Core4Intel implements PCPU{

String name;

Core4Intel(){

   name = "Intel inc";

}

public void run(){

System.out.println("Cpu is running");
}

public String getName(){

 return name;

}

}

 

 5.定义主板,并使用显卡和cpu的接口:

class Mainboard{

VideoCard vc;
PCPU cpu;

String name;
Mainboard(){
 name= "Chen bin de mainboard";

}

void setVideoCard(VideoCard vc){

this.vc = vc;
}

void setCpu(PCPU cpu){

this.cpu = cpu;

}
void run(){
System.out.println(name);
System.out.println(cpu.getName());
cpu.run();

System.out.println(vc.getName());
vc.display();
System.out.println("mainboard is working");

}


}

 

 6.定义计算机,并实例化显卡,Cpu

class Computer{

 public static void main(String[] args){

  Mainboard m = new Mainboard();
  ThreeColor t= new ThreeColor();
  Core4Intel c = new Core4Intel();

  m.setCpu(c);
 m.setVideoCard(t);
 m.run();

}
}

 7.看看结果:

 

 

接口和抽象类的区别:

  接口是公开的,里面不能有私有的方法或变量,是用于让别人使用的,而抽象类是可以有私有方法或私有变量的,

  另外,实现接口的一定要实现接口里定义的所有方法,而实现抽象类可以有选择地重写需要用到的方法,一般的应用里,最顶级的是接口,然后是抽象类实现接口,最后才到具体类实现。

   还有,接口可以实现多重继承,而一个类只能继承一个超类,但可以通过继承多个接口实现多重继承,接口还有标识(里面没有任何方法,如Remote接口)和数据共享(里面的变量全是常量)的作用.
 

 

 

计算机接口的控制方式主要有程序查询方式、中断方式、直接存储器存取(DMA)方式等。 ### 程序查询方式 程序查询方式是由CPU通过程序不断查询I/O设备的状态,判断I/O设备是否准备好进行数据传输。当设备准备好时,CPU进行数据传输操作。这种方式的优点是控制简单,但CPU的利用率较低,因为CPU需要不断地查询设备状态,浪费了大量的时间。 示例:在一个简单的单片机系统中,要读取一个按键的状态。单片机的CPU会不断地查询按键对应的引脚电平,当检测到引脚电平变化时,就认为按键被按下,然后执行相应的操作。以下是一个简单的伪代码示例: ```python while True: if button_pin.read() == LOW: # 假设按键按下时引脚电平为低 # 执行按键按下后的操作 do_something() ``` ### 中断方式 中断方式是当I/O设备准备好进行数据传输时,向CPU发出中断请求信号。CPU在接收到中断请求后,暂停当前正在执行的程序,转去执行中断服务程序,完成数据传输操作。完成后,再返回原来的程序继续执行。这种方式提高了CPU的利用率,因为CPU不需要不断地查询设备状态,只有在设备有请求时才进行处理。 示例:在计算机系统中,当键盘有按键按下时,键盘接口会向CPU发出中断请求。CPU响应中断后,执行键盘中断服务程序,读取按键的扫描码,进行相应的处理。以下是一个简单的伪代码示例: ```python # 中断服务程序 def keyboard_interrupt_handler(): scan_code = keyboard_port.read() # 读取按键扫描码 # 处理按键扫描码 process_scan_code(scan_code) # 主程序 while True: # 执行其他任务 do_other_tasks() ``` ### 直接存储器存取(DMA)方式 DMA方式是在I/O设备和存储器之间直接进行数据传输,不需要CPU的干预。DMA控制器负责控制数据的传输过程,当数据传输完成后,再向CPU发出中断信号。这种方式适用于大量数据的高速传输,可以大大提高数据传输的效率。 示例:在计算机的硬盘数据读取过程中,当需要从硬盘读取大量数据到内存时,就可以使用DMA方式。硬盘控制器向DMA控制器发出请求,DMA控制器接管总线控制权,将硬盘中的数据直接传输到内存中。以下是一个简单的伪代码示例: ```python # 初始化DMA控制器 dma_controller.init() # 设置DMA传输参数 dma_controller.set_source_address(hard_disk_address) dma_controller.set_destination_address(memory_address) dma_controller.set_transfer_length(data_length) # 启动DMA传输 dma_controller.start_transfer() # 主程序可以继续执行其他任务 while not dma_controller.is_transfer_complete(): do_other_tasks() # 数据传输完成,处理后续操作 process_transferred_data() ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值