下面我有两个类。当我运行 TestSimple 类时,它打印出“blueblueblue 是蓝色重复的”。该打印语句执行为 System.out.println(item)
这是 Simple()
的一个实例类(class)。我以前从未见过一个对象作为短语打印出来,而且我很难确定为什么会发生这种情况。
我看到Simple
中有一个方法类名为 toString
它应该在调用时打印出来,但我没有看到该方法在任何地方被调用。这是怎么回事?
public class Simple {
private String word;
private String phrase;
public Simple(int number, String w) {
word = w;
phrase = mystery(number, w);
}
private String mystery(int num, String s) {
String answer = "";
for (int k=0; k<num; k++) {
answer = answer + s;
}
return answer;
}
public String toString() {
return phrase + " is " + word + " repeated";
}
}
和
public class TestSimple{
public void print() {
Simple item = new Simple(3, "blue");
System.out.println(item);
}
public static void main(String[] args) {
new TestSimple().print();
}
}
最佳答案
System.out
是 PrintStream
, PrintStream.println(Object)
(来自链接的 Javadoc)首先调用 String.valueOf(x)
获取打印对象的字符串值和 String.valueOf(Object)
返回 obj.toString()
的值
关于java - 为什么应用于该对象的 System.out.println 会打印这个短语?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59418083/