Java『mainメソッドとは?』最初に必ず実行されるメイン関数の仕組みを解説

Java≫mainメソッドとは?≫最初に必ず実行されるメイン関数の仕組みを解説 Javaプログラミング入門

【本サイトではGoogleアドセンス、または、アフィリエイト広告を利用しています。】

プログラムはどこから実行されるのか?

これからJavaでプログラムを書いていくのですが、

計算式などの処理を書く前に、プログラムを書く土台になる
クラスやメソッドを準備する必要があります。

例えば、あなたがテキストファイルに土台を用意せずに
計算式のプログラムをいろいろ書いたとして、実行ボタンを押しても、

Javaはどのファイルのどこから読み込めばいいのか理解することができません

 プログラム

クラスの作成方法については、前回の記事でお話した通りですが、
準備するメソッドについても、ひとつ決まりがあります。

それは、Javaのプログラムを書くときは、
mainという名前のメソッド(関数)を作っておく必要がある
というルールです。

なぜmainメソッドが必要なのか?

それは、mainメソッドは、
Javaを実行する時に、一番最初に読み込まれるからです!

なぜmainが最初なのかと言われると、Javaがそういう決まりで作られているからです。

なので、勝手に名前をつけたメソッドだけ用意してもプログラムは動きません。
mainメソッドがないよ!って言われます。

前回の記事の中で、Eclipseでクラスファイルを作成する時に
「public static void main・・・」の項目にチェックを入れたのは
こういった意図があったからです。

クラス作成時に項目にチェックを入れることで、
Eclipseがmainメソッドを用意した状態でクラスを作成してくれるんですね。

ほんとに親切です。
親切すぎて逆に初心者が置いて行かれるという状況です。

 わからなくて困っている人

なので、ここですべて説明します!

クラスやメソッドについては、こちらで解説していますので、あわせて読んでください!

public static void main(String[] args)とは?

クラスを作成した時にできるメソッドですが、
main以外にも何やらいろいろとくっついていますね

当然ながら、個々の単語にはしっかり意味があります。

ひとつひとつ掘り下げたお話は別途する予定ですので、
ここでは、今出てきている単語の意味だけ説明します。

「public static void main(String[] args)」を表に分解して説明すると、
こんな感じです。

単語説明
publicアクセス修飾子と呼ばれるもの。
publicは、他のどのクラスからもアクセスできる状態を示す。
staticクラスやメソッド、変数につける修飾子。
staticは、オブジェクトを生成する処理を使わずに
そのまま使えるという意味。
voidメソッドの戻り値の定義。
voidは、メソッドを実行した時に、特に結果を返さないという意味。
つまり、メソッドの中に書かれた処理を実行するだけになる。
mainメソッドの名前。
String[] argsメソッドの引数。
Stringは文字列型、[]は配列、argsは引数の名前。
mainの引数は、コマンドライン引数と呼ばれ、
ユーザーがキーボードから入力した値がここに入る。

内容を読んでも少しわからない部分があると思いますが、
文法を覚えていくうちに理解できるようになってくるので、

今はイメージだけ伝われば大丈夫です。

「public static void main(String[] args)」を日本語にしてみると

  • どこからでも使っていいmainという名前のメソッドだよ!
  • ユーザーが入力した内容はargsに入ってるから使ってね!
  • mainの中に書いてある処理だけ実行するよ!(特に結果は返さないよ!)
  • mainを使う時は、オブジェクトを意識しなくていいよ!(そのまま呼び出せばいいよ!)

こんな感じになります。

mainメソッドなしで実行するとどうなるか?

では、mainメソッドをなくしてプログラムを実行するとどうなるか?

試してみましょう!

 賢いプログラム

こんな感じで、「main」を「maindaze」に変えてみたゼ!

package helloworld;

public class Hello {
	public static void maindaze(String[] args) {
		// TODO 自動生成されたメソッド・スタブ
		System.out.println("Hello World");
	}
}

はい、実行!

Java_mainメソッドがない時のエラー表示

思った通り、mainメソッドがないよ!というエラーが出ました。

このような感じで、mainがないとプログラムが実行できず、
エラーになってしまいます。覚えておきましょう!

mainメソッドが複数あるとどうなるか?

mainが1つもないとエラーになりました。

では、今度はmainを複数作って動かしてみましょう!

 速いプログラム

Helloクラスを作った手順と同様に、GoodNightクラスを作ってください。
出力内容は、「こんばんは!」にしましょう。

実行してみるとどうでしょう?

「こんばんは!」と出たのではないでしょうか?

次に、eclipse上で、Helloクラスのプログラムを表示した状態で実行してみましょう。

今度は、「Hello World」と出ます!

Javaは最初に実行指示を受けたクラスが持つmainメソッドを
実行する動きをする
ので、mainが複数あってもエラーとならないのです!

まとめ

Javaのmainメソッドについて解説しました。

細かな修飾子については今は覚えなくても大丈夫ですが、
mainメソッドを作成する時はこのような記述になる
ということは覚えておきましょう!

また、Eclipseの補助機能は大変便利ですが、
頼りすぎるとプログラムの意味を理解せずに作ってしまうことになる
ので、

自動で作成された内容も、どんな動きになるのかぐらいは、
調べながらしっかり理解して進めるようにしましょう!

次回は、変数の定義についてお話をします!

タイトルとURLをコピーしました