web-dev-qa-db-ja.com

「String args []」および「public static void main(String [] args)」の静的の説明

初心者、次の抜粋でString args[]の意味、staticの使用について、どのように説明できますか?

class FirstApp {
    public static void main(String[] args) {
        ...
    }
}
44
Sam

私は初心者に メイン関数に関するWiki記事 を指してから、これで補足します。

  • Javaは特定のpublic static void main(String[] args)署名でプログラムの実行を開始するだけで、署名を自分の名前のように考えることができます。それはJavaが他の誰かのmain()と真のmain()の違いを知る方法です。

  • String[] argsは、スペースで区切られたStringsのコレクションであり、端末上のプログラムに入力できます。多くの場合、初心者はこの変数を使用しませんが、万が一の場合に備えて常に存在します。

32
Makoto

別れるだろう

public static void main(String args[])

部分的に:

public

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


static

JVMがmainメソッドを呼び出すとき、呼び出されるクラスにはオブジェクトが存在しないため、クラスからの呼び出しを許可する静的メソッドが必要です。


void

Javaはプラットフォームに依存しない言語であり、何らかの値を返す場合、その値はプラットフォームによって異なることを意味する場合があります。また、マルチスレッドシステムでプログラムを終了する方法は他にもあります。 詳細な説明


main

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


String args[]

これらは、実行時にJavaアプリケーションが受け入れるString型の引数です。

72
Confuse
public static void main(string [] args)

public-アクセス指定子は、アクセスできるすべての場所から意味します。 static -access修飾子は、オブジェクトを作成せずにクラス名を使用してこのメ​​ソッドを直接呼び出すことができることを意味します。 void-戻り値の型。 main-メソッド名string [] args-文字列型の引数のみを受け入れ...文字列配列に格納します

14
user3830480
  • public:これはアクセス指定子であり、パブリックにアクセスされることを意味します。
  • static:アクセス修飾子であり、Javaプログラムがロードされると、メモリ内にスペースが自動的に作成されます。
  • void:これは戻り値の型です。つまり、値を返しません。
  • main():メソッドまたは関数名です。
  • string args[]:コマンドライン引数。文字列形式の変数のコレクションです。
6

私がこれを誰かに説明していたなら、私たちは今のところ後でそれに到達すると言いますが、あなたのプログラムを実行する方法は次のものを使用することであることを知る必要があります:

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

配列とは何かを知っていると仮定すると、argsは引数配列であり、いくつかのクールな例を示すことができます。

次に、Java/JVMなどについて少し話をした後、最終的には修飾子を静的およびパブリックに変更します。

その後、これらのIMHOの意味について話すのに時間をかけることができます。

Javaの以降のバージョンでこれを使用できる可変引数など、他の「クールな」ものに言及できます。

public static void main(String ...args) {
        //...
    }
3
ant

初心者の姿勢を保つために、すべてのコマンドラインが文字列(String[])の配列に自動的に分割されることを説明できます。

staticについては、別のようなフィールドではないことを説明する必要があります。クラスのインスタンスが数千ある場合でも、JVMで一意です

したがって、mainは静的です。これは、jar内でそれを見つける(独自のクラスにリンクされている)唯一の方法だからです。

...コーディングを見て、仕事を始めたら...

1
cl-r

私はちょうどこれにチップを入れると思った。しかし、他の人からは完全によく答えられています。

メインメソッドの完全な宣言は次のようになります。

 public static void main(final String[] args) throws Exception {

 }

技術的には変更しないでくださいので、引数はfinalとして宣言されます。これらは、ユーザーが指定したコンソールパラメーターです。

通常、メインが例外をスローするように指定して、e.printStackTrace()などを実行せずにスタックトレースをコンソールに簡単にエコーできるようにします。

配列構文について。この方法が好きです。フランス語と英語の違いに少し似ていると思います。英語では「黒い車」、フランス語では「黒い車」です。重要な名詞、車、または黒はどれですか?

私はこの種のものが好きではありません:

String blah[] = {};

ここで重要なことは、文字列配列であるため、

String[] blah = {};

何とかは単なる名前です。個人的には、Javaのちょっとした間違いだと思います。配列がそのように宣言されることもあります。

1
Richard

静的の通常の使用法は、オブジェクトを作成せずに関数に直接アクセスすることです。 Java mainと同じように、mainメソッドを呼び出すそのクラスのオブジェクトを作成できませんでした。自動的に実行されます。手動で実行する場合は、クラス内でmain()を使用し、クラス外からClassName.mainを使用して呼び出すことができます。

0
Bathakarai