Javaの中のmain関数の詳細紹介


Javaの中のmain関数の詳細紹介
JAVAの中の主な関数は私達が更に熟知したので、JAVA言語を学んだことがある人ごとにすべて熟練してこのプログラムの入り口の関数を書くことができることを信じて、しかし主な関数についてどうしてこのように書きますか?私も学習の中でこの問題に出会いました。インターネットで資料を検索して、自分の実践を加えてやっと少し心得ができました。
主関数の書き方は以下の通りです。

 public static void main(String[] args){…}
これらのキーワードの役割を説明します。
(1)publicキーワード、これはよく理解して、声明の主な関数はpublicです。他の種類にこの関数にアクセスできることを教えます。
(2)staticキーワードは、コンパイラmain関数が静的関数であることを知らせる。つまり、main関数のコードは静的記憶領域に格納されています。すなわち、クラスが定義されたときには、このコードは既に存在します。main()メソッドがstatic修饰子を使用していないとコンパイルは间违いないですが、実行しようとするとエラーが発生します。メールを含むクラスは具体化されていないので、メールの方法も存在しません。static修飾子を使用すると、この方法は静的であり、実用化を必要としないで使えます。
(3)voidキーワードは、main()の戻り値が無種類であることを示しています。
(4)パラメータString[]argsは、本論文の重点である。
第一に、プログラム使用者は、コマンドライン状態であるクラスにパラメータを渡すことができる。次の例を見てください。

public class ArgsDemo {
  public static void main(String[] args) {
  String str = new String();
  for (int i = 0; i < args.length; i++) {
  System.out.println(args[i]);
  str += args[i];
  }
  System.out.println(str);
  }
  }
javac Args Demo.javaコマンドを使用してAgs Demo.classファイルを生成します。その後、「java Args Demoパラメータ一パラメータ二パラメータ三…」という形式でArgs Demo類にパラメータを伝達します。この例示的なプログラムは、まずパラメータを出力し、全パラメータの合計を出力します。例えば、java Args Demo a b cには、このような出力があります。

  a

  b

  c

  abc

注意したいのは、ここの循環条件がiでない場合です。

Exception in thread “main” java.lang.ArrayIndexOutOfBoundException:3

  at ArgsDemo.main(ArgsDemo.java:5)
第二に、他のクラスでmain()を含むクラスにパラメータを送ることができます。

public class A {
  public static void main(String[] args)
  {
  for(int i=0;i <args.length;i++)
  System.out.println(args[i]);
  }
  }
  public class B {
  public static void main(String[] args)
  {
  c = new A();
  String[] b = {"111","222","333"};
  c.main(b);
  }
  }
まず、class Aを定義し、Aではmain関数を定義し、この関数でパラメータargsを出力します。次に、一つのクラスBを定義し、Bで一つのAのインスタンスcを初期化して、cにパラメータを伝達し、cのmain方法を呼び出して、着信パラメータ値を印刷する。出力結果は以下の通りです。

 111

 222

 333

main()関数は静的関数であり、実用化が必要でなくても使えますので、Bは下記の書き方を使っても同じ機能を達成できます。

public class B {
  public static void main(String[] args)
  {
  //A c = new A();
  String[] b = {"111","222","333"};
  A.main(b);
  }
  }
要約:パラメータargsの主な役割は、プログラム利用者がコマンドライン状態でプログラムと対話する手段を提供することです。また、他のクラスでは直接にメーン関数を使用してパラメータを伝達することも可能です。この方法はあまり一般的ではないですが、結局は私たちに選択を提供してくれました。
疑問があれば、メッセージをお願いします。あるいは、当駅のコミュニティで交流して討論してください。ありがとうございます。