黑马程序员技术交流社区

标题: 反射中class的含义 [打印本页]

作者: 冯伟    时间: 2012-9-29 13:35
标题: 反射中class的含义
请问图上 X.class  中的class是什么意思?看起来像是一个类的静态属性,但超类Object中却没有定义

0.PNG (78.56 KB, 下载次数: 104)

0.PNG

作者: 何万县    时间: 2012-9-29 14:37
class毕老师自己看,看看毕老师怎么讲的,是王道!!!
作者: 刘明月    时间: 2012-9-29 16:40
首先说,你练习的是反射中的关于怎么得到该类字节码的练习
如果你知道这一点的话,我觉得你是还不太明白什么是反射,那说一下我的理解

在java中有很多类,比如Person,Demo,甚至是Object……这些类都有成员,java是一种面向对象的思想,所以说把java中的成员封装称了类,这个类里边有:字节码(每个类都有自己的字节码),成员变量和成员属性

所以说你问的.class是在反射里边
作者: 刘学    时间: 2012-9-29 19:43
这个xxx.class 就是java这么规定的,xxx.class返回的是xxx类的字节码对象,Class类的对象不能自己去创建,也就是说不能够自己去new对象,还有其他两种方式可获取Class对象实例,(相应类的对象.getClass()和用Class.forName("类的全名"))这样都能得到Class对象。至于xxx.class就是一个格式,就相当于数组.length属性差不多。你能找到length属性吗,描述数组的类都没有吧。现在我们都是初学者,现在知道xxx.class是获取到相应类的字节码对象就行了。
作者: 谭立文    时间: 2012-9-29 20:41
Class是一个类,是对java中的类的一个描述。
获得字节码的方式有三种:
1.通过类名直接获得比如 Class clazz = String.class;
2.通过某个类的实例对象的方法获得   String str;   Class clazz = str.getClass();
3.最后一种也是在框架中用的最多的一种,也就是通过一个类的名称来获得(字符串)
Class  clazz = Class.forName("java.lang.String");




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2