Java 输出返回空值
我的类是为了输出月份和月数而构建的,并且运行良好,但是在我的类的某个地方,我的monthString被分配为null。我看不出我在哪里遇到了这个错误,我为我的错误代码道歉。泰~~~Java 输出返回空值,java,Java,我的类是为了输出月份和月数而构建的,并且运行良好,但是在我的类的某个地方,我的monthString被分配为null。我看不出我在哪里遇到了这个错误,我为我的错误代码道歉。泰~~~ public class MonthClass { private int monthNum; private String monthString; public MonthClass(int num) { monthNum = num; monthString =
public class MonthClass
{
private int monthNum;
private String monthString;
public MonthClass(int num)
{
monthNum = num;
monthString = monthName(num);
}
public void setmonthNum(int num)
{
monthNum = num;
monthString = monthName(num);
}
public String getmonthName(int num)
{
switch (num)
{
case 1: monthString = "January";
break;
case 2: monthString = "Febuary";
break;
case 3: monthString = "March";
break;
case 4: monthString = "April";
break;
case 5: monthString = "May";
break;
case 6: monthString = "June";
break;
case 7: monthString = "July";
break;
case 8: monthString= "Augest";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "This is not a month, re-enter a number";
break;
}
return monthString;
}
public String monthName(int num)
{
return monthString;
}
public String toString()
{
return "The month number is " + monthNum + " and the month name is " + monthString;
}
}
问题是您的代码在任何位置都不会修改
monthString
,其值始终保持为null
(引用类型的默认值)
您不应该调用monthName
,而应该调用getmonthName
(从月号到字符串的转换正在进行):
方法monthName
只是一个getter-它不修改monthString
。此外,由于此方法不使用任何参数,您也可以将其删除:
public String monthName() {
return monthString;
}
另外,在
switch
语句中的default
情况下,非月份字符串的赋值将以静默方式进行。您可能还想在控制台上打印一些东西。请不要使用亵渎的字眼。本网站不受年龄限制。
public String monthName() {
return monthString;
}