课程
/后端开发
/Java
/反射——Java高级开发必须懂的
既然class是静态成员属性,为什么不能直接用Foo的对象.class去获取?而可以用类名.class去访问?
2018-04-27
源自:反射——Java高级开发必须懂的 1-1
正在回答
静态成员变量可以通过类名访问,也可以通过对象访问
您先区分开
什么是类?
什么是类的实例对象?
什么是类呢:
就是你写的那个代码文件就叫做类,
但是程序中你要用这个类执行的话就只能调用其中的静态属性或静态方法, (注意这里没有 new 关键字, 未实例化类)
没有实例化的类一直都是类的对象, 所以你会发现类本身是和对象 Object 分开的
什么是类的实例对象:
Foo f1 = new Foo();
f1 就是类的实例对象.
它继承自 Object 对象, 类类型是 Foo
就是因为类是定义类的规范的文件, 对象是程序运行内部流转的数据(该数据格式使用类进行规范)
正因为是静态成员,才要用类名.class去调用
如果不是静态成员,就要Foo的对象.class来调用。
你搞反了
举报
反射,Java高级开发必须要懂的知识点,学好Java高级课程的基础
3 回答类的 类类型
4 回答Class的类类型
1 回答类型转化问题
1 回答类类型泛型操作
6 回答对类类型的理解?