关于toString java的问题

时间:2015-03-08 12:59:59

标签: java tostring

我试图找出toString方法的作用。我在youtube上看了很多,google了很多。但这是我错过的东西。请注意,我已经完成了大约80个小时的java。

我知道toString是具有内置函数的方法(?)上的名称。我什么时候应该用这个?当我混合使用string和int / double时?

第二个问题可以用第一个回答。当我使用这个toString时它是如何工作的?通常一样吗?没有变化?

4 个答案:

答案 0 :(得分:1)

toString()返回调用它的对象的字符串表示。

当你在一个对象上调用toString()时,它可能会给你一个没有多大意义的字符串。将对象传递给System.out.println()时,此函数会调用对象的toString()方法。

您调用覆盖您班级的toString(),以便在您班级的对象上调用toString()时提供人类可读的字符串。

toString()对于记录,调试或任何想要将对象呈现/显示为String的时间非常有用。

答案 1 :(得分:0)

toString是Object类中的一个方法,它是所有类的父类。当您定义自己的自定义类时,如果要以可读的方式记录它,那么您将了解自定义对象的状态,然后通过覆盖Object类中的一个来定义toString方法。考虑遵循以下员工类:

public class Employee {
   private int id;
   private String name;
   ..
   @Override
   public String toString() {
       return "id: " + id +" name: " + name;
   }
}

现在,当您尝试写入标准输出员工对象时,您会看到:

 Employee employee = ...
 ...
System.out.println(employee);
Output:
id: .. name: ...

如果你不覆盖它,那么将调用对象的toString,它将是不可读的形式,如:

Employee@abbcc..

答案 2 :(得分:0)

tosTring是一种将类转换为字符串的方法。例如:

public class Person
{
    private String name;
    private String age;
    private String address;

    @Override
    public String toString()
    {

        return String.format("%10s %2d %20s",name,age,address);

    }
}

答案 3 :(得分:0)

toString是每个Object上的一个方法,它将内存中的逻辑二进制表示形式转换为人类可读形式的字符串(String)。

toStringObject.java的默认行为是返回:

class name + @ + memory address in hexadecimal

当您创建自己的类时,@Override此方法值得以后轻松找到错误。请参阅SMA关于如何执行此操作的答案。大多数框架的类已经有了这个方法,例如ArrayList打印:[对象0' s toString(),对象1' s toString(),对象2' s的toString()]。

当您向String对象添加任意对象时,如"hello " + empoyeetoString在后​​台调用,因此它大致变为"hello " + employee.toString()(我说"粗略&#34 ;因为StringBuilder涉及更多魔法,但作为初学者不应该担心。

它主要用于调试和日志记录。在生产代码中实际使用它并依赖于业务逻辑和UI中方法的输出,这被认为是不好的做法。