public String toString()
{
StringBuffer result = new StringBuffer();
Formatter out = new Formatter(result);
out.format("$%.2f%n%d dollars%n%d quarters%n" +"%d dimes%n%d pennies%n",
total, dollars, quarters, dimes, pennies);
return result.toString();
}
在这段代码中,为什么使用StringBuffer,Formatter? 如何在类中自动调用toString()而不调用main()?
答案 0 :(得分:1)
你是对的,代码可以更简洁地编写为
return String.format("$%.2f%n%d dollars%n%d quarters%n%d dimes%n%d pennies%n",
total, dollars, quarters, dimes, pennies);
“$”的用途是什么
这里没有特殊含义(作为格式说明符)。它只是打印一个字面的美元符号。所以你得到的输出就像“$ 2.00”。
如何在类中自动调用toString()而不调用main()
生成文本输出的大多数方法(如System.out.println)
)将任何类型的Object作为参数并自行调用toString
。这样可以方便地处理null
(通过打印“null”而不是使用NullPointerException崩溃)。