2013-09-25 58 views
1

這是一個「非空」的方法,我試圖調用方法:調用從另一個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; 
} 

我們沒有介紹如何調用不僅僅是「public static void」的方法,所以我完全失去了。我是Java的新手,所以試圖用Google和Stack Overflow來搜索這個東西並沒有用。任何正確的方向指針非常感謝!

+0

都在同一類的功能? – Swayam

回答

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

+0

好吧,好東西。現在我只需要完成自己的開關教學就可以完成這項工作,我們會很好。我的教授非常熱情,但很少涵蓋我們需要的所有材料:P謝謝! – Levi

0

你打電話的方法返回int

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

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

你可以做,因爲這樣的:

  • 改變方法簽名沒有參數:public static int seu03Menu()
  • 在你的方法體
  • ,改變option = console.nextInt();return console.nextInt();
  • 打電話給你的方法,例如:int theResult = seu03Methods.seu03Menu();

您的方法將採用int鍵入的值從System.in流,然後返回它。 您的theResult方法範圍變量將保存該值。

此外,我強烈建議:

  • 檢查的方法的身體異常(如果你輸入了非整數值會發生什麼,一旦查詢?自己嘗試)
  • 使用Java的約定(類名首字母大寫)
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 
    } 
} 
0

作出這樣的變化:主要 seu03Methods.seu03Menu(INT選項) 變線;

INT選項= seu03Methods.seu03Menu;方法 公共靜態INT seu03Menu(INT選項)的

和 改變定義公共靜態INT seu03Menu()