Java equals和toString用法

来源:互联网 发布:淘宝买隐形眼镜靠谱吗 编辑:程序博客网 时间:2024/06/02 02:54

1、代码

      User.java

public class User{String name;int age;        public User(String name,int age){this.name = name;this.age = age;}public boolean equals(Object obj){if(this == obj)return true;boolean b = obj instanceof User;if(b){User u = (User)obj;if(this.age == u.age && this.name.equals(u.name)){//int型可以直接用==判断是否相等,String型复写了equals,所以要用equals去比较是否相等return  true;}else{return false;}}else{return false;}}public String toString(){return "age="+age+",name="+name;}}


       Main.java

public class Main{public static void main(String args[]){User u1 = new User("lisi",21);User u2 = new User("lisi",21);User u3 = u2;System.out.println(u1.equals(u2));//会调用equals函数来判断,如果没有复写equals函数,默认的equals函数其实就是==System.out.println(u1==u2);//只会判断两者指向对象的地址是否相同,此时不同System.out.println(u3==u2);//只会判断两个指向对象的地址是否相同,此时相同System.out.println(u1);//调用toString}}


2、结果



3、解释

     判断非引用类型,比如int型,我们可以直接用==。

     判断引用类型,==判断是它们所指向对象的地址是不是相同。

     判断引用类型,要复写object类的equals方法。

0 0
原创粉丝点击