运行时创建对象的疑问
来源:1-1 介绍反射及作用
elisun_me
2021-08-11 10:15:27
问题描述:
老师说case2中的Class.forName("com.imooc.reflect."+op)只有在运行时才决定创建哪个对象,
那case1中不也是运行时传入值么才知道创建哪个对象么?
1回答
好帮手慕小班
2021-08-11
同学你好,这里可以这样理解,使用new关键字创建对象是静态的,而反射是动态的。比如说,我有一个person类 我可以直接new实例化一个对象,但是如果我不知道一个类,那么我就无法使用new来实例化对象了 这个时候就用到了反射。
反射相当于动态加载类,new相当于静态加载,所以反射就是不通过new关键字,在运行时动态的获取信息或者动态的调用对象方法,而new调用构造方法来创建对象是固定的,就是这个类型的对象。比如
反射的方式创建
new关键字
祝学习愉快~
相似问题