2017-04-10 5 views
1

Javaで作業して1年近く経っても、私はこれを他人や自分自身に正しく説明できません。私はまだ理解していませんpublic static void main(string [] args)

明らかに、私はそれぞれのキーワードが独立して何をしているかを知っていますが、すべてについてはわかりません。

誰かが非常に簡単な言葉でそれを説明していただけますか?

+0

から取られた残りのパラメータでそれを呼び出します。 – Kayaman

+2

http://docs.oracle.com/javase/tutorial/getStarted/application/index.html#MAIN – azurefrog

+0

Google [what is java main'](https://www.google.com/search?q=what) +は+ java + mainです) – Andreas

答えて

4

公開:このメソッドにアクセスできるユーザーを定義するアクセス修飾子、です。公開は、このメソッドは、任意のクラスからアクセス可能になることを意味する(他のクラスがこのクラスにアクセスできるようにしている場合。)。

静的:クラス関連するものを特定するキーワードです。これは、指定されたメソッドまたは変数がインスタンスに関連するのではなく、クラスに関連していることを意味します。クラスのインスタンスを作成せずにアクセスできます。

無効:メソッドの戻り値の型を定義するために使用されます。これは、メソッドが返すことができるものを定義します。 Voidはメソッドが値を返さないことを意味します。

メインは:メソッドの名前です。このメソッド名は、特定の署名のみを持つアプリケーションの開始点としてJVMによって検索されます。

文字列args []:mainメソッドのパラメータです。

+0

よく書かれてupvote StackOverflowで始めるために。 –

0

main()方法はjavaランチャーによって定義されます。

javaコマンドは、Javaアプリケーションを起動します。これは、Javaランタイム環境(JRE)を開始し、指定されたクラスをロードし、そのクラスのmain()メソッドを呼び出すことによってこれを行います。このメソッドは、publicのstaticと宣言する必要があります。値を返さないでください。パラメータとしてString配列を受け入れる必要があります。

あなたがそれを必要とする理由について説明します:メソッドの宣言は次の形式を持っているJavaプログラムの実行を開始するために必要です。
動作方法:起動時にランチャーから呼び出されます。

1

私はこれらのことを既に知っていましたが、あなたは応答とdownvotesに感謝します。

公共

それはあなたが現在であるクラスの外からこのメソッドを呼び出すことができることを意味します。この方法は、内に配置されていないJavaランタイムシステムによって呼び出されているので、これが必要ですあなたは現在のクラスです。

JVMは、それがクラスからの呼び出しを許可する静的メソッドを持つことがあるので、呼び出されるクラスの既存のオブジェクトがないmainメソッドの呼び出しを行い、静的

無効

Javaはプラットフォームに依存しない言語であり、それはいくつかの値を返しますならば、値が異なるプラットフォームに異なるものを意味するかもしれません。また、マルチスレッドシステム上でプログラムを終了させる他の方法もあります。詳細な説明。

メイン

これは、メソッドの名前だけです。この名前は固定されており、アプリケーションのエントリポイントとしてJVMから呼び出されます。

String型の引数[]

これらは、あなたがそれを実行すると、Javaアプリケーションが受け入れることをString型の引数です。

しかし、他の言語のようにmainを呼び出す単純な方法がない理由、なぜmainでメソッドを呼び出すだけで、引数を取得してStringとして格納する必要があるのでしょうか。

+0

あなたはあなたの質問を編集して、質問で回答を投稿するのではなく、これを追加するべきだと思います。 – rjdkolb

2

他の回答は正しいですが、私は英語でそれを述べようとします。 プログラムを作成するとき、javaはプログラムをどこで開始するかを知る必要があるので、これをエントリーポイントとして使用します。静的メソッドなので、クラスのインスタンス化は必要ありません。それは単にそのメソッドを呼び出して、それがプログラムの開始場所であることを知ることができます。

+0

main - YESを使用している他のプログラムについては、そうです。 Cではmain()もあります。 Windows C++プログラムでは、WinMain() –

1

Javaプログラムを起動するとき、JVMは全体の実行を開始する場所を知る必要があります。これは、クラスパス上で利用可能なJavaクラスが何千もあるため、明らかではありません。 そのため、コマンドラインで特定のJavaクラスの名前を指定する必要があります。例

java com.stackoverflow.example.Main bla blah 

についてJVMは、ちょうどこのクラスをロードし、そのstatic void main(String[] args)方法を探して、それはプログラムのエントリポイントのコマンドライン

main(new String[]{"bla", "blah"}); 
関連する問題