Java 调用我的方法时出现问题,有人能提供一些输入吗?
在过去的5个小时里,我一直坐在这里,试图理解我做错了什么。我有一个简单的初学者任务,就是创建多种不同的方法来找出一个用户名,该用户名存储为全局变量,以及它们出生的月份存储为整数。一旦整数被存储,我就使用switch语句来对应某个月份,我认为这个月份到目前为止还不错。然而,在调用我的主类中的方法时,我不断得到UsersName变量和monthString变量返回的null值Java 调用我的方法时出现问题,有人能提供一些输入吗?,java,Java,在过去的5个小时里,我一直坐在这里,试图理解我做错了什么。我有一个简单的初学者任务,就是创建多种不同的方法来找出一个用户名,该用户名存储为全局变量,以及它们出生的月份存储为整数。一旦整数被存储,我就使用switch语句来对应某个月份,我认为这个月份到目前为止还不错。然而,在调用我的主类中的方法时,我不断得到UsersName变量和monthString变量返回的null值 public class BirthMonthWithFunctions { public static Stri
public class BirthMonthWithFunctions {
public static String UsersName;
public static void main(String[] args) {
String monthString = null;
BirthMonthWithFunctions bm = new BirthMonthWithFunctions();
BirthMonthWithFunctions.getUsersName();
bm.getUsersBirthMonthNumber();
BirthMonthWithFunctions.computeBirthMonth(0);
System.out.print(UsersName + "Was born in: " + monthString);
}
static void getUsersName() {
String UsersName = JOptionPane.showInputDialog(null, "What is your name?");
}
public int getUsersBirthMonthNumber() {
int BirthMonth = Integer.parseInt(JOptionPane.showInputDialog(null,"Which month were you born in as an integer between 1-12?"));
return BirthMonth;
}
public static String computeBirthMonth(int BirthMonth) {
int choice = BirthMonth;
String monthString;
switch(choice) {
case 1: monthString = "January";
break;
case 2: monthString = "February";
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 = "August";
break;
case 9: monthString = "September";
break;
case 10: monthString = "October";
break;
case 11: monthString = "November";
break;
case 12: monthString = "December";
break;
default: monthString = "Invalid Month";
break;
}
return monthString;
}
}
你能试试我编辑过的这段代码吗
public static void main(String[] args) {
String monthString = null;
BirthMonthWithFunctions bm = new BirthMonthWithFunctions();
BirthMonthWithFunctions.getUsersName();
int BirthMonth = bm.getUsersBirthMonthNumber();
BirthMonthWithFunctions.computeBirthMonth(BirthMonth);
System.out.print(UsersName + "Was born in: " + monthString);
}
static void getUsersName() {
UsersName = JOptionPane.showInputDialog(null, "What is your name?");
}
还要从computeBirthMonth方法中删除字符串变量声明
应该是这样的:
public static String computeBirthMonth(int BirthMonth) {
int choice = BirthMonth;
switch(choice) {..............
}
return monthString;
}
我不确定我是否理解;在
getUsersName
中有一个本地变量(命名错误)UsersName
——它与静态变量不同。如果要设置静态变量,请不要创建同名的局部变量。不相关,但Java约定不使用大写字母命名变量,getter方法返回值。代码中有太多基本错误。不从方法返回值,不将返回值分配给变量,使用错误的作用域等等。我建议先学习Java基础教程,涵盖这些主题。