JAVA 反射 之 class类的使用

class类的使用:

1、在面向对象的世界里,万事万物皆对象。类也是对象,类是java.lang,class类的实例对象。

2、万事万物皆对象,对象如何表示?

例如:dog是一个类——class Dog();

        那么 Dog dog = new Dog(); 是Dog的实例对象的展示。


Dog这个类也是一个实例对象,那么,class类的实例对象如何展示呢?

任何一个类都是class的 实例对象,这个实例对象有3中表示方式:

一、Class c1 = Dog.Class;         既 Class c1 = 类名.Class;
实际也告诉我们,任何一个类都有一个隐含的静态成员变量class。

二、Class  c2 = dog.getClass();  既 Class  c2 = Dog类的对象.getClass();     该类的对象通过getClass方法 表达。

三、Class  c3 = Class.forName("权限定名");权限定名为类的全称。

注意:官网c1,c2,c3表示了Dog类的类类型(class type). 因为Dog既是class类的对象,且Dog这个类本身也有实例对象。那么如何区分:所以我们称c1,c2,c3为Dog类的类类型区分。

            不管你有几种表达方式,c1 or c2 or c3都代表了Dog类的类类型,一个类只可能是class类的一个实例对象,故c1==c2==c3.


我们也可以通过类的类类型创建该类的实例对象——既通过c1 or c2 or c3 创建Dog类的实例。

用   c1.newInstance();     既 类类型.newInstance();    

注:c1是哪个类的类类型,创建的就是那个类的对象;故需要做强制类型转换。

既:Dog dog = (Dog)c1.newInstance(); 这样dog就可以使用了。当然这样做需要有无参的构造方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值