黑马程序员技术交流社区

标题: java反射和new创建实例有什么不同 [打印本页]

作者: 欧阳超    时间: 2011-10-7 10:32
标题: java反射和new创建实例有什么不同
Xun m=(Xun)Class.forName(s).newInstance();
m.ShuChu();
//Xun m=new Xun();
//m.ShuChu();
上面两者有什么区别吗
作者: 刘朋朋    时间: 2011-10-7 10:37
反射对象是直到程序运行期间才知道类的名字的实例,这时才获取对象的成员,并设置属性。此时要用到类的全路径 ,用类的全路径来加载类,并返回该类的对象。以后就可以遍历类中的各个方法,各个属性。
new是给类直接在内存中创建一个实例,并且可以直接初始化等。不需要类的全路径。
作者: 林国锋    时间: 2011-10-7 10:41
从结果来说没有区别。
只是反射能够实现动态的效果
用new只能在编译期就确定对象的类型
作者: 巴蜀贤君    时间: 2011-10-8 18:34
呵呵!你们回答的都不错,我来补充一下,对编写一个良好的程序来讲,我们要遵循高内聚、低耦合的原则,通过new关键字,使得程序耦合度较高,依赖性太强,而反射就能帮我们解决这种问题,所以在以后大家注意就可以了。
作者: 巴蜀贤君    时间: 2011-10-8 18:38
简单的理解就是:new是创建,而反射是调用




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