java 为什么要重写_【java】在java中为啥要重写toString 方法?

在java中为啥要重写toString 方法?下面我就以一个简单的例子来说明这个把。

先定义一个test5类。并写它的get,set方法。

package test5;

public class Test5 {

private String name;

private String sex;

private int No;

public void Show(){

System.out.println("这是我的展示方法!!!!");

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public int getNo() {

return No;

}

public void setNo(int no) {

this.No = no;

}

}

然后定义一个带有主函数的test6的类,如下:

package test5;

public class Test6 {

public static void main(String[] args) {

Class> demo= null;

try {

demo=Class.forName("test5.Test5");

} catch (ClassNotFoundException e) {

// TODO Auto-generated catch block

e.printStackTrace();

}

Test5 test5= new Test5();

test5.setName("xiaoming");

test5.setNo(001);

test5.setSex("man");

System.out.println(test5);

}

}

运行上面的程序发现,结果如下:

test5.Test5@e2cb55

显然这个并不是我们所想要得到的这个test5的属性值,原因很简单,就是object类里的toString只是把字符串的直接打印,

数字的要转化成字符再打印,而对象,则直接打印该对象的hash码。而上面的结果就是test5所对应的哈希值。

如果想要得到test5的各个属性值应该重写toString方法。如下:

public String toString(){

return "["+this.name+"  "+this.sex+"  "+this.No+"]";

}

则Test5应该写成如下:

package test5;

public class Test5 {

private String name;

private String sex;

private int No;

public String toString(){

return "["+this.name+"  "+this.sex+"  "+this.No+"]";

}

public void Show(){

System.out.println("这是我的展示方法!!!!");

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getSex() {

return sex;

}

public void setSex(String sex) {

this.sex = sex;

}

public int getNo() {

return No;

}

public void setNo(int no) {

this.No = no;

}

}

这次再运行test6时发现结果是:

[xiaoming  man  1]

好的,这就是要重写toString的一个地方!!!

### 回答1: JavatoString方法是Object类的一个方法,它返回一个字符串,用于表示该对象的字符串表示形式。默认情况下,toString方法返回的字符串是对象的类名和哈希码的十六进制表示。 然而,这种默认的toString方法往往不能满足我们的需求,因为它只提供了对象的基本信息,而没有提供更多的有用信息。因此,我们需要重写toString方法,以便返回更有用的信息,例如对象的属性值、状态等。 重写toString方法可以使我们更方便地调试和输出对象的信息,也可以使我们的代码更易于阅读和理解。因此,重写toString方法Java编程的一个常见实践。 ### 回答2: JavatoString()是一个非常有用的方法,它是Object类方法,它返回该对象的字符串表示形式。默认情况下,toString()方法将返回对象的类名,后跟“@”符号和十六进制哈希码。然而,在某些情况下,这种默认的字符串表示形式可能无法满足实际需求,因此我们需要重写toString()方法。 首先,重写toString()方法可以提高代码的可读性和可维护性。默认情况下,toString()方法返回的字符串可能只是一个十六进制哈希码,这对于调试和理解代码是没有帮助的。如果我们为对象的属性定义了一个良好的字符串表示形式,则可以通过在toString()方法返回该字符串来大大简化代码。 其次,重写toString()方法可以为对象的输出提供更多的控制。例如,如果我们希望在输出对象时仅显示其部分属性,则可以在toString()方法仅包含这些属性。这将帮助我们更好地控制输出和优化性能,特别是在大型应用程序。 此外,toString()方法还是调试对象时的有用工具。通过覆盖toString()方法,我们可以为对象定义一个易于阅读和理解的字符串表示形式,从而使调试更加简单和高效。 总之,在Java重写toString()方法是一种将对象转换为字符串的惯用方法,它为我们提供了一种更有效的方式来理解和控制对象的输出。虽然默认的toString()方法在某些情况下可能足够满足我们的需求,但通过覆盖它,我们可以进一步提高代码的可读性、可维护性和可控制性。 ### 回答3: Java是一种面向对象的编程语言,其的每个对象都有自己的特性和属性,因此也需要有相应的方法来表示和操作这些对象。在JavatoString方法就是其一个常用的方法,它是Object类的一个方法,用于将对象转换成字符串,便于输出和观察对象的属性。 然而,Object类toString方法只是简单地返回对象的类名和散列码,如果开发人员需要输出更具体的信息,就需要重写这个方法。以下是Java重新实现toString()的一些原因: 1.方便调试 使用Java的调试器时,toString方法可以向开发人员输出有关对象的详细信息,例如对象的属性和状态。这样,开发人员就可以更有效地调试代码和找出问题所在。 2.提供更好的日志信息 在Java应用程序,通常需要生成日志信息来记录应用程序的运行情况。通过重写toString方法,可以更好地记录对象的状态和变化,以及实现更高质量的日志记录。 3.更好的代码可读性 JavatoString方法还可以用于调试、测试和优化代码,因为它可以帮助开发人员更好地理解代码各个部分之间的关系。当在代码使用toString时,代码会变得更加容易阅读和理解。 4.更好的代码隔离性 JavatoString方法还可以用于与其他Java程序交互。当重写toString方法时,开发人员可以控制对象输出的信息,从而控制代码的可读性和隔离性。 总的来说,JavatoString方法可以帮助开发人员更好地理解和调试代码,优化日志记录和开发过程,提高代码的可读性和可维护性,从而提高Java程序的质量和性能。因此,JAVA需要重写toString方法
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值