首页 > 编程语言 > 详细

Java学习笔记13(equals()方法;toString()方法)

时间:2019-03-18 21:13:29      阅读:149      评论:0      收藏:0      [点我收藏+]

equals()方法;

  equals方法是Object类中的方法;Object是所有类的祖宗,所以所有类都有equals()方法;

  boolean equals(Object obj);

  equals方法是比较两个对象是否相等;对象为引用数据类型,比较的是内存地址;

public class Person {
    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
    
}
public class Test1 {
    public static void main(String[] args) {
        Person p1=new Person();
        p1.setName("张三");
        System.out.println(p1);//p1内存地址
        Person p2=new Person();
     p2.setName("张三"); System.out.println(p2);
//p2内存地址boolean b=p1.equals(p2); System.out.println(b); } }//运行结果:com.zs.demo5.Person@15db9742 // com.zs.demo5.Person@6d06d69c // false

可以看出,虽然p1与p2内用相同,但是内存地址却不同,所以比较结果为false;很多情况下我们是要比较他们的内容是否相同,所以需要重写equals方法;

public class Person {
    private String name;

    public String getName() {
        return name;
    }

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

    @Override
    public int hashCode() {
        final int prime = 31;
        int result = 1;
        result = prime * result + ((name == null) ? 0 : name.hashCode());
        return result;
    }

    @Override
    public boolean equals(Object obj) {//重写equals方法
        if (this == obj)
            return true;
        if (obj == null)
            return false;
        if (getClass() != obj.getClass())
            return false;
        Person other = (Person) obj;
        if (name == null) {
            if (other.name != null)
                return false;
        } else if (!name.equals(other.name))
            return false;
        return true;
    }
}
public class Test1 {
    public static void main(String[] args) {
        Person p1=new Person();
        p1.setName("张三");
        System.out.println(p1);//p1内存地址
        Person p2=new Person();
     p2.setName("张三"); System.out.println(p2);
//p2内存地址boolean b=p1.equals(p2); System.out.println(b); } } //运行结果:com.zs.demo5.Person@bd308 //     com.zs.demo5.Person@1f //     true

toString()方法;输出语句中调用的是toString方法,上例中,输出的是内存地址,当需要看对象中的值的时候,就重写toString()方法;

public class Person {
    private String name;

    public String getName() {
        return name;
    }

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

    @Override
    public String toString() {//重写toString()方法
        return "Person [name=" + name + "]";
    }
    
}
public class Test1 {
    public static void main(String[] args) {
        Person p1=new Person();
        p1.setName("张三");
        System.out.println(p1);//p1内存地址
        Person p2=new Person();
     p2.setName("张三"); System.out.println(p2);
//p2内存地址 } }//运行结果:

//Person [name=张三]
//Person [name=张三]


 

 

  

  

Java学习笔记13(equals()方法;toString()方法)

原文:https://www.cnblogs.com/Zs-book1/p/10554856.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!