反射的一个例子 笔记本 USB接口 例子

笔记本类:

package cn.fanse;

public class Notebook {

	public void run() {
		 System.out.println("book run");
	}

	public void useUSB(USB usb) {

		usb.open();
		usb.close();
	}

}

USB接口:

package cn.fanse;

public interface USB {
	 public void open();
     public void close();
}

鼠标实现USB接口:

package cn.fanse;

public class MousebyUSB implements USB{

	@Override
	public void open() {
		System.out.println("mouse run");

	}

	@Override
	public void close() {

		System.out.println("mouse close");
	}

}

键盘实现USB:

package cn.fanse;

public class KeybyUSB implements USB{

	@Override
	public void open() {
		System.out.println("key run");

	}

	@Override
	public void close() {
		System.out.println("key close");

	}

}

主函数类:

package cn.fanse;

import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Properties;

public class notbookdemmo {

	/**
	 * @param args
	 * @throws Exception
	 */
	public static void main(String[] args) throws Exception {
		  Notebook book = new Notebook();
		  book.run();
		  File config = new File("usb.properties");
		  if(!config.exists())
		  {
			  config.createNewFile();
		  }
		  FileInputStream fis = new FileInputStream(config);

		  Properties prop =new Properties();
		  prop.load(fis);

		  for(int x =1;x<=prop.size();x++)
		  {
			String className = prop.getProperty("usb"+x);
			Class clazz=Class.forName(className);
			USB usb =(USB)clazz.newInstance();
			 book.useUSB(usb);
		  }

	}

}

配置文件:

在配置文件usb.properties 中 编写以下:

usb1=cn.fanse.MousebyUSB

usb2=cn.fanse.KeybyUSB

结果:

book run

mouse run

mouse close

key run

key close



版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-09-29 01:13:00

反射的一个例子 笔记本 USB接口 例子的相关文章

每天进步一点点-实例为导学-一个java对象序列化的例子

序列化和反序列化例子 如果我们想要序列化一个对象, (对象 转 序列)首先要创建某些OutputStream(如FileOutputStream.ByteArrayOutputStream等),然后将这些OutputStream封装在一个ObjectOutputStream中.这时候,只需要调用writeObject()方法就可以将对象序列化,并将其发送给OutputStream(记住:对象的序列化是基于字节(1字节8位)的,不能使用Reader和Writer等基于字符的层次结构).而反序列的过

Spring Boot Hello World (restful接口)例子

Spring Boot 集成教程 Spring Boot 介绍 Spring Boot 开发环境搭建(Eclipse) Spring Boot Hello World (restful接口)例子 spring boot 连接Mysql spring boot配置druid连接池连接mysql spring boot集成mybatis(1) spring boot集成mybatis(2) – 使用pagehelper实现分页 spring boot集成mybatis(3) – mybatis ge

一个php多态性的小例子

多态性在 OO 中指 "语言具有以不同方式处理不同类型对象的能力",但 PHP 是弱类型语言,在这一点上就比较弱,仅有 instance of 可以用于判断对象的类型 多态性的优点:让代码更接近生活中的真实情况 一下是一个非常简单的多态性例子,描述在电脑上安装不同操作系统,linux, OS X, windows 和 computer 是两种不同类型的对象. interface os{ function name(); function creator(); } class linux

一个简单的回调(例子)

1.声明一个回调Interface: public interface CallBack { /** * 执行回调方法 * @param objects 将处理后的结果作为参数返回给回调方法 */ public void execute(Object... objects ); } 2.回调的地方继承回调,实现回调的方法: import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamRe

ThinkPHP 学习(2)---一个简单的起步的例子

文件夹目录是核心目录ThinkPHP,入口文件是index.php,ThinkPHP里面的文件含义下次详解,接下来是启动一个自己的程序,现在可以修改一下入口文件,一般情况下会将自己的文件放在一个文件夹,我现在是先建立自己的文件夹,一个前台Home文件夹,一个后台文件夹Admin,怎么建立一个结构拥有ThinkPHP功能的文件夹呢?打开index.php,加入如下代码, <?php    //1.确定应用名称Home    define('APP_NAME','Admin');    //2.确定

一个android的webview的例子

截图如图所示. 核心部分代码 package com.example.app; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import android.support.v7.app.ActionBarActivity; import android.support.v7.app.ActionBar; import android.support.v4.app.Fragment; imp

一个基本的傅立叶变换例子

clear;clc; tempresult=[]; figure for i=1:6 filename=['ROISignals_sub_00' num2str(i) '_2000.mat']; data=importdata(filename); x=data(:,1); fs=2; % L=length(x); L=256; y1=fft(x,L); y2=fftshift(y1); mag=abs(y2); f=(0:L-1)*fs/L-fs/2; tempresult=[tempresu

一个简单的Spring定时器例子 注解方式

首先在applicationContext.xml中增加 文件头中增加一条 xmlns:task="http://www.springframework.org/schema/task"xsi:schemaLocation 中增加一条 http://www.springframework.org/schema/task http://www.springframework.org/schema/task/spring-task.xsd <beans xmlns:task=&quo

一个简单的iBatis入门例子

一个简单的iBatis入门例子,用ORACLE和Java测试 目录结构: 1.导入iBatis和oracle驱动. 2.创建类Person.java package com.ibeats;import java.util.Date; public class Person { private int id; private String firstName; private String lastName; private double weightInKilograms; private do