当我们编写一个类,编译完成后,在生成的.class文件中,就会产生一个Class对象
来源:2-1 Class类及对象实例化
mahsiaoko
2020-08-14 23:38:30
老师,您好!这是我在一个问题下看到的回答,这句话有点不理解,一个类的Class对象是在编译完成生产.class文件之后生成的吗?.class文件不是二进制的吗?那这个Class对象是以什么方式存在?Class.forName()是对编译完成之后的.class文件进行操作吗?就是说是从.class文件中获得Class对象?
4回答
同学你好,newInstance实例对象时,是调用类中的无参构造方法完成实例化操作,这个过程中没有用到new。
祝:学习愉快~
好帮手慕阿满
2020-08-15
同学你好,关于同学的问题:
Class对象是编译完成.class文件后产生的。
.class是二进制字节码文件。
Class对象是由java虚拟机,生成.class文件的时候创建的,保存在同名的.class文件中。
Class.forName()是从.class文件中获取Class对象。
Class employeeClass= Class.forName("com.imooc.reflect.entity.Employee");
employeeClass对象是编译Employee类后产生的Class对象。
Class.forName()返回的是Class类的对象,该对象是com.imooc.reflect.entity.Employee类编译后的Class对象,通过该Class对象可以newInstance实例化一个Employee对象。
祝:学习愉快~
mahsiaoko
提问者
2020-08-14
Class.forName返回的是类还是对象,视频中说是Class对象,既然是Class对象,为什么还需要调用newInstance进行实例化?
mahsiaoko
提问者
2020-08-14
Class employeeClass= Class.forName("com.imooc.reflect.entity.Employee");
这里的employeeClass是从编译之后的.class文件获得的吗?
相似问题