Java基础-equals和==

package com.hspedu.equals_;

public class Course321 {
    public static void main(String[] args) {
        // == 和 equals

        /*
        * 基本数据类型:==比较值是否相等
        * 引用数据类型:==比较对象地址是否相等,是否指向同一对象;equals比较对象存储的值
        * */
        Person p1 = new Person();
        p1.name = "hspedu";

        Person p2 = new Person();
        p2.name = "hspedu";

        System.out.println(p1 == p2);   // false
        System.out.println(p1.name.equals(p2.name));    // true
        System.out.println(p1.equals(p2));  // false

        String s1 = new String("abc");
        String s2 = new String("abc");

        System.out.println(s1.equals(s2));  // true
        System.out.println(s1 == s2);   // false

    }
}

class Person {

    public String name;
}

 

package com.hspedu.equals_;

public class Course321 {
    public static void main(String[] args) {
        //

        Person person1 = new Person("jack", 10, '男');
        Person person2 = new Person("smith", 10, '男');
        Person person3 = new Person("jack", 10, '男');

        System.out.println(person1 == person2);
        System.out.println(person1.equals(person2));
        System.out.println(person1.equals(person3));

        /*
         * 如何比较两个对象的所有属性值?
         *  object类的equals方法,比较地址,需要重写方法
         * */


    }
}


class Person {

    private String name;

    private int age;

    private char gender;


    public boolean equals(Object obj) {
        if (this == obj) {
            return true;
        }
        // 类型判断,如果是Person类可以比较
        if (obj instanceof Person) {
            Person p = (Person) obj;
            return this.name.equals(p.name) && this.age == p.age && this.gender == p.gender;
        }

        return false;
    }

    public Person(String name, int age, char gender) {
        this.name = name;
        this.age = age;
        this.gender = gender;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getAge() {
        return age;
    }

    public void setAge(int age) {
        this.age = age;
    }

    public char getGender() {
        return gender;
    }

    public void setGender(char gender) {
        this.gender = gender;
    }

}

 

posted @ 2022-02-24 16:21  柯南同学  阅读(23)  评论(0编辑  收藏  举报