6

この 2 日間、基本的な Java プログラミングを学ぼうとしていたのですが、次のコードを表示しているときに、理解できない問題に遭遇しました。

class DayCounter {
    public static void main(String[] arguments) {

        int yearIn = 2008;
        int monthIn = 1;
        if (arguments.length > 0)
            monthIn = Integer.parseInt(arguments[0]);
        if (arguments.length > 1)
            yearIn = Integer.parseInt(arguments[1]);
        System.out.println(monthIn + "/" + yearIn + " has "
            + countDays(monthIn, yearIn) + " days.");
    }
}

行がわかりませんif (arguments.length > 0) とはどういうarguments意味ですか? 価値はどこから来たのですか?

4

8 に答える 8

8

「(arguments.length > 0) if (arguments.length > 0) what does "arguments" mean?という行が理解できません。その値はどこから来たのですか?

メソッド宣言から来ました:

public static void main(String[] arguments) {

というパラメータを宣言していますarguments。通常のメソッド呼び出しでは、呼び出し元が引数を指定し、それがパラメーターの初期値になります。例えば:

int foo(int x) {
    System.out.println(x);
}
...
foo(10);

ここで、10 はメソッドへの引数なので、xパラメーターの初期値です。

mainJava で呼び出される public static void メソッドがエントリ ポイントになりました。実行すると、次のようになります。

java MyClass x y z

JVM は、コマンド ライン引数mainを含む配列を使用してメソッドを呼び出します。ここでは、長さ 3 の配列で、値は「x」、「y」、および「z」です。

詳細については、Java チュートリアルの関連部分を参照してください。

于 2012-10-08T12:10:21.087 に答える
4

arguments実行時に Java プログラムに与えられるコマンド ライン オプションです。それらは配列に格納されるため、呼び出すarguments.lengthと、プログラムにコマンドライン入力の数が与えられます。

実行時にこのように渡されます

java program argument1, argument2, argument3

この場合arguments.length、3 つのコマンド ライン引数があるため、3 が返されます。

于 2012-10-08T12:09:06.133 に答える
3

この場合、引数は、実行時に入力として提供する文字列の配列に使用される変数名です。

すなわち

java DayCounter 1 2010

次のコードの抜粋:

public static void main(String[] arguments)

String[]の変数名を持つ文字列の配列を意味しますarguments。Java は、この関数プロトタイプを main にデフォルトとして使用します。チュートリアルについては、http: //docs.oracle.com/javase/tutorial/getStarted/application/index.htmlを参照してください。

したがって、( ) で参照lengthするarguments場合arguments.lengthは、文字列の配列の "内部" を調べて、配列の長さを調べます (これを行うには、Java 文字列の組み込み関数を使用します)。

于 2012-10-08T12:19:02.693 に答える
2

それらはコマンドプロンプトから来ます。プログラムの実行を開始するときは、次のように言うことができます。

java program arg1 arg2 ...argN

引数はプログラム名の直後に続きます。

于 2012-10-08T12:09:02.620 に答える
2

-通常、パラメーターと引数は同じ意味で使用されますが、それらは異なります。

これを説明するために例を挙げます。

public class Test{


   public void go(String s){


   }

   public static void main(String[] args){

      Test t = new Test();
      t.go("Hello");

    }

}

-上記のコード変数では、行sの型は.Stringpublic void go(String s)Parameter

-"Hello"行内の String 型のas which はt.go("Hello")ですArgument

-メソッド定義または宣言の要素はであり、メソッド呼び出しで渡されるParameters要素はです。Arguments

于 2012-10-08T12:32:55.357 に答える
1

まず手元にあるコードの意味を理解します。1 年の特定の月の日数を示します。したがって、コードを実行するときは、年の値と月の値を特定の値として指定する必要があります。

この場合、コード実行時に提供される月の値と年の値が引数になります。この場合、「引数」という単語はそのまま使用されますが、ご存知のように、x、y、または xyz を使用して変数に名前を付けることができます。

Java は引数を String 配列として受け入れます。したがって、それらを整数として使用する前に、それらを解析する必要があります。それが上記のコードで行われていることです。

例えば

 class WelcomeYouself{

    public static void main(String[] args){ //Here insted of arguments,the word args is used. 

    System.out.println("Hello " + args[0]);
  }
}

これを実行すると、自分の名前を引数として渡します。

   java WelcomeYourself Feynman; 

 // This how you run or execute the java code passing your name as the "argument". Of course it is presumed you are Feynman.
于 2012-10-08T12:23:04.213 に答える
1

引数はメインメソッドに渡されます

 public static void main(String[] arguments)

この場合、このメソッドに渡すことができる値の配列を意味します。通常、これはコマンドラインまたはショートカットからプログラムに渡す引数であり、プログラムでそれらを使用してロジックフローを変更できます。

于 2012-10-08T12:09:18.340 に答える
1

Arguments は、起動時に Java プログラムに渡すことができるパラメーターのリストです。

if (arguments.length > 0) は、引数が指定されているかどうかを確認します。

それ以外の場合は、空の配列にアクセスして、範囲外の例外を取得してインデックス付けしようとします。

また、役立つチュートリアルがたくさんあります。

CMD Line Arguments については、Oracle のエッセンシャル ガイドを参照してください。

于 2012-10-08T12:09:28.460 に答える