publicclassTest4{publicstaticvoidmain(String[] args)throws ClassNotFoundException {
Person p1=newStudent();
System.out.println("这个人是"+p1.name);//方式1:通过对象获得
Class c1=p1.getClass();//方式2:forName获得
Class c2=Class.forName("Day8.Student");//方式3:通过类名.class获得
Class c3=Student.class;//基本内置类型的包装类可以获得
Class c4=Integer.TYPE;//如果输出c1/c2/c3的hashcode,可以看到是一样的//获得父类的类对象
Class c5=c1.getSuperclass();}}classPerson{...}classStudentextendsPerson{...}classTeacherextendsPerson{...}
哪些类型可以有Class对象?
class:外部类、成员(成员内部类、静态内部类),局部内部类,匿名内部类。
interface:接口
[]:数组
enum:枚举
annotation:注解
primitive type:基本数据类型
void
publicclassTest5{publicstaticvoidmain(String[] args){
Class c1= Object.class;//类
Class c2= Runnable.class;//接口
Class c3= String[].class;//一维二维数组
Class c4=int[][].class;
Class c5=Override.class;//注解
Class c6= ElementType.class;//枚举
Class c7= Integer.class;//基本数据类型
Class c8=void.class;//void
Class c9= Class.class;//Class}}