码迷,mamicode.com
首页 > 其他好文 > 详细

黑马程序员_反射

时间:2014-10-31 09:57:00      阅读:214      评论:0      收藏:0      [点我收藏+]

标签:style   blog   http   io   color   ar   java   for   sp   

反射

????正常情况下,我们必须知道一个类的完整路径后才可以实例化对象,但是在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();

????????}

????}

}

?

?

?

?

?

?

?

?

?

?

?

?

?

?

黑马程序员_反射

标签:style   blog   http   io   color   ar   java   for   sp   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!