Java的Object类及equals()方法与toString()方法

equals():

    boolean(返回值类型)        equals(Object  obj);形参传的是obj类型,不管你要比较的对象是什么,都可以定义为object的子类,用多态进行向上转型,当需要用子类独有的功能时,进行向下转型。

    ==当两边是基本数据类型时,比较的是是值;

    ==当两边是引用数据类型时,比较的是地址。

    public boolean  equals   (object obj){

         if(obj==null){

              return  false;

                }

         if(obj==this){

              return  true;

                }

          //向下转型

            if(obj  instanceof  Person){

               Person p=(Person)obj;

                return  this.name.equals(p.name)&&this.age==p.age;    多态(obj访问name访问不到,多态的特点父类有成功,没有失败) 因为name属性是String类型,所以需要用equals方法, 而String类型早已经被jdk写好了。                

                        }

             return  false;

                    }

    equals()方法用来比较引用数据类型的内容,但对于自己写的类成员变量的内容,需要自己重写equals()方法。

toString()方法:

    String    toString();返回该对象的字符串表示。

    当直接打印一个对象时,默认使用toString()方法。

    自己定义的类重写toString()方法:

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

    早已存在的类的toSring()重写方法:

      public String toString() {
         return "Person [name=" + name + ", age=" + age + "]";
      }

原文地址:https://www.cnblogs.com/maxuefeng/p/13753508.html