2017-02-11 51 views
-3

我的老師想要運行類似於這樣的「java方法-r事實3」來獲得階乘3的結果並能夠更改-r至-d以顯示獲取的過程結果而不僅僅是結果。將標誌設置爲java上的方法

我找不到如何爲每個類「分配」-r或-d或者名稱是什麼。有人可以幫忙嗎?我是新來的。

+0

ie。命令行參數? https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html –

+0

是的,有點像。所以我有兩個類,例如factorial和factoriald,我將如何使「-r」運行階乘和-d運行factoriald? – Abby

回答

0

argsmain方法的數組包含命令行參數。 -r-d將位於args的位置0。你想要這樣的東西:

public static class CalculateFactorials { 
    public static void main(String[] args) { 
     if (args[0].equals("-r")) { 
      factorial(); 
     } 
     else if (args[0].equals("-d")) { 
      factoriald(); 
     } 
    } 
    public static void factorial() { 
     //calculate factorial 
    } 
    public static void factoriald() { 
     //calculate factorial while showing process 
    } 
} 
+0

完美,謝謝!爲此,factorial和factoriald必須位於同一個文件中,對嗎?我有他們單獨的,但我相信我可以複製和粘貼兩種方法的主要。 – Abby

+0

是的,但您不必將它們放在同一個文件中。如果它們是兩個不同的類文件,則可以通過'object.method()'創建對象並調用適當的方法,或者如果這些方法是靜態方法,則可以在不創建對象的情況下調用它們,如'ClassName.staticMethod ()'。 – badjr

+0

謝謝我試着寫: 'if(args [0] .equals(「 - r」)&& args [1] .equals(「fact」)){ fact(); ' 但它在事實行上顯示「期望的方法調用」。我試圖複製下面的事實代碼,但它不起作用。我也嘗試寫'fact.staticMethod(); '它不能解決staticMethod,我不知道我是否做錯了什麼。 – Abby