有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

从另一个Java类调用“非类”方法

这是我尝试调用的方法:

public static int seu03Menu(int option)
{
Scanner console = new Scanner(System.in);
System.out.println("*************************************************************");
System.out.println("Welcome to the 1323 System \nPlease choose an option from our menu\n");
System.out.println("1. Calculator");
System.out.println("2. Sentence Analysis");
System.out.println("3. Roll Dice");
System.out.println("4. Big Money");
System.out.println("\n9. Exit");
System.out.println("Option:");
option = console.nextInt();
return option;
}

这就是我试图调用该方法的方式:

public static void main (String[] args)
{
seu03Methods.seu03Menu(int option);
switch (option)
{
case 1:
    seu02.calculator();
    break;
case 2:
    seu03Methods.sentenceAnalysis();
    break;
case 3:
    seu03Methods.rollDice();
    break;
case 4:
    seu03Methods.bigMoney();
    break;
case 9:
    System.out.println("Exiting seu03...");
    break;
default:
    System.out.println("Invalid selection.");
    break;
}

我们还没有讨论如何调用不仅仅是“publicstaticvoid”的方法,所以我完全不懂。我是Java新手,所以尝试使用Google和Stack Overflow来搜索它是徒劳的。非常感谢任何指向正确方向的指针


共 (4) 个答案

  1. # 1 楼答案

    int option = seu03Methods.seu03Menu (0);
    

    seu03Menu不应采用参数。在Java中,参数是传递给方法的值;方法的输出返回给调用方的唯一值是返回值。seu03Menu不使用传递给它的option的值。因此,它不应该采用参数,而是应该如下所示

    public static int seu03Menu()
    {
    ... other stuff
    int option = console.nextInt();
    return option;
    }
    

    然后你会这样称呼它:

    int option = seu03Methods.seu03Menu ();
    

    如果seu03Menu不是可以更改的,那么必须将某个整数作为参数传递给它。但是因为seu03Menu不使用传递给它的值,所以可以根据需要制作任何东西,比如0

  2. # 2 楼答案

    public static int seu03Menu(){
        Scanner console = new Scanner(System.in);
    
        //All your options
    
        int option = console.nextInt();
        return option;
    }
    
    public static void main (String[] args){
      int option = seu03Methods.seu03Menu();
       switch( option ){
         //rest of your code
       }
    }
    
  3. # 3 楼答案

    您调用的方法返回int

    为了获得方法的值,需要在代码中初始化对方法值的引用

    您也不需要向方法的签名中添加参数,因为它根据System输入流(System.in)中扫描的结果生成结果

    你可以这样做:

    • 将方法签名更改为无参数:public static int seu03Menu()
    • 在方法体中,将option = console.nextInt();更改为return console.nextInt();
    • 这样调用您的方法:int theResult = seu03Methods.seu03Menu();

    您的方法将从System.in流中获取一个int类型的值,然后返回它。 你的theResult方法作用域变量将保存该值

    此外,我强烈建议:

    • 检查方法体中是否存在异常(如果在查询时键入非整数值会发生什么情况?请自己尝试)
    • 使用Java约定(类名为CASE)
  4. # 4 楼答案

    进行如下更改: 换乘主线 我们有很多方法。seu03菜单(int选项)

    int option=seu03Methods。菜单

    及 更改方法的定义 public static int seu03Menu(int选项)到public static int seu03Menu()