黑马程序员技术交流社区

标题: 反射的实例对象 [打印本页]

作者: 芦曦    时间: 2012-9-26 18:50
标题: 反射的实例对象
String str = new String(new StringBuffer("abc"));
String str = (String)constructor.newInstance(new StringBuffer("abc"));
用普通的方法创建实例对象和用反射的方式创建实例对象有什么区别吗????
作者: 黑马-王康    时间: 2012-9-26 19:07

首先您要明白,反射和实例化对象时两个不同的概念。

1)反射的出现降低了程序的耦合性。通俗的数就是在写代码代码的时候,我不用关心对象的具体类型是什么,我只要知道对象有这样或那样的属性和方法就可调用对象。

2)实例化对象就是生成的对象。就是向大家明确,我要使用它。

作者: 刘明月    时间: 2012-9-28 08:36
估计楼主还是不太理解反射的作用
不讲太多道理,首先说说为什么会出现反射,java的思想是面向对象,可谓:万物皆对象,那么,任意一个java类都有成员,对于java这种具有严谨的语言,肯定要将java类的成员封装成类了,而这个具有任何java类(比如person类,demo类……)的共有特性就让反射出现了,所以说反射就是将java类的成员封装成的类
那么他和普通的区别在哪儿呢?
普通的只能得到一个,而反射可以得到多个
比如String str = new String()只是一个实例对象,
而String str = (String)constructor.newInstance(new StringBuffer("abc"));你是通过反射得到的构造函数,一个类的构造函数可以有多个吧,然后你再指定其中的一个比如说Buffer.class类型的,那么才得到一个具体的实例对象,
想想为什么会出现类(person,demo),反射也是其中的一员哦,想想类出现的作用,那就是反射出现的作用,

作者: 杨志男    时间: 2012-9-28 08:52
每个类中都有成员吧,比如说构造函数,比如说一般函数,比如说成员变量,而且一般还都不止一个。反射一般是用来干啥那?就是用一个反射类用来封装这些个成员的共有属性的。那反射一般用于干啥那?或者说什么时候用反射那?就是在你不知道你要new的那个对象所在的类名的时候,我不管你是啥类名,我知道你会有哪些种成员变量就行。反射的应用一般用于框架的编写,因为是先有框架的,而这时候不知道程序员要定义什么样的类名,所以这时就需要用到反射了。




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