Javaプログラムはmainメソッドから。仕組みから理解しよう
Javaのプログラムを実行するにあたって、mainメソッドは必ず用意しておかなければなりません。mainメソッドがなぜ必要なのでしょうか? Javaのmainメソッドについて、仕組みとルールをわかりやすく解説します。
目次[非表示]
Javaのmainメソッドを丁寧に解説
Javaというプログラムを実行するに当たって、mainメソッドは重要な役割を担っています。
最初にJavaを学ぶ際には、mainメソッドから理解を深めていくのが一般的です。
まずはmainメソッドとは何か、その定義や役割について学んでいきましょう。
プログラムの起点となる
プログラムがどのように実行するかは、プログラミング言語によって主に次の2種類に分かれます。
- プログラムの先頭から順番に実行される
- 決められた関数・プロシージャ・メソッドから実行される
Javaの場合は、2に当てはまります。この仕様で決められた関数・プロシージャ・メソッドのことを『エントリーポイント』とも呼びます。Javaの場合は、mainメソッドがエントリーポイントにあたり、プログラムの起点になるのです。
Javaのmainメソッドの書き方ルール
Javaのmainメソッドは、Javaの言語仕様で厳密にルールが定義されています。必ず次のように書かなければ、プログラムが動きません。
mainメソッドには、以下の5つのルールが制定されています。
- mainメソッドのアクセス修飾子は必ずpublicであること
- staticメソッド(静的メソッド)であること
- 戻り値は必ずvoidであること
- メソッド名は『main』(全て小文字)であること
- メソッドの引数はStringの配列か、Stringの可変長引数のみであること
mainメソッドの条件をしっかりチェックしましょう。
■関連記事
オンラインリモート講座(入門5日・基礎10日)ー株式会社ジョブサポート
mainメソッドのルールを分解してみよう
先に挙げたmainメソッドの条件について、ここでは一つ一つの要素を掘り下げた上で解説していきます。
先頭に記述するpublic識別子の意味
修飾子とは、クラスやフィールド、メソッドの性質を決めるための予約語のことで、このうちアクセスコントロール(使用制限)を行う『public』『private』『protected』の3つを「アクセス修飾子」と呼びます。
publicは、全クラスからのアクセスを許可するための修飾子です。
mainメソッドでは、さまざまなクラスからのアクセスを想定しているため、public修飾子を付ける必要があると言われています。
「静的」を意味するstatic
staticは静的メソッドとも呼ばれ、以下の特徴を持っています。
- メソッドがクラスに属するようになる
- インスタンスにメソッドの分身がセットされる
- インスタンスを生成しなくても呼び出すことができる
クラスとは、プログラム実行のための処理をまとめたもの。そのクラスから生み出されたオブジェクトがインスタンスです。
クラスは設計書、インスタンスは実際に生成されたオブジェクトのことを指します。 mainメソッドは起点となるプログラムのため、インスタンスがない状態で起動されることも考えられます。
これに対応するためにめは、mainメソッドは静的メソッド(static)である必要があるというわけです。
値を返さないvoidを使う理由
基本的にJavaの処理は全てのスレッドの実行が終わった時なので、mainメソッドが戻り値を返すように組まれていると、mainメソッドが終わったにもかかわらず、プログラムが終了しないことが起こりえます。
そこで、mainメソッドではvoidを使います。voidは、戻り値を返さないメソッドのため、mainメソッドが終了すると共にプログラムを確実に終わらせられるようになります。
C言語からの流れを象徴 main
mainメソッドの名前が『main』なのは、C言語からの流れを汲んでいるからと言われています。JavaのコードはC言語が元になっているので、C言語からでも入りやすいようにしたのでしょう。
Java以外のプログラミング言語でも、mainメソッドにはmainもしくはそれに近い単語がしばしば使われます。
String[]args
mainメソッドの引数がStringの配列に限定されている理由は、これもC言語の仕様が元になっていると言われています。
Stringとは、Javaにおける文字列の基本的なクラスに設定されています。 String配列はとても扱いやすいので、デフォルトとしてStringに設定しておいて、もし文字列を変える場合はその都度プログラム側で変換するという仕様にしているのだと推測されます。
■関連記事
Java短期講座(入門5日・基礎10日)ー株式会社ジョブサポート
Java実行に欠かせないmainメソッドを把握しよう
Javaを実行するにあたって、mainメソッドは必ず記述しなければなりません。mainメソッドにはいくつものルールがあり、そのルールが守られなければjavaが動くことはなく、エラーを吐き出していまいます。
mainメソッドに関して正確に理解し、Javaへの理解をさらに深めましょう。