publicclassTest{publicstaticvoidmain(String[] args){
Person p =newPerson();
Class clazz= p.getClass();//clazz对象中包含了Person类所有信息
Class c0= Person.class;//通过类名.class创建指定类的class实例
Class c1= p.getClass();//通过实例的getclass()方法,获取对应实例对象的类的Class实例try{
Class c2= Class.forName("day14.Person");//通过Class的静态方法forName获取一个类的实例}catch(ClassNotFoundException e){
e.printStackTrace();}}}
3.反射获取一个类的父类和接口:
publicclassTest1{publicstaticvoidmain(String[] args){try{
Class clazz= Class.forName("day14.Student");
Class superClazz= clazz.getSuperclass();//获取父类
System.out.println(superClazz.getName());
Class[] interfaces = clazz.getInterfaces();//获取所有接口for(Class c:interfaces){
System.out.println(c.getName());}}catch(ClassNotFoundException e){
e.printStackTrace();}}}
/*
* 反射创建对象
*/
Constructor con = clazz.getConstructor();
Student stu =(Student)con.newInstance();
Field f = clazz.getField("school");
f.set(stu,"第三中学");
String school =(String)f.get(stu);
System.out.println(school);
f.setAccessible(true);//解除私有封装
1.反射:2.class类:public class Test { public static void main(String[] args) { Person p = new Person(); Class clazz = p.getClass();//clazz对象中包含了Person类所有信息 Class c0 = Person.class;//通过类名.class创建指定类的class实例 Class c1 = p.getClass();//通过实例的getcla