Object类
java中所有类的父类,有9大方法
其中getClass方法返回该对象对应的Class对象
二 、Class类
Class类的源码自己查阅,这里不再列出。从源码可以看出,Class继承了许多接口和类并且是一个泛型类型。那么Class类的作用是什么呢?
在一个运行的程序中,会有许多类和接口存在。我们就用Class这个来来表示对这些类和接口的抽象,而Class类的每个实例则代表运行中的一个类。例如,运行的程序有A、B、C三个类,那么Class类就是对A、B、C三个类的抽象。所谓抽象,就是提取这些类的一些共同特征,比如说这些类都有类名,都有对应的hashcode,可以判断类型属于class、interface、enum还是annotation。这些可以封装成Class类的域,另外可以定义一些方法,比如获取某个方法、获取类型名等等。这样就封装了一个表示类型(type)的类。我们通过反射获得Class对象,并且调用Class对象的方法(new Instance()
)获得指定对象
需要注意的是,这个特殊的Class类没有公开的构造函数,那怎么获取Class类的实例呢?有几个途径。
- 当Java虚拟机加载一个类的时候,它就会自动创建一个Class类的实例来表示这个类。例如,虚拟机载入Car这个类的时候,它就会创建一个Class类的实例。然后可以通过以下方法获得这个Class对象:
java.lang.Class classObj = Car.class;
- 运行时加载
java.lang.Class classObj = Class.forName("XXX");