java object - yaokun123/php-wiki GitHub Wiki

JAVA面向对象-Object

Object是所有类的根类。

Object是不断抽取而来的,具备着所有对象都具备的共性内容。

一、equals

展示其他某个对象是否与此对象“相等”

class Person{
    private int age;
    Person(int age){
        this.age = age;
    }
}

class ObjectDemo{
    public static void main(String[] args){
        Person p1 = new Person (20);
        Person p2 = new Person (20);
        Person p3 = p1;

        System.out.println(p1==p2);//false    对象比较的是地址
        System.out.println(p1.equals(p2));//false
        System.out.println(p1.equals(p3));//true
    }
}

equals方法覆盖

class Person{
    private int age;
    Person(int age){
        this.age = age;
    }
    
    public boolean equals(Object obj){//覆盖父类的equals方法
        Person p = (Person)obj;
        return this.age == p.age;
    }
}

class ObjectDemo{
    public static void main(String[] args){
        Person p1 = new Person (20);
        Person p2 = new Person (20);

        //年龄比价
        System.out.println(p1.equals(p2));//true
    }
}

二、hashCode

返回该对象的哈希码值

class ObjectDemo{
    public static void main(String[] args){
        Person p1 = new Person (20);

        System.out.println(p1);
        System.out.println(p1.hashCode());//十进制
        System.out.println(Integer.toHexString(p1.hashCode()));//十六进制
    }
}

三、getClass

返回此Object的运行时类

class ObjectDemo{
    public static void main(String[] args){
        Person p1 = new Person (20);
        Person p2 = new Person (20);

        class1 = p1.getClass();
        class2 = p2.getClass();

        System.out.println(class1 == class2 );//true
        System.out.println(class1.getName());//Person 
    }
}

四、toString

返回该对象的字符串表示