重写toString输出对象,输出实例对象为什么会输出toString内容
时间: 2023-03-27 14:01:40 浏览: 67
当我们使用System.out.println()或者其他输出方法输出一个对象时,实际上是调用了该对象的toString()方法。如果我们没有重写该方法,那么默认会输出该对象的类名和哈希码。如果我们重写了该方法,那么输出的就是我们自定义的内容。因此,重写toString()方法可以让我们更好地输出对象的信息。
相关问题
tostring方法重写实例
下面是一个重写tostring方法的示例:
```lua
-- 定义一个Person类
Person = {name = "Tom", age = 20}
-- 重写tostring方法
function Person:__tostring()
return "name: " .. self.name .. ", age: " .. self.age
end
-- 创建一个Person对象
p = Person
-- 输出Person对象
print(p)
```
输出结果为:
```
name: Tom, age: 20
```
在上面的示例中,我们定义了一个Person类,并重写了其tostring方法,使其返回一个包含name和age属性的字符串。
在创建Person对象后,我们直接输出该对象,此时会调用tostring方法并返回一个字符串。
重写 tostring
重写 `toString()` 方法是指在一个类中自定义该方法,以便在需要将该类的实例转换成字符串时,输出自定义的字符串表示形式。以下是一个简单的示例:
```java
public class MyClass {
private int x;
private String y;
public MyClass(int x, String y) {
this.x = x;
this.y = y;
}
@Override
public String toString() {
return "MyClass{x=" + x + ", y='" + y + "'}";
}
}
```
在上述示例中,我们重写了 `toString()` 方法,其中返回了一个字符串,该字符串包含了 `x` 和 `y` 的值。当我们需要将 `MyClass` 类的实例转换成字符串时,就会输出自定义的字符串表示形式,而不是默认的类名和哈希码。