位置:java.lang.Class 
类对象,类的实例代表一个运行 类 java应用程序的类和接口。 
 
1 2 3 public  final  class  Class <T>extends  Object implements  Serializable , GenericDeclaration, Type, AnnotatedElement
2.1 常用方法和示例 常用方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 String getName () static  Class<?> forName(String className)getPackage () super  T> getSuperclass()public 公开属性)public 公开方法)newInstance () 
方法使用示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 public  class  TestClassMethods  {public  static  void  main (String[] args)  throws  Exception {"com.day.methods.Student" );Package  pack  =  c.getPackage();for  (Class<?> inter : interfaces) {" " );for  (Field field : fields) {" " ); for  (Field field : fields2) {" " ); "\n---------------------" );for  (Method method : methods) {" " );"\n---------------------" );for  (Method method : methods2) {":"  +  method.getReturnType());"*************************" );for  (Constructor<?> cc : cs) {":" );for  (Class<?> p : param) {" " );Object  o  =  c.newInstance();Student  stu  =  (Student)o;class  Person  {public  String name;public  double  money;public  Person ()  {}public  void  eat ()  {}public  void  sleep ()  {}@SuppressWarnings({ "serial", "rawtypes" }) class  Student  extends  Person  implements  Serializable , Runnable,  Comparable{public  String name;public  int  age;double  score;public  Student ()  {super ();}public  Student (String name)  {}public  Student (String name, int  age)  {}public  void  exam ()  {}public  void  play ()  {}@Override public  void  run ()  {}@Override public  int  compareTo (Object o)  { return  0 ; }
2.2 获取Class对象的 3 种方法 ① 通过类的对象,获取Class对象通过Class的静态方法forName()获取类对象  【最具普适性】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 public  class  TestGetClassObject  {public  static  void  main (String[] args)  throws   ClassNotFoundException {Person  p  =  new  Person (); extends  Person > c = p.getClass();"com.day.reflect.Person" );public  static  Class<?> getClassObject(String className) {null ;try  {catch  (ClassNotFoundException e) {return  c;class  Person  {
2.3 反射创建对象的 2 种方法 ① 反射通过类对象创建类的对象方法传参返回对象 【普适性】
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 public  class  TestNewInstance  {public  static  void  main (String[] args)  throws  Exception {Teacher  t  =  new  Teacher ();"JJ" ;"com.day.methods.Teacher" );Teacher  t2  =  (Teacher)c.newInstance();"Jerry" ;Teacher  t3  =   (Teacher)createObject("com.day.methods.Teacher" );public  static  Object createObject (String className)  {try  {return  c.newInstance();catch  (Exception e) {return  null ;class  Teacher  {public  Teacher ()  { }