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

时间:2013-09-25 19:46:05

标签: java class methods

这是我试图调用的方法:

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;
}

我们还没有涵盖如何调用不仅仅是" public static void"所以我完全迷失了。我是Java的新手,所以尝试使用Google和Stack Overflow搜索这个并没有用。任何指向正确的方向都非常感谢!

4 个答案:

答案 0 :(得分:0)

int option = seu03Methods.seu03Menu (0);

seu03Menu不应该参数。在Java中,参数是将传递到方法中的值;返回到调用方的唯一值是传递 out 的方法,它们是返回值。 seu03Menu不会使用传递给它的option值。因此,它不应该采用参数,而应该看起来像

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

然后你会这样称呼它:

int option = seu03Methods.seu03Menu ();

如果seu03Menu不是你可以改变的东西,那么你必须传递一些整数作为参数。但由于seu03Menu不使用您传递的值,因此您可以将其设为任意内容,例如0

答案 1 :(得分:0)

您正在调用的方法返回int

您需要在代码中初始化对方法值的引用,以获取方法的值。

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

你可以这样做:

  • 将方法签名更改为无参数:public static int seu03Menu()
  • 在您方法的正文中,使用option = console.nextInt();
  • 更改return console.nextInt();
  • 按此方式调用您的方法:int theResult = seu03Methods.seu03Menu();

您的方法将从int流中获取System.in类型的值,然后将其返回。 您的theResult方法范围变量将保存该值。

此外,我强烈建议:

  • 检查方法体中的异常(如果在查询后键入非整数值会发生什么?自己尝试)
  • 使用Java-conventions(类名CamelCase)

答案 2 :(得分:0)

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 :(得分:0)

进行如下更改: 改变主线 seu03Methods.seu03Menu(int option);

int option = seu03Methods.seu03Menu;

和 改变方法的定义 public static int seu03Menu(int option)to public static int seu03Menu()