Java 输出返回空值

Java 输出返回空值,java,Java,我的类是为了输出月份和月数而构建的,并且运行良好,但是在我的类的某个地方,我的monthString被分配为null。我看不出我在哪里遇到了这个错误,我为我的错误代码道歉。泰~~~ public class MonthClass { private int monthNum; private String monthString; public MonthClass(int num) { monthNum = num; monthString =

我的类是为了输出月份和月数而构建的,并且运行良好,但是在我的类的某个地方,我的monthString被分配为null。我看不出我在哪里遇到了这个错误,我为我的错误代码道歉。泰~~~

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;
}