1、认识Class类

任何一个类都是Class类的实例对象,这个实例对象有三种表示方式。

 1         /*java 反射机制*/
 2         // 获取类的方法
 3         UserDao userDao = new UserDao();
 4         Class c = UserDao.class;      // 1、知道类名 使用.class获取类
 5         Class d = userDao.getClass(); // 2、知道对象 使用.getClass()获取类
 6         Class m = null;               // 3、知道类   使用class.forName("")获取类
 7         try {
 8             m = Class.forName("com.description.dao.UserDao");
 9         } catch (ClassNotFoundException e) {
10             e.printStackTrace();
11         }
12 
13         System.out.println("c d是否相等 : " + (c==d));
14         System.out.println("c m是否相等 : " + (c==m));
15 
16         try {
17             UserDao ud = (UserDao) c.newInstance(); // 通过反射实例化一个对象,前提是UserDao必须有一个默认的无参构造方法
18         } catch (InstantiationException e) {
19             e.printStackTrace();
20         } catch (IllegalAccessException e) {
21             e.printStackTrace();
22         }

2、动态加载类实例

新建四个类,一个Software接口,另外新建两个类继承该接口。

Software.java

1 package com.hua.reflect;
2 
3 /**
4  * Created by 华天 on 2016/06/06.
5  */
6 public interface Software {
7     public void show();
8 }
View Code

相关文章: