“Class”类

 “Class”类

众所周知Java有个Object类,是所有Javaclasses的继承根源,其内声明了数个应该在所有Javaclass中被改写的methods:hashCode()、equals()、clone()、toString()、getClass()等。其中getClass()返回一个Classobject。

Classclass十分特殊。它和一般classes一样继承自Object,其实体用以表达Java程序运行时的classes和interfaces,也用来表达enum、array、primitiveJavatypes(boolean,byte,char,short,int,long,float,double)以及关键词void。当一个class被加载,或当加载器(classloader)的defineClass()被JVM调用,JVM便自动产生一个Classobject。

“Class”object的取得途径

Java允许我们从多种管道为一个class生成对应的Classobject。下图是一份整理。

Classobject诞生管道

示例

运用getClass()

注:每个class都有此函数

Stringstr="abc";

Classc1=str.getClass();

运用

Class.getSuperclass()

Buttonb=newButton();

Classc1=b.getClass();

Classc2=c1.getSuperclass();

运用staticmethod

Class.forName()

(最常被使用)

Classc1=Class.forName("java.lang.String");

Classc2=Class.forName("java.awt.Button");

Classc3=Class.forName("java.util.LinkedList$Entry");

Classc4=Class.forName("I");

运用

.class语法

Classc1=String.class;

Classc2=java.awt.Button.class;

Classc3=Main.InnerClass.class;

Classc4=int.class;

Classc5=int[].class;

运用

primitivewrapperclasses

的TYPE语法

Classc1=Boolean.TYPE;

Classc2=Byte.TYPE;

Classc3=Character.TYPE;

Classc4=Short.TYPE;

Classc5=Integer.TYPE;

Classc6=Long.TYPE;

Classc7=Float.TYPE;

Classc8=Double.TYPE;

Classc9=Void.TYPE;

相关推荐