Object——toString方法和equals方法

前言:

在java中,所有类都是有继承关系存在的,都默认继承Object类。当一个类继承了其他父类,它并不会直接继承Object类,但是它的父类若是没有其他继承关系也会默认继承Object类,子类也可以继续调用Object类。

Object类提供着许多方法,但是这些方法在开发过程中往往不能满足程序员想要的功能,一般会对Object类的方法进行重写,以满足功能开发的多样性。

本文介绍常用的tostring方法和equals方法。

toString方法

我们之前打印出整个数组的方法是应用Arrays.ToString方法,若是打印一个对象则可以使用Object自带的toString方法(sout的形式用对象名即可打印)。

先来看一段代码:

我们先定义了一个学生类,可以看见,打印出来的是个地址,但是如果我加上toString方法:

就可以打印出来整个对象。为什么会这样呢?

前面说过,Object类自带的方法往往需要重写才能发挥程序员所需要的功能,我们先看看toString原方法:

默认打印对象时会调用该方法

由图可知,原先的方法是类名 + “@”+ 地址组成的(内部实现可自行查看,按住ctrl+点击),我们通过了重写的方法使得他能够打印出整个对象。当然,也可以在toString方法中任意返回其他值。

如:

equals方法

这是一个比较的方法,一般来说,在使用“==”时,会自动调用equals方法。对于俩测基本类型变量,比较的是值是否相同;对于俩测引用变量,比较的是地址是否相同。如果想要比较对象的内容是否相同,则必须重写该equals方法,否则会按照默认的地址比较方法比较。

equals方法内部:

返回值是boolean类型的,使用引用中的地址进行比较,默认使用“==”来比较时会调用该方法

这是包含地址和基本数据类型的比较,我们可以重写此类方法,检测对象内容是否完全相同:

例如写了三个比较方法,我们使用第三个比较方法,则可得:

equals提供了许多重写方法,我们也可以自定义重写方法,对比较相同对象时提供方便。

总结:

使用方法:类型.equals(类型)

只使用数据类型变量或只比较地址的话直接使用“==”

若是想比较字符串变量或者其他的引用变量则使用equals方法

若想比较对象的属性值时则必须重写equals方法并且使用

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值