Java 调用我的方法时出现问题,有人能提供一些输入吗?

Java 调用我的方法时出现问题,有人能提供一些输入吗?,java,Java,在过去的5个小时里,我一直坐在这里,试图理解我做错了什么。我有一个简单的初学者任务,就是创建多种不同的方法来找出一个用户名,该用户名存储为全局变量,以及它们出生的月份存储为整数。一旦整数被存储,我就使用switch语句来对应某个月份,我认为这个月份到目前为止还不错。然而,在调用我的主类中的方法时,我不断得到UsersName变量和monthString变量返回的null值 public class BirthMonthWithFunctions { public static Stri

在过去的5个小时里,我一直坐在这里,试图理解我做错了什么。我有一个简单的初学者任务,就是创建多种不同的方法来找出一个用户名,该用户名存储为全局变量,以及它们出生的月份存储为整数。一旦整数被存储,我就使用switch语句来对应某个月份,我认为这个月份到目前为止还不错。然而,在调用我的主类中的方法时,我不断得到UsersName变量和monthString变量返回的null值

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基础教程,涵盖这些主题。