質問: 前提としてJava初学者でございます。 javaにてpublic static void main(String[] args)と当たり前のように記述する意味と それぞれの部分がこの記述によってなんの役割を持っているか教えて頂きたいです。 public→どのクラスからもアクセスできる修飾子だから? static→通常はクラスのメソッドを使用する場合はクラスのインスタンスをnewを付け生成する必要があるがそれを避けるため? void→戻り値の型 この記述によっての意味が分からない main→クラス名? (String[] args)→配列?引数? 以上が自分が曖昧に把握している部分的な知識です。 教えて頂きたいです。
回答: > > javaにてpublic static void main(String[] args)と当たり前のように記述する意味 > > > Javaは起動時に「引数が`String]`」、「返り値が`void`」、「`public static`」な`main`メソッドを実行する、と決まっているので、指定された形のメソッドが必要です([Java8)。 > > `java`コマンドはJavaアプリケーションを起動します。これは、Java Runtime Environment (JRE)を起動し、指定されたクラスをロードし、そのクラスの`main()`メソッドを呼び出すことによって行われます。このメソッドは、`public`および`static`として宣言する必要があり、値を返すことができず、`String`配列をパラメータとして受け付ける必要があります。メソッド宣言の形式は次のとおりです。 > > `public static void main(String[] args)` > > > 「決まっている」以上そう書くしかないのですが、クラスインスタンスを作らずに、外部からでもメソッドだけ利用できる`public static`となっており、コマンドライン引数を入れるための`String`配列を引数として持ちます。`void`は、「返り値はない」ということを示すための型です。