反射获得class的各种方法
package Reflection;
public class Demo01 {
public static void main ( String[ ] args) throws ClassNotFoundException {
Person person = new Student ( ) ;
System. out. println ( person. name) ;
Class c1 = person. getClass ( ) ;
System. out. println ( c1. hashCode ( ) ) ;
Class c2 = Class. forName ( "Reflection.Student" ) ;
System. out. println ( c2. hashCode ( ) ) ;
Class c3 = Student. class ;
System. out. println ( c3. hashCode ( ) ) ;
Class c4 = Integer. class ;
System. out. println ( c4. hashCode ( ) ) ;
Class c5 = c1. getSuperclass ( ) ;
System. out. println ( c5. hashCode ( ) ) ;
System. out. println ( "==================================分割线==================================" ) ;
System. out. println ( "只要元素类型与维度一样,就是同一个class" ) ;
int [ ] a1 = new int [ 10 ] ;
int [ ] a2 = new int [ 100 ] ;
int [ ] a3 = new int [ 1000 ] ;
int [ ] [ ] b1 = new int [ 10 ] [ 10 ] ;
int [ ] [ ] b2 = new int [ 100 ] [ 100 ] ;
int [ ] [ ] b3 = new int [ 1000 ] [ 1000 ] ;
System. out. println ( a1. getClass ( ) . hashCode ( ) ) ;
System. out. println ( a2. getClass ( ) . hashCode ( ) ) ;
System. out. println ( a3. getClass ( ) . hashCode ( ) ) ;
System. out. println ( b1. getClass ( ) . hashCode ( ) ) ;
System. out. println ( b2. getClass ( ) . hashCode ( ) ) ;
System. out. println ( b3. getClass ( ) . hashCode ( ) ) ;
}
}
class Person {
public String name;
public Person ( ) {
}
public Person ( String name) {
this . name = name;
}
@Override
public String toString ( ) {
return "Person{" +
"name='" + name + '\'' +
'}' ;
}
}
class Student extends Person {
public Student ( ) {
this . name = "学生" ;
}
}
class Teacher extends Person {
public Teacher ( ) {
this . name = "老师" ;
}
}