美文网首页
toString、==与equals方法

toString、==与equals方法

作者: Yanl__ | 来源:发表于2019-11-19 21:40 被阅读0次

    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:默认是比较两个对象的hashcode。是同一个对象的引用时返回true,否则返回false。equals就是调用的==来判断两个对象是否相同。可以自己重写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));
        }
    }
    

    相关文章

      网友评论

          本文标题:toString、==与equals方法

          本文链接:https://www.haomeiwen.com/subject/dmebictx.html