A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© rehan 中级黑马   /  2015-2-13 10:19  /  1643 人查看  /  10 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

学到反射了,不知道讲的是啥意思,很晕。。。获取的类是很多的,我就搞不明白,获取的究竟是class整个文件,还是class里面的某一个对象的类?如果是整个class文件的话,我要拿其中一个构造方法要怎么拿?

点评

万物皆对象啊!原本是.java文件中定义的.class类,它也是由类名,修饰符,成员变量,成员方法几个部分组成啊,在反射中,把这每一个部分又当作一个类〈还包括.java文件编译后的.class文件也可以看做是一个类〉,然后   发表于 2015-2-13 10:58

10 个回复

倒序浏览
我也是有问题。。。
回复 使用道具 举报
书生灬流年 来自手机 中级黑马 2015-2-13 10:41:54
藤椅
同感,有疑惑!
回复 使用道具 举报
类本身也被描述成了一种类(因为不同的类仍有许多共性)或者说对象    Class clazz = Class.forName(xxx);  结果就是获得描述xxx类的名为clazz的对象,即clazz就是xxx类。
回复 使用道具 举报
就是通过反射获得了某个类
回复 使用道具 举报
获取整个所有CLASS 文件,你如果需要拿CLASS文件中的每一个构造函数,或者方法,或者变量都需要通过CLASS类中的方法获取的,  你主要了解CLASS这个类就好懂了,个人理解

评分

参与人数 1技术分 +1 收起 理由
lwj123 + 1

查看全部评分

回复 使用道具 举报
.class这个文件其实也是一个对象,叫做Class类型对象,这个Class类型就类似于Person类型的地位。因为我们在真正开发的时候有时间要用到别人的类型,但是别人没有提供的这个类的.java源代码,只有这个类对应的.class文件,并且没有说明文档。所以我们就不知道这个源代码里面到底有什么方法,字段,构造函数等等,但是同时我们又要用这个类,所以此时就只能通过反射来得到这个.class文件对应类型的这些方法,字段,构造函数进而调用实现我们所需功能。我们在编程的时候,jdk其实提供给我们的也是.class文件。但是同时给我们了说明文档(API文档),所以我们虽然没有源代码,但是知道内部的细节,所以直接编程时使用各种方法,字段,构造函数等。也就是说只要别人的.class文件附上了说明文档,其实反射就没有必要使用了,看文档就知道内部细节进行使用了。这是我的看法。
回复 使用道具 举报 2 0
赵耿 中级黑马 2015-2-13 17:21:22
8#
支持xyf19881010
回复 使用道具 举报
rehan 中级黑马 2015-2-13 18:17:00
9#
xyf19881010 发表于 2015-2-13 16:39
.class这个文件其实也是一个对象,叫做Class类型对象,这个Class类型就类似于Person类型的地位。因为我们在 ...

你的理解能力真的挺好的,这么一说好像有点感觉了。。。。
回复 使用道具 举报
kfcka 中级黑马 2015-2-13 20:57:17
10#
每一个数据类型对应一个字节码,要创建某个类型的对象就是复制各自的字节码来创建。
首先,获取字节码,然后,通过字节码.getField(“变量名”)和字节码.getConstructor()或者
getMethod("方法名",返回类型)来得到相应的Field变量,Constructor方法或者Method方法
再执行相应的操作
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马