我试图找出toString
方法的作用。我在youtube上看了很多,google了很多。但这是我错过的东西。请注意,我已经完成了大约80个小时的java。
我知道toString
是具有内置函数的方法(?)上的名称。我什么时候应该用这个?当我混合使用string和int / double时?
第二个问题可以用第一个回答。当我使用这个toString
时它是如何工作的?通常一样吗?没有变化?
答案 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
)。
toString
中Object.java
的默认行为是返回:
class name + @ + memory address in hexadecimal
当您创建自己的类时,@Override
此方法值得以后轻松找到错误。请参阅SMA关于如何执行此操作的答案。大多数框架的类已经有了这个方法,例如ArrayList
打印:[对象0' s toString(),对象1' s toString(),对象2' s的toString()]。
当您向String对象添加任意对象时,如"hello " + empoyee
,toString
在后台调用,因此它大致变为"hello " + employee.toString()
(我说"粗略&#34 ;因为StringBuilder
涉及更多魔法,但作为初学者不应该担心。
它主要用于调试和日志记录。在生产代码中实际使用它并依赖于业务逻辑和UI中方法的输出,这被认为是不好的做法。