有哪几种方式获得Class类对象(实例)的方法?和对反射的理解和作用?

其实对于初级java程序员来说,一说到类的对象和实例总是会混淆。Class是java中api中的类名。class是一个关键字。Class是反射技术的核心。

每一个class都有一个Class对象。一个java文件经过编译,再生成的.class文件中,就会创建一个Class对象。只有一个。他表示整个类的类型信息。

那么通常我们创建对象的方式又有几种呢?

五种:

1.通过new 语句创建对象。

2.通过静态工厂方法创建,比如A.getNewInstance();

3.通过反射技术来实现。可以调用Class类或Constructor类的newInstance()方法。

4.通过调用对象的clone()方法

5.利用I/O流技术的反序列化来实现。


回归正题获取Class对象(实例)有三种方法:

1.通过class的方式创建Class实例:类名.class

2.通过对象的getClass()方法获得。

3.通过Class类的forName()方法来获得。


反射:可以说是一中技术手段,利用反射可以访问,检测,修改本身行为状态的一种方式。利用反射我们可以创建实例。

其实质就是:反编译:.class---反编译成.java文件。

所以说他是一个强大的工具,他可以创建更加灵活的代码,在运行期装配。使我们可以在运行期,动态的访问对象有哪些方法,动态,并可以为修改对象的属性,在运行期动态的访问任何对象的任何方法。

而且他降低了代码的耦合度,提高了可扩展性。

但是反射使用不当会成本很高。而且反射本身比直接硬编码更加复杂,所以一般性小程序尽量不要用,他适合一些对灵活度和可扩展性比较强的框架中。

而且他会模糊程序结构,不利于理解程序流程。可维护性不好。




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值