Java反射(Reflection)02
Class类也是类的一种
Class对象只能由系统建立对象
Class类的对象内容是你创建的类的类型信息
每个类的实例都会有对应的由哪个Class实例所生成
Class类的对象不能像普通类一样,它的对象只能由JVM创建,只会有一个Class实例,对应一个.class文件。
Class类的作用是运行时提供或获得某个对象的类型信息,对任何你想加载运行的类,要先获得相应的Class对象
以下为获取Class类实例的三种方法:
package com.cn;
public class ReflectTest02 {
public static void main(String[] args) throws ClassNotFoundException {
Person person =new Student();
System.out.println(person.name);
//方法一:调用该实例的getClass方法获取Class对象
Class class1=person.getClass();
System.out.println(class1.hashCode());
//方法二:用类的全名通过静态方法forName获取
Class class2 =Class.forName("com.cn.Student");
System.out.println(class2.hashCode());
//方法三:通过类的class属性获取,最安全可靠
Class class3 =Student.class;
System.out.println(class3.hashCode());
}
}
/*
*三个实体类
*Person父类
*teacher和Student分别继承Person
*/
class Person{
String name;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
class Student extends Person{
public Student() {
this.name="student";
}
}
class Teacher extends Person{
public Teacher() {
this.name="teacher";
}
}
输出结果:
student
2018699554
2018699554
2018699554