package com;
public class leetcode2 {
public Integer id;
public String name;
@Override
public String toString() {
return "leetcode2 [id=" + id + ", name=" + name + "]";
}
public void abc() {
System.out.println("leetcode2 [id=" + id + ", name=" + name + "]");
}
public static void main(String[] args) {
leetcode2 lc = new leetcode2();
lc.id = 1;
lc.name = "James";
lc.abc();
lc.toString();
}
}
所谓返回结果和输出是两回事
String result = lc.toString();
这个result才是返回的结果
但是你不能写
String result = lc.abc();,因为abc是void的
无论是void还是别的,都可以通过System.out.println向控制台输出,这个和返回结果无关。return语句才是返回。
你把返回结果的意思弄错了,当成是打印输出结果了
lc.abc();
lc.toString();
这两行代码等于调用对象Ic的方法abc()和toString()
abc()方法是void,所以无返回结果
这个方法做的事情是 System.out.println("leetcode2 [id=" + id + ", name=" + name + "]");
也就是打印输出字符串leetcode2 [id=" + id + ", name=" + name + "]
所以你会看到leetcode2 [id=" + id + ", name=" + name + "]
toString()方法是String,所以有返回结果
这个方法做的事情是return "leetcode2 [id=" + id + ", name=" + name + "]";
也就是返回字符串leetcode2 [id=" + id + ", name=" + name + "]
但是你并不能看到这行字符串,因为你没打印输出
你能不能看到这行字符串,和方法有没有返回结果无关
换一种说法,就是你把System.out.println的输出结果,当成是判断有没有返回结果的依据,这两者没有任何关系