javaObject类—getClass方法

javaObject类—getClass方法
 1 package face_object;
 2 /*
 3  * Object:所有类的根类。
 4  * Object是不断抽取而来的,具备所有对象都具备的共性内容。
 5  * 常用的共性功能:
 6  * 
 7  * 
 8  */
 9 
10 /*class Fu {// extends Object
11     Fu(){
12         super();
13     }
14 }
15 class Zi extends Fu {
16     Zi(){
17         super();
18     }
19 }
20 */
21 class Person extends Object{
22     private int age;
23     Person(int age){
24         this.age = age;
25     }
26     //比较Person的年龄。是否是同龄人
27     /*public boolean compare(Person p) {
28         return this.age == p.age;
29     }*/
30     /*
31      * 一般都会覆盖此方法,根据对象的特有内容,建立判断对象是否相等的依据。
32      */
33     public boolean equals(Object obj) {//重写
34         if(!(obj instanceof Person)) {
35             throw new ClassCastException("类型错误");
36         }
37         Person p = (Person)obj;
38         return this.age == p.age;
39     }
40     
41     public int hashCode() {
42         return age;//重写哈希值,以年龄作为哈希值
43     }
44 }
45 class Demo {
46     
47 }
48 
49 
50 public class ObjectDemo2 {
51     public static void main(String[] args) {
52         Person p1 = new Person(20);
53         Person p2 = new Person(20);
54         
55         //getClass返回字节码文件对象 在内存中只有一份
56         Class clazz1 = p1.getClass();
57         Class clazz2 = p2.getClass();
58         System.out.println(clazz1 == clazz2);//打印true
59         System.out.println(clazz1.getName());//打印Person
60         
61     }
62 }
View Code

 

上一篇:动态代理中newProxyInstance中三个参数


下一篇:Java class的getName()和getCanonicalName()和getSimpleName()