想要知道如何创建Class对象?
首先明白class类的四大特性:
- 该类在java.lang包中;
- 该类被final所修饰,即该类不可以被子类继承;
- 该类实现了Serializable接口;
- 该类的构造方法被private所修饰,即不能通过new关键字创建该类的对象;
至于如何创建class对象,不多说都在代码里:
事先创建一个Student类:
package youxiu;
public class Student {
}
package youxiu;
public class Test {
public static void main(String[] args) {
//反射是一种新的操作类中属性、构造方法、普通方法的机制
Class clazz =null;
try {
clazz=Class.forName("youxiu.Student");
System.out.println("CLass.forName:"+clazz.getName());
clazz=Student.class;
System.out.println("类名.Class:"+clazz.getName());
clazz=new Student().getClass();
System.out.println("对象.getClass():"+clazz.getName());
clazz= Integer.class;
System.out.println("包装类.class:"+clazz.getName());
clazz= Integer.TYPE;
System.out.println("基本数据类型包装类.TYPE:"+clazz.getName());
clazz= String[].class;
System.out.println("数组数据类型[].class:"+clazz.getName());
//获取父类的class对象的三种方法:
System.out.println("获取父类的class对象的三种方法:");
clazz=Class.forName("youxiu.Student").getSuperclass();
System.out.println("1、子类Class对象.getSuperclass():"+clazz.getName());
clazz=Student.class.getSuperclass();
System.out.println("2、子类Class对象.getSuperclass():"+clazz.getName());
clazz = new Student().getClass().getSuperclass();
System.out.println("3、子类Class对象.getSuperclass():"+clazz.getName());
} catch (ClassNotFoundException e) {
e.printStackTrace();
}
}
}
执行结果如下: