知道为什么我的代码不显示结果吗?也许我搞砸了一些东西,顺便说一句,我刚刚接触编程。
该程序的目标是查看主类给出的日期是否有效,它并没有具体说明二月和闰年等细节,因此非常简单。
这是我的DataRec.java
:
public class DateRec {
int month, day, year;
boolean good;
public DateRec (){
month = 1;
day = 1;
year = 2008;
good = true;
}
public DateRec (int setMonth, int setDay, int setYear){
month = setMonth;
day = setDay;
year = setYear;
}
public void validate (){
if ((month < 0) || (month > 12)){
good = false;
if (year == 0)
good = false;
if ((day < 0) || (day > 31))
good = false;
}
}
@Override
public String toString() {
if (good = true) {
return String.format("%dd/%dd/%dddd", month, day, year);
} else {
return String.format("%dd/%dd/%dddd", month, day, year);
}
}
}
这是我的主类DataRecTest.java
:
public class DateRecTest {
public static void main (String[] args){
DateRec today = new DateRec(1,2,2014);
DateRec anyDay = new DateRec();
DateRec noDay = new DateRec(13,31,2014);
anyDay.validate();
today.validate();
noDay.validate();
today.toString();
anyDay.toString();
noDay.toString();
}
}
最佳答案
boolean (good)
的默认值为false
,因此您需要在构造函数
中初始化good
> 或validate()
函数,即good = true; // in constructor or validate function
要查看结果,您需要打印它们。
//To print in java use System.out.print() or println(); System.out.println(today.toString()); //or simply System.out.println(today); // println will call today.toString() internally
[编辑]
由于您将结果存储在 good
中,我建议如下:
public DateRec (int setMonth, int setDay, int setYear){
month = setMonth;
day = setDay;
year = setYear;
good = true;
validate();
}
现在你不需要每次都调用validate()
;只需检查 good
的值
关于java - 结果未显示,日期验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20881957/