3
public class test
{
    public static void main(String[] args)
    {
        int x = 5;
        int y = 10;
        multiply(x,y);
    }
    public static void multiply(int x, int y)
    {
        int z = x*y;
        System.out.println(z);
    }
}

私はプログラミングが初めてで、いくつかのことで混乱しています。

  1. void を使用するのが正しいのはなぜですか? 何も返さないことを指定するために void が使用されていると思いましたが、multiply メソッドは z を返します。

  2. すべてのプログラムで、正確に「public static void main(String[] args)」が必要ですか? main メソッドの正確な目的は何ですか? また、パラメータ "String[] args" は何を意味していますか? main メソッドが削除された場合、プログラムは機能しますか?

ありがとう!

4

8 に答える 8

7

まず、multiply メソッドは何も返しません。製品を出力しますが、値は返しません。

public static void multiply(int x, int y)
    {
        int z = x*y;
        System.out.println(z); //may look like a return, but actually is a side-effect of the function.
    } //there is no return inside this block

次に、public static void mainプログラムへのエントリ ポイントを提供します。これがないと、プログラムを実行できません。の使用方法の詳細については、 Java のドキュメントを参照してくださいpublic static void main

hereはString[] args、コマンド ライン引数をキャプチャし、それを文字列の配列として格納することを意味します (上記の同じセクションの同じリンクを参照してください)。この配列は、メソッドargs内で呼び出されますmain(または、他の名前で呼び出されます。Oracleはargv代替名として引用しています)

System.out.printコンソールに何かを出力するようにプログラムに指示しますが、returnはメソッドの結果です。たとえば、printデバッグするメソッド全体を追加した場合 (一般的な方法)、プログラムの実行中に何かを出力しますが、これはプログラムが返すものやプログラムの結果には影響しません。

数学の問題を想像してみてください。すべての段階で作業を紙に「印刷」しますが、その結果 (「答え」) が最終的に返されるものです。

于 2013-03-25T03:37:52.063 に答える
2
  1. メソッドが何も返さない場合は、その戻り値の型を「void」に指定します。あなたの乗算メソッドは何も返していません。最後の行は print ステートメントで、引数の値を標準出力に出力するだけです。メソッドが「return z」という行で終了した場合、「void」戻り型でプログラムをコンパイルすることはできません。メソッドのシグネチャを public static int Multiply(int x, int y) に変更する必要があります。

  2. すべての Java プログラムは、実行可能にする場合、public static void main(String[] args) を必要とします。これは、実行可能な Java プログラムの開始点です。意味は次のとおりです。

を。public - メイン メソッドはどのクラスからでも呼び出すことができます。main は、オペレーティング システムによって呼び出されるメソッドであるため、常にパブリックにする必要があります。

b. static - メイン メソッドは static である必要があります。つまり、オペレーティング システムは、それが属するクラスのオブジェクトを形成する必要はありません。オブジェクトを作らなくても呼び出せます。

c. void - メイン メソッドは何も返しません (ただし、オペレーティング システムによってキャッチされる例外がスローされる場合があります)。

d. String[] args - プログラムを実行するときに、コマンド ラインから引数を渡すことができます。たとえば、プログラムが Run という名前の場合、コマンド java Run 3 4 を実行できます。その場合、引数は文字列の配列の形式でプログラム Run に渡されます。args[0] には「3」、args[1] には「4」が入ります。

とは言っても、メインのない Java プログラムを実行することはできません。

それが役立つことを願っています。

于 2013-03-25T03:44:38.333 に答える
1

void を使用するのが正しいのはなぜですか? 何も返さないことを指定するために void が使用されていると思いましたが、multiply メソッドは z を返します。

いいえ

multiplyメソッドは戻りませんz。ただし、void実際には何も返されないことを指定するために使用されます。

すべてのプログラムで、正確に「public static void main(String[] args)」が必要ですか? main メソッドの正確な目的は何ですか? また、パラメータ "String[] args" は何を意味していますか? main メソッドが削除された場合、プログラムは機能しますか?

はい、すべてのプログラムmainには次のような関数が必要public static void main(String[] args)です。

于 2013-03-25T03:40:03.840 に答える
1

他の人が言ったように、multiply メソッドは何も返しません。他の回答は、その理由を説明しました。

ただし、 void を使用する場合、そのメソッドは何も返せないことに言及することも役立ちます。対照的に、(void ではなく) 何かを返すようにメソッドを設定した場合は、その型の値を返す必要があります。

例えば:

public static void main(String[] args){

    int a;
    a = returnInt();

}//End Method

public static int returnInt(){

    int z = 5;
    return z;

}//End Method

main メソッドは何も返さないため、void を使用します。returnInt メソッドは整数を返します。メソッドが返す整数は z です。メインメソッド where a = returnInt(); これは a の値を returnInt() から返された値に設定します。この場合、a は 5 になります。

シンプルにしようとしましたが、理にかなっていることを願っています。

于 2013-03-25T05:17:09.400 に答える
0

publicメソッドが可視であり、他のタイプの他のオブジェクトから呼び出すことができることを意味します。他の選択肢としては、private、protected、package、および package-private があります。詳しくはこちらをご覧ください。

staticメソッドがそのクラスの特定のインスタンス (オブジェクト) ではなく、クラスに関連付けられていることを意味します。これは、クラスのオブジェクトを作成せずに静的メソッドを呼び出すことができることを意味します。

voidメソッドに戻り値がないことを意味します。メソッドが を返した場合は、 のint代わりに int を記述しますvoid

これら 3 つすべての組み合わせは、mainほとんどのチュートリアルに含まれるメソッドで最も一般的に見られます。

マーク・バイレスの功績

于 2013-03-25T03:39:59.353 に答える
0

あなたの例のメソッドは、呼び出し元のメソッドにmultiply()値を返すのではなく、値を出力します(たとえば、画面に出力します)。zz

あなたが言ったように、voidtype キーワードは、メソッドが値を返さないことを意味します。このようなメソッドは、「何かをする」ことを目的としています。の場合main()、値を返す呼び出しメソッドがないため、メソッドは値を返しません。ここからプログラムが始まります。

技術的には、最後のコメントは正確ではありません。プログラムを起動したオペレーティング システムまたはプロセスに main が値を返すようにすることは実際には可能ですが、常にそうする必要があるとは限りません。始めたばかりです!:)

于 2013-03-25T03:44:21.727 に答える
0

Void クラスは、Java のプリミティブ型 void を表す Class オブジェクトへの参照を保持する、インスタンス化できないクラスです。Main メソッドは、任意の Java プログラムの実行を開始するメソッドです。メインメソッドの宣言は次のようになります

public static void main(String args[]){ }

このメソッドは、プログラムの実行を開始するために JVM にアクセスできるため、パブリックです。

オブジェクトインスタンスなしで実行できるため、静的です。メソッドを呼び出すにはオブジェクト インスタンスが必要であることはご存知かもしれません。そのため、メイン メソッドが静的でない場合、オブジェクトなしでクラスの実行を開始することはできません。

main メソッドの実行が終了するとプログラムが終了するため、void のみを返します。そのため、Main メソッドによって返されるデータはありません。

最後のパラメータは String args[] です。これは、ユーザーがコマンド ラインで Java プログラムにパラメーターを入力することを選択できることを示すために使用されます。String[] args または String args[] の両方を使用できます。Java コンパイラは両方の形式を受け入れます。

于 2013-03-25T04:02:15.023 に答える