让我们搞搞清楚重写toString()到底是个什么玩意?

  OKOK自从开始java面向对象课程之后,作业里多了一个要求  overriding toString()   

  Fine  我身边很多人对此很困惑,这尼玛到底是个啥玩意哪里来的?为什么要重写呢?那么我来解答这个疑惑。

  首先,我们创建一个类对吧,其实都是继承了object类,这个类就是所有类的爸爸,那么问题来了,这里super类里面有一个toString() 方法。

  这是个什么几把玩意?

  不废话,我们看代码。

这边应该大家都看得懂,创建一个简单的car类对吧,有两个public属性,name和price。然后我们在函数体内new一个car1开辟内存了。

赋值名字为bick,价格123124.

然后输出这个变成什么呢?看output框

是不是很疑惑?这是什么东西?

这个就是原始的toString()方法,它输出的是一个内存地址(   = 类名字+@+哈希值)

okfine,哈希值是什么? 简单来说,内存地址经过底层算法加密出的值。(16进制)

这明显面向对象是没什么卵用的  那么我们就需要重写这个tostring方法  来输出一个用户看得懂的数据

 肯定是从对象角度出发,要让对象看得懂这车什么名字多少钱,对吧。

看代码,我们重写toSting()方法。

ok我们在car类里重写toString()方法。

接下来我们output一下下。

看这就很符合面向对象了,price 123124  name bick

 

 

tips,我们拓展一下。toSting() 和 (String)一样吗?

当然不一样。(Sting)是强制转化为字符串类,注意别混淆。

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董厂长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值