这里有新鲜出炉的Java设计模式,程序狗速度看过来!
java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由Sun Microsystems公司于1995年5月推出的Java程序设计语言和Java平台(即JavaEE(j2ee), JavaME(j2me), JavaSE(j2se))的总称。
下面小编就为大家带来一篇Java反射之静态加载和动态加载的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
静态加载:
- package com.imooc.加载类;
- public class Office_Static {
- public static void main(String[] args) {
- //new 创建对象,是静态加载类,在编译时刻就需要加载所有的可能使用到的类
- if ("Word".equals(args[0])) {
- Word w = new Word();
- w.start();
- }
- if ("Excel".equals(args[0])) {
- Excel e = new Excel();
- e.start();
- }
- }
- }
这个程序编译时必须有Word和Excel这两个类存在才行,即使判断后用不到Excel也要加载
动态加载:
1、接口OfficeAble :
- package com.imooc.加载类;
- public interface OfficeAble {
- public void start();
- }
2、Word实现接口:
- package com.imooc.加载类;
- public class Word implements OfficeAble {
- public void start() {
- System.out.println("word start");
- }
- }
3、Excel实现接口:
- package com.imooc.加载类;
- public class Excel implements OfficeAble {
- public void start() {
- System.out.println("excel start");
- }
- }
4、Main方法
- package com.imooc.加载类;
- public class OfficeBetter {
- /**
- * @param args
- */
- public static void main(String[] args) {
- try {
- //动态加载类,在运行时刻加载
- Class c = Class.forName(args[0]); //在运行配置里面输入com.imooc.加载类.Excel
- //通过类类型,创建该类对象(先转换为Word和Excel的共同接口OfficeAble)
- OfficeAble oa = (OfficeAble) c.newInstance();
- oa.start();
- //不推荐下面两种,因为不确定是加载Word还是Excel,要强转
- // Word word = (Word)c.newInstance();
- // word.start();
- // Excel excel = (Excel)c.newInstance();
- // excel.start();
- } catch(Exception e) {
- e.printStackTrace();
- }
- }
- }
以上就是小编为大家带来的Java反射之静态加载和动态加载的简单实例的全部内容了,希望对大家有所帮助,多多支持PHPERZ~
来源: http://www.phperz.com/article/17/1113/359802.html