• java -> equals方法与toString方法


    equals方法

    equals方法,用于比较两个对象是否相同,它其实就是使用两个对象的内存地址在比较。Object类中的equals方法内部使用的就是==比较运算符(比较内存地址)。

    在开发中要比较两个对象是否相同,经常会根据对象中的属性值进行比较,也就是在开发经常需要子类重写equals方法根据对象的属性值进行比较。如下代码演示:

    /*

        描述人这个类,并定义功能根据年龄判断是否是同龄人

        由于要根据指定类的属性进行比较,这时只要覆盖Object中的equals方法

        在方法体中根据类的属性值进行比较

     */

    class Person extends Object{

        int age ;

        //复写父类的equals方法,实现自己的比较方式

        public boolean equals(Object obj) {

            //判断当前调用equals方法的对象和传递进来的对象是否是同一个

            if(this == obj){

                return true;

            }

            //判断传递进来的对象是否是Person类型

            if(!(obj instanceof Person)){

                return false;

            }

            //将obj向下转型为Perosn引用,访问其属性

            Person p = (Person)obj;

            return this.age == p.age;

        }

    }

    注意在复写Object中的equals方法时,一定要注意public boolean equals(Object obj)的参数是Object类型,在调用对象的属性时,一定要进行类型转换,在转换之前必须进行类型判断。

    toString方法

    toString方法返回该对象的字符串表示,其实该字符串内容就是对象的类型+@+内存地址值。

    由于toString方法返回的结果是内存地址,而在开发中,经常需要按照对象的属性得到相应的字符串表现形式,因此也需要重写它。

    class Person extends Object{

        int age ;

        //根据Person类的属性重写toString方法

        public String toString() {

            return "Person [age=" + age + "]";

        }

    }

  • 相关阅读:
    Binary Trees
    [POJ] String Matching
    Tree
    Maxmum subsequence sum problem
    poj 2104 划分树
    poj 2486 树形dp
    poj 1848 树形dp
    hdu 4578 线段树
    hdu 4585 set应用
    hdu 2412 树形DP
  • 原文地址:https://www.cnblogs.com/miaoxingren/p/9388624.html
Copyright © 2020-2023  润新知