所以我刚刚学会了toString并且我制作了一个程序,用一个字符串显示日期,但是由于某种原因它在我运行之后在下面单独重复日期我得到了:
今天的日期是6/5/15
15年6月5日
public class PAN {
public static void main(String[] args) {
TnT tntobject = new TnT(6,5,15);
System.out.println(tntobject);
}
}
...
public class TnT {
private int month;
private int day;
private int year;
public TnT(int m, int d, int y){
month = m;
day = d;
year = y;
System.out.printf("The date for today is %s\n", this);
}
public String toString(){
return String.format("%d/%d/%d", month, day, year);
}
}
答案 0 :(得分:2)
从构造函数中删除System.out.printf("The date for today is %s\n", this);
,并将main( )
中的print语句修改为System.out.printf("The date for today is ", tntobject);
答案 1 :(得分:1)
通过创建某个类的Object,您正在调用构造函数。
在这种情况下,构造函数已经获得了System.out.print(// code);
这一行因此,为了将其打印出来,您只需写下:
TnT tnt =新TnT(5,6,7);
答案 2 :(得分:1)
请勿在{{1}}内打印。这不是一个好习惯!
这里的问题是你在构造函数中打印一次日期,然后再次在constructor
内打印它。
main
来自构造函数。然后在main方法里面, 添加
System.out.printf("The date for today is %s\n", this);