模拟电脑的运行,主板运行,对外提供接口PCI,网卡,声卡等设备实现该接口可以完成指定动作,练习中用到的类Mainboard,NetCard,SoundCard,接口PCI
主板:
1 package Reflect; 2 3 public class MainBoard { 4 public void run(){ 5 System.out.println("Mainborad run.."); 6 } 7 public void usePCI(PCI p){ 8 if(p!=null){ 9 p.open(); 10 p.close(); 11 } 12 } 13 }
声卡:
1 package Reflect; 2 3 public class SoundCard implements PCI { 4 5 @Override 6 public void open() { 7 System.out.println("SoundCard Run"); 8 } 9 10 @Override 11 public void close() { 12 System.out.println("SoundCard Stop"); 13 } 14 15 }
网卡:
1 package Reflect; 2 3 public class NetCard implements PCI{ 4 5 @Override 6 public void open() { 7 System.out.println("NetCard Run"); 8 } 9 10 @Override 11 public void close() { 12 System.out.println("NetCard Stop"); 13 } 14 15 16 }
PCI接口:
1 package Reflect; 2 3 public interface PCI { 4 5 public void open(); 6 public void close(); 7 }
用到的配置文件:
pci1=Reflect.SoundCard
pci2=Reflect.NetCard
主类:
1 package Reflect; 2 3 import java.io.FileInputStream; 4 import java.io.IOException; 5 import java.util.Properties; 6 7 public class ReflectTest { 8 9 /** 10 * @param args 11 * @throws IOException 12 * @throws ClassNotFoundException 13 * @throws IllegalAccessException 14 * @throws InstantiationException 15 */ 16 public static void main(String[] args) throws IOException, 17 ClassNotFoundException, InstantiationException, 18 IllegalAccessException { 19 20 MainBoard mB = new MainBoard(); 21 mB.run(); 22 FileInputStream fis = new FileInputStream("ConfigFile"); 23 Properties prop = new Properties(); 24 prop.load(fis); 25 for (int x = 0; x < prop.size(); x++) { 26 String classname = prop.getProperty("pci" + (x + 1)); 27 Class clazz = Class.forName(classname); 28 PCI p = (PCI) clazz.newInstance(); 29 mB.usePCI(p); 30 } 31 fis.close(); 32 } 33 34 }
本文为博主原创文章,转载请注明出处:http://www.cnblogs.com/ysw-go/
1、本博客的原创原创文章,都是本人平时学习所做的笔记,如有错误,欢迎指正。
2、如有侵犯您的知识产权和版权问题,请通知本人,本人会即时做出处理文章。
3、本博客的目的是知识交流所用,转载自其它博客或网站,作为自己的参考资料的,感谢这些文章的原创人员