我的任务是打印格式化的字符串月份#是NNNN(其中#符号是字段monthNumber
的值,NNNN是字段monthName
的值。问题是,当我点击{{ 1}},它出现'null'。
我该如何解决?
getMonthName
答案 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的了解。