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

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

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

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

  这是个什么几把玩意?

  不废话,我们看代码。

让我们搞搞清楚重写toString()到底是个什么玩意?_第1张图片

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

赋值名字为bick,价格123124.

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

让我们搞搞清楚重写toString()到底是个什么玩意?_第2张图片

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

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

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

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

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

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

让我们搞搞清楚重写toString()到底是个什么玩意?_第3张图片

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

接下来我们output一下下。

让我们搞搞清楚重写toString()到底是个什么玩意?_第4张图片

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

 

 

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

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

 

你可能感兴趣的:(java)