zoukankan      html  css  js  c++  java
  • 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 + "]";

        }

    }

  • 相关阅读:
    nginx简单配置
    解决 eclipse出现 Address already in use: bind
    JavaScript 正则表达式学习
    RabbitMQ的介绍与spring整合
    RabbitMQ的安装与客户端的简单实用
    java中的break与continue
    书单
    (七)SpringBoot2.0基础篇- application.properties属性文件的解析及获取
    (六)SpringBoot2.0基础篇- MyBatis、Redis整合(JedisCluster集群连接)
    (五)SpringBoot2.0基础篇- Mybatis与插件生成代码
  • 原文地址:https://www.cnblogs.com/miaoxingren/p/9388624.html
Copyright © 2011-2022 走看看