首页 > 其他 > 详细

黑马程序员_反射

时间:2014-10-31 09:55:54      阅读:281      评论:0      收藏:0      [点我收藏+]

反射

????正常情况下,我们必须知道一个类的完整路径后才可以实例化对象,但是在Java也可以通过一个对象来找到其所在类的信息,这其实就是Class的功能。

package reflect;

class X{

????

}

public class GetClassDemo01 {

????public static void main(String[] args) {

????????X x=new X();

????????System.out.println(x.getClass().getName());

????}

}

可以看到此时的所有操作都是反着来,这就是反射。

bubuko.com,布布扣

Class

????Class本身表示一个类的本身,通过Class可以完整的得到一个类的完整结构,包括此类中的方法定义、属性定义等。

?

此类在jdk中文档中没有发现任何构造方法,所以此类的构造方法是被私有化了。

实例化Class 类对象的三种方式

????? 第一种:通过forName()方法

????? 第二种: 通过类class

????? 第三种: 通过对象.getClass()

package reflect;

class X{

????

}

public class GetClassDemo01 {

????public static void main(String[] args) {

????????Class <?> c1=null;

????????Class <?> c2=null;

????????Class <?> c3=null;

????????try {

????????????//通过第一种方式实例化Class对象,这种方法也是最常用的一种形式

????????????c1=Class.forName("reflect.X");

????????????//通过Object类中的放过实例化Class对象

????????????c2=new X().getClass();

????????????//通过类.cass实例化Class

????????????c3=X.class;

????????????System.out.println("类名称:" + c1.getName() );

????????????System.out.println("类名称:" + c2.getName() );

????????????System.out.println("类名称:" + c3.getName() );

????????} catch (ClassNotFoundException e) {

????????????// TODO Auto-generated catch block

????????????e.printStackTrace();

????????}

????}

}

?

?

?

?

?

?

?

?

?

?

?

?

?

?

黑马程序员_反射

原文:http://www.cnblogs.com/yueyazhishang/p/4064191.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!