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就可以使用了。当然这样做需要有无参的构造方法。