2017-02-11 6 views
-3

私の先生は、 "java Methods -r fact 3"のようなものを実行して、階乗3の結果を取得し、-rを-dに変更して取得プロセスを表示できるようにします結果だけではなく結果Javaのメソッドにフラグを設定する

各クラスに-rまたは-dを割り当てる方法やその名前はわかりません。誰かが助けてくれますか?私はこのすべてにおいて新しいです。

+0

すなわちie。コマンドライン引数? https://docs.oracle.com/javase/tutorial/essential/environment/cmdLineArgs.html –

+0

はい、まあまあです。だから私は2つのクラス、例えば階乗と階乗のようなものを持っています。階乗を実行するには "-r"を、階階を実行するにはどうすればよいでしょうか? – Abby

答えて

0

mainargs配列にはコマンドライン引数があります。 -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

パーフェクト、ありがとう!これがうまくいくためには、階乗と階乗は同じファイル上になければならないでしょう。私はそれらを別々のものに持っていますが、私は両方の方法をメインのものにコピーして貼り付けることができると信じています。 – Abby

+0

はい、同じファイル内にある必要はありません。それらが2つの異なるクラスファイルである場合は、オブジェクトを作成し、 'object.method()'で適切なメソッドを呼び出すか、メソッドが静的メソッドであれば 'ClassName.staticMethod () 'を返します。 – badjr

+0

ありがとうございます。 'if(args [0] .equals(" - r ")&& args [1] .equals(" fact ")){ ファクト(); ' しかし、それは"メソッド呼び出しは、ファクトラインで "期待している。私は以下の事実のコードをコピーしようとしましたが、うまくいきませんでした。私は 'fact.staticMethod();と書いてみました。 'それはstaticMethodを解決できません、私はすべてが間違っているかどうかは分かりません。 – Abby

関連する問題