background image

Java

类 Class 对象的作用与产生

Class 对象是用来创建类的常规对象的,当我们编译一个 Java 类就会同时产生一个与该类
相对应的 Class 对象(保存在.

class

文件中)。该 Class 对象中保存了创建对象所需的所有信息。

共有三种产生 Class 对象的方法下面分别说明之:
1.

public

 

static

 Class Class.forName("完整的类名") throws ClassNotFoundException;

public

 

static

 Class forName(String name, boolean initialize,

ClassLoader loader) throws ClassNotFoundException
假若我们用 Class.forName("");的方式获取 Class 对象,其实就相当于 Class.forName("完整
类名", true, this.getClass().getClassLoader())也就是说在默认情况下在产生 Class 对象的同时
会对该 Class 对象进行初始化(若以前没有初始化过)。
2.

public

 

final

 Class getClass()

可以通过任何实例对象来引用该方法来获取相应的 Class 对象。使用此种方式的前提是我
们需要产生相应的实例对象。
3.类名.

class

 此种方式产生 Class 对象较前两种简单,无需第一种还要进行异常处理(在编

译期就进行错误的检查了)。此种方式不会自动初始化该 Class 对象。初始化被延迟到对静
态方法(包括构造方法)或非常数静态域进行首次引用时才进行。
import java.util.*;

class

 Initable{

static

 

final

 int staticFinal = 47;

static

 

final

 int staticFinal2 = ClassInitialization.rand.nextInt(100);

static

{

System.out.println("Initialization Initable");
}
}

class

 Initable2{

static

 int staticNoFinal = 147;

static

{

System.out.println("Initialization Initable2");
}
}

class

 Initable3{

static

 int staticNoFinal = 74;

static

{

System.out.println("Initialization Initable3");
}
}

public

 

class

 ClassInitialization

{