第十三章反射(reflect)、类加载与垃圾回收总结

重点掌握:1.通过反射产生对象 2.通过反射探究一个类,探究它的构造,属性和方法 3.在运行期探究类的任意构造方法属性。体会它的动态性。

1.类加载:由类加载器完成,把这个类的信息放入Class文件当中。

加载机制:加载---连接(验证--准备--解析)---初始化

2.反射

在运行期探究和使用编译器未知的类,包括类,属性,方法等。

反射使用步骤:第一步:获取Class对象,第二步通过Class对象探究一个类的信息。第三步,操作从Class对象中的探究出的信息。

第一步:获取Class对象 又分三种获取
1,根据实例对象获取Class对象。
实现方法,调用实例对象的getClass();该方法来自Object类。动态性:无
Student  stu = new Student();
Class stuClass0 = stu.getClass();
Class  strClass0 = “hello”。getClass;
int[] intArray = new int [6];
Class arrayClass0 = intArray .getClass();
2,根据类型名获取Class对象)
实现方法:调用类型名.class
使用范围:所有的类型(基本,引用,甚至包括void) 动态性:无
Class  stuClass1 = Student.class;
Class strClass1 = String .class;
Class  arrayClass1 = int[].class;
Class  intClass = int .class;//获取int的Class对象该方法在JDK1.5以后才有
Class  integerClass = integer.class//获取包装类Intrger的Class对象
Class  intClass1 = Integer.TYPE;//获取int的Class对象该方法在JDK1.5之前
Class voidClass = void .class;
System 。out.print(stuClass0==stuClass1);//不管用那种方式获取,一个类型只有一个Class对象
3,根据类型的字符串名称获取Class对象。)(用的最多的一种)**********
实现方式:调用Class.forName(“类的限定名”)
适用范围:只有类类型(包括接口) 动态性:有
Class stuClass2 = null;
StuClass2 = Class.forNmae ("zuoye.shuangseqiu")
系统会打印出try catch。
英语单词:属性(Field) ---构造(Constructor)---行为方法(Method)---被申明的(Declared)***************
获取Class对象中的信息
根据反射探究到的信息进行操作2

根据Constructor对象,产生实例对象。

实现一:调用Constructor对象的newInstance方法。
Con
实现二:直接调用Class对象的NewInstance方法,前提是只能调用到公共无参构造****************
Student stu0 = (Student)stuClass2.newInstance();

根据Field对象,对属性进行取值和赋值 ---实现:调用Field的get ,set 方法************

Field thePublicField = stuClass2.getField("score");
thePublicField.set(stu,100);//赋值(注意第一个参数,代表给那个Student对象的这个属性取值)
System.out.print(thePublicField.get(stu));//取值(参数代表从那个Student对象的这个属性赋值))

根据Method对象,对方法进行调用--实现:调用Method对象的invoke方法*****************

Method thepublicMethod = stuClass2.getMethod("test1");
thePublicMethod.invoke(stu);  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值