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 Person1 extends Object{
22 private int age;
23 Person1(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
34 /*
35 * 像数据模型的类,会产生很多对象的这种一般开发的时候通常覆盖以下三种方法。
36 */
37 public boolean equals(Object obj) {//重写
38 if(!(obj instanceof Person1)) {
39 throw new ClassCastException("类型错误");
40 }
41 Person1 p = (Person1)obj;
42 return this.age == p.age;
43 }
44
45
46 public int hashCode() {
47 return age;//重写哈希值,以年龄作为哈希值
48 }
49 public String toString() {
50 return "Person:"+age;
51 }
52 }
53
54
55
56 public class ObjectDemo3 {
57 public static void main(String[] args) {
58 Person1 p1 = new Person1(20);
59 Person1 p2 = new Person1(20);
60
61 System.out.println(p1.toString());//
62 System.out.println(p1.getClass().getName()+"$"+Integer.toHexString(p1.hashCode()));
63
64 }
65 }