簡體   English   中英

從另一個Java類調用“非空”方法

[英]Calling a “non-void” method from another Java class

這是我嘗試調用的方法:

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進行搜索無濟於事。 任何正確方向的指針都將不勝感激!

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不使用您傳遞的值,因此您可以將其seu03Menu值,例如0

您正在調用的方法返回int

您需要在代碼中初始化對方法值的引用,以獲取方法的值。

您也不需要在方法的簽名中添加參數,因為它是根據System輸入流( System.in )中被掃描的結果生成結果的。

您可以這樣操作:

  • 將方法簽名更改為無參數: public static int seu03Menu()
  • 在方法的主體中,更改option = console.nextInt(); return console.nextInt();
  • 這樣調用您的方法: int theResult = seu03Methods.seu03Menu();

您的方法將從System.in流中獲取一個int類型的值,然后將其返回。 您的theResult方法作用域變量將保存該值。

另外,我強烈建議:

  • 檢查方法主體中的異常(如果查詢一次鍵入非整數值會發生什么情況?請自己嘗試)
  • 使用Java約定(類名CamelCase)
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
   }
}

進行如下更改:更改主seu03Methods.seu03Menu(int選項)中的行;

int option = seu03Methods.seu03Menu;

並將方法public static int seu03Menu(int option)的定義更改為public static int seu03Menu()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM