toString、==与equals方法

2019-11-19  本文已影响0人  Yanl__

1.toString
2.==与equals方法

1.toString方法

1.1 toString源码

public String toString() {
    return getClass().getName() + "@" + Integer.toHexString(hashCode());
}

在Object类中定义类toString方法,返回值是String类型。默认返回类名+@+16进制的的hashcode
1.2 toString()测试与重写

class Person2 {
    String name;
    int age;
}
public class TesttoString {
    public static void main(String[] args) {
        Person2 p2 = new Person2();
        System.out.println(p2);
    }
}

输出结果:
cn.yan.oo.Person2@61bbe9ba

重写toString方法

class Person2 {
    String name;
    int age;

    public Person2(String name, int age) {
        this.name = name;
        this.age = age;
    }
    //重写toString方法
    public String toString(){
        return "名称:"+name+",年龄:"+age;
    }
}
public class TesttoString {
    public static void main(String[] args) {
        Person2 p2 = new Person2("yan",18);
        System.out.println(p2);
    }
}

输出结果:
名称:yan,年龄:18

2.==与equals方法

//重写equals
class Person3{
    int id;
    String name;

    public Person3(int id, String name) {
        this.id = id;
        this.name = name;
    }
    // 重写equals方法
    public boolean equals(Object obj){
        if(obj==null) {
            return false;
        }else{
            if(obj instanceof Person3){
                Person3 c = (Person3) obj;
                if(this.id==c.id){
                    return true;
                }
                return false;

            }
            return false;
        }
    }

}
public class TestEquals {
    public static void main(String[] args) {
        Person3 p1 = new Person3(1, "yan");
        Person3 p2 = new Person3(1, "yan");
        System.out.println(p1==p2);
        System.out.println(p1.equals(p2));
    }
}
上一篇 下一篇

猜你喜欢

热点阅读