用月份切换语句

时间:2015-09-30 22:37:34

标签: java null switch-statement

我的任务是打印格式化的字符串月份#是NNNN(其中#符号是字段monthNumber的值,NNNN是字段monthName的值。问题是,当我点击{{ 1}},它出现'null'。

我该如何解决?

getMonthName

2 个答案:

答案 0 :(得分:1)

很抱歉,您似乎在致电monthNumber之后仅指定了setMonthName()

重新排列构造函数中的代码:

   monthNumber = input;
   setMonthName();
   printMonth(input);

此外,在setMonthName()中,您可以指定参数,该参数由于具有相同的名称而覆盖了类中的字段。 (最好在IDE中打开警告)从setMonthName()中删除参数,然后实际设置对象中的字段。

private void setMonthName()
{
    switch(monthNumber){
    [...]
    }
}

最后,与您提出的问题无关,我建议更改printMonth(int input)以使用对象中的字段,而不是从setMonthName()复制您的switch语句。

答案 1 :(得分:0)

问题1。

方法monthName中的

setMonthName()与类monthName中的字段 Month不同。在方法中设置名称时,字段仍为空。

问题2。

使用的

monthNumber是在调用该方法后设置的setMonthName()方法。此时monthNumber将始终 0 ,您将始终转到交换机中的默认子句。

修复1。

private void setMonthName(String monthName)
{
    switch(monthNumber){
        case 1:
            this.monthName = "January";
            break;
        case 2:
            this.monthName = "February";
            break;
      ...

修复2。

monthNumber = input;
setMonthName(monthName);
printMonth(input);

概要

阅读有关在java中传递参数的信息。上面提到的更改将修复您的代码,但不会修复您对java的了解。