2013-03-21 108 views
-1

//我一直在试图理解字符串是如何工作的以及它的主要功能是什么,但是我遇到了麻烦。就像下面的例子。 toString方法到底做了什么?toString方法如何工作?

public class Item { 

    private String name; 
    private int price; 
    private int qty; 

    public Item() { 

    } 

    public Item(String n, int p, int q){ 
     this.name=n; 
     this.price=p; 
     this.qty=q; 
    } 

    public String getName() { 
     return name; 
    } 

    public int getPrice() { 
     return price; 
    } 

    public int getQty() { 
     return qty; 
    } 

    public String toString() { 
     return name +": $" + price+":" + qty; 
    } 

回答

7

的目的是toString明确记载在API中:

返回该对象的字符串表示。通常,toString方法返回一个字符串,用于“文本地表示”此对象。结果应该是简明但内容丰富的表示 ,这对人们来说很容易阅读。建议所有 子类重写此方法。

Object#toString() will produce: 

Object类的toString方法返回由 其中物体是一个实例,所述-SIGN 字符'@”的类的名称的字符串,并且无符号十六进制表示对象的散列 代码。换句话说,该方法返回一个字符串等于 ,它的值:

getClass().getName() + '@' + Integer.toHexString(hashCode()) 

如果你在你的类调用重写的toString到默认的对象#的toString()将yourclass#的toString更换()。在当前的代码,如果你尝试打印项目实例的输出将是格式:

name +": $" + price+":" + qty; 
+0

有意义...... – duffymo 2013-03-21 15:18:33

+0

要添加到此:应该说'toString'可以用来完全复制对象。例如,'Tile(int x,int y,int z)'会打印出来,如:'Tile [x = 5] [y = 1] [z = 7]'。 – 2013-03-21 15:20:16

1

toString通常是对象的用户友好/可读的字符串表示形式。您可以将其用于调试,记录或向最终用户/客户端显示信息。

这里是一个简短的tutorial讨论如何以及何时使用toString。

0

toString是每当java需要您的类的对象的字符串表示形式时调用的函数。例如,如果您致电System.out.println(a);,其中a的类型为Item,则会显示由toString返回的值。此方法是Object的一部分,因此每个java对象都有一些默认实现。仍然在很多情况下,它没有足够的信息量,它更好地覆盖它。

0

toString提供的Object

0123一 String表示

想象一下这个类及以下电话:

System.out.println(aPerson.getName()); 

我们toString方法意味着我们可以简单地做:

System.out.println(aPerson); 
0

我喜欢把toString()作为一个方便的功能。当你做这样的事情:

MyObject m = ...// 
System.err.println(m); 

println(m)实际上是调用m.toString()获取对象的人类可读表示。它每个Object都是固有的,所以你可以总是覆盖它,让它返回一个最能描述你自己对象的字符串。