反射机制

/*

以下sun提供的反射机制中的类:

        java.lang.Class         Class c=0x1234         代表类

        java.lang.reflect.Constructor Constructor c=0x4354         代表构造对象

        java.lang.reflect.Field         Field f=0x5354        代表属性字段

        java.lang.reflect.Methord Methord m=0x653 代表方法

        java.lang.reflect.Modifier        Modifier m=ox34324 代表修饰符

          

          

        反射机制的作用:

                1.反编译 .class-->.java

                2.通过反射机制访问 java 对象的属性,方法,构造方法等等

          

*/

   

   

/*

获取Class 类型对象的三种方式:

          

*/

   

public class ReflectionTest01 {

   

public static void main(String[] args) throws ClassNotFoundException{

//1.第一种方式

Class c1=Class.forName("Employee");

//c1引用指向内存地址中的堆中的对象,

//该对象代表的是 Employee.class 文件(Employee这个类)

   

//2.第二种方法 java中每个类型都有class属性

Class c2=Employee.class;

   

//3.第三种方式 java语言中任何一个java对象都有 getClass 方法,是在Object类中的方法

//返回的是 对象 运行时类

Employee e=new Employee();

Class c3=e.getClass();//c3 是运行时类(e的运行时类是 Employee

   

//因为Employee 这个类在jvm中只有一个,所以c1 c2 c3 指向同一个内存地址,堆中的唯一的一个对象

System.out.println(c1==c2);//true

System.out.println(c2==c3);//true

   

}

}

   

public class ReflectionTest02 {

public static void main(String[] args) throws ClassNotFoundException {

// A.class加载到jvm的过程中。static 语句会执行

Class.forName("A");

//不会执行静态语句块

Class c=A.class;        

}

}

 

class A {

static {

System.out.println("A;;;;;;");

}

}

   

   

/*

获取Class 类型的对象之后,创建该"" 的对象

        newInstance();

*/

public class ReflectionTest03 {

public static void main(String[] args) throws ClassNotFoundException{

Class c=Class.forName("Employee");

Object o=c.newInstance();//调用的是 Employee的无参数构造方法。所以要想使用反射机制,一定要有无参数构造方法。

System.out.println(o)

   

}

}

   

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值