java--Object类--toString() 和equals()方法

package OBJECT_API;

import java.util.Objects;

public class object_api {
    private String name;
    private String sex;
    private int age;

    public object_api(){}
    public object_api(String name, String sex, int age) {
        this.name = name;
        this.sex = sex;
        this.age = age;
    }

    @Override
    public String toString() {
        return "object_api{" +
                "name=" + name +  +
                ", sex=" + sex +  +
                ", age=" + age +
                };
    }

    @Override
    public boolean equals(Object o) {
        if (this == o) return true;
        if (o == null || getClass() != o.getClass()) return false;
        object_api that = (object_api) o;
        return age == that.age && Objects.equals(name, that.name) && Objects.equals(sex, that.sex);
        //这里采用了Objects的equals方法,相较于Object的equals更安全
        //Object:如果传入null,则会报错
        //objects:传入null,不会报错,视情况返回false或true
    }



    public String getName() {
        return name;
    }

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

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

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

test类:

package OBJECT_API;
//  1.toString(),重写后输出对象的值
//  2.equals(),重写后比较两个对象的值是否相同,相同返回true,不同返回false
public class test_toString {
    public static void main(String[] args) {
        object_api sc = new object_api("小王","男",12);
        object_api sk = new object_api("小王","男",12);
     /*   System.out.println(sc.toString());返回地址OBJECT_API.object_api@1b6d3586
     当重写了toString方法后,就可以返回对象的值,重写代码见object_api类中15-22排
      */
        System.out.println(sc.toString());
//      输出:object_api{name=小王, sex=男, age=12}
/*
        System.out.println(sc.equals(sk));//equals()不重写使效果和(sc == sk)一样,比较地址,返回false
        System.out.println(sc == sk);//false
*/
        System.out.println(sc.equals(sk));//equals()重写代码见object_api类中26-32排
//      输出:true

    }
}

ps.学习记录,有错请指正

重写代码为IDEA自动生成

经验分享 程序员 微信小程序 职场和发展