catch-img

Javaプログラムはmainメソッドから。仕組みから理解しよう

Javaのプログラムを実行するにあたって、mainメソッドは必ず用意しておかなければなりません。mainメソッドがなぜ必要なのでしょうか? Javaのmainメソッドについて、仕組みとルールをわかりやすく解説します。

目次[非表示]

  1. 1.Javaのmainメソッドを丁寧に解説
    1. 1.1.プログラムの起点となる
    2. 1.2.Javaのmainメソッドの書き方ルール
  2. 2.mainメソッドのルールを分解してみよう
    1. 2.1.先頭に記述するpublic識別子の意味
    2. 2.2.「静的」を意味するstatic
    3. 2.3.値を返さないvoidを使う理由
    4. 2.4.C言語からの流れを象徴 main
    5. 2.5.String[]args
  3. 3.Java実行に欠かせないmainメソッドを把握しよう


Javaのmainメソッドを丁寧に解説

Javaというプログラムを実行するに当たって、mainメソッドは重要な役割を担っています。

最初にJavaを学ぶ際には、mainメソッドから理解を深めていくのが一般的です。

まずはmainメソッドとは何か、その定義や役割について学んでいきましょう。

プログラムの起点となる

プログラムがどのように実行するかは、プログラミング言語によって主に次の2種類に分かれます。

  1. プログラムの先頭から順番に実行される
  2. 決められた関数・プロシージャ・メソッドから実行される

Javaの場合は、2に当てはまります。この仕様で決められた関数・プロシージャ・メソッドのことを『エントリーポイント』とも呼びます。Javaの場合は、mainメソッドがエントリーポイントにあたり、プログラムの起点になるのです。

Javaのmainメソッドの書き方ルール

Javaのmainメソッドは、Javaの言語仕様で厳密にルールが定義されています。必ず次のように書かなければ、プログラムが動きません。

public static void main(String[] args) { 
(ここに命令内容を記述)
}

mainメソッドには、以下の5つのルールが制定されています。

  • mainメソッドのアクセス修飾子は必ずpublicであること
  • staticメソッド(静的メソッド)であること
  • 戻り値は必ずvoidであること
  • メソッド名は『main』(全て小文字)であること
  • メソッドの引数はStringの配列か、Stringの可変長引数のみであること

mainメソッドの条件をしっかりチェックしましょう。

■関連記事

  Javaが難しい理由とは。学習方法や注意点をあわせて解説 | Java・フロントエンド研修のジョブサポート Javaはプログラミング言語の中でも習得が難しく、挫折してしまう人が少なくありません。Javaを習得するためにも、Javaの学習が難しい原因と、それでもJavaが人気である理由を知っておきましょう。学習方法や注意点についても解説します。 Java・フロントエンド研修のジョブサポート

オンラインリモート講座(入門5日・基礎10日)ー株式会社ジョブサポート

mainメソッドのルールを分解してみよう

先に挙げたmainメソッドの条件について、ここでは一つ一つの要素を掘り下げた上で解説していきます。

先頭に記述するpublic識別子の意味

修飾子とは、クラスやフィールド、メソッドの性質を決めるための予約語のことで、このうちアクセスコントロール(使用制限)を行う『public』『private』『protected』の3つを「アクセス修飾子」と呼びます。

publicは、全クラスからのアクセスを許可するための修飾子です。

mainメソッドでは、さまざまなクラスからのアクセスを想定しているため、public修飾子を付ける必要があると言われています。

「静的」を意味するstatic

staticは静的メソッドとも呼ばれ、以下の特徴を持っています。

  1. メソッドがクラスに属するようになる
  2. インスタンスにメソッドの分身がセットされる
  3. インスタンスを生成しなくても呼び出すことができる

クラスとは、プログラム実行のための処理をまとめたもの。そのクラスから生み出されたオブジェクトがインスタンスです。

クラスは設計書、インスタンスは実際に生成されたオブジェクトのことを指します。 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コードで避けては通れない変数や宣言の要点解説 | 株式会社ジョブサポート-新人研修・未経験者向けエンジニア研修(Java,JavaScript)のジョブサポート 変数はプログラミング言語を習得するなら必ずマスターしなければなりません。この記事では、Javaにおける変数と宣言についての要点をわかりやすく解説します。変数に入れるデータの扱いや種類についてもあわせて見ていきましょう。 株式会社ジョブサポート-新人研修・未経験者向けエンジニア研修(Java,JavaScript)のジョブサポート

Java短期講座(入門5日・基礎10日)ー株式会社ジョブサポート

Java実行に欠かせないmainメソッドを把握しよう

Javaを実行するにあたって、mainメソッドは必ず記述しなければなりません。mainメソッドにはいくつものルールがあり、そのルールが守られなければjavaが動くことはなく、エラーを吐き出していまいます。

mainメソッドに関して正確に理解し、Javaへの理解をさらに深めましょう。

新卒・中途未経験者を採用した
企業におすすめのエンジニア研修サービス

法人研修の実績2500名以上!中小企業~大手上場企業まで幅広く受講してます。
若手、新人エンジニア採用後の Java研修はジョブサポートお任せ下さい
おすすめお役立ち資料02
短期講座(入門5日、基礎10日) Java・フロントエンド (HTML5・CSS・JavaScript) 全国の中小~大手企業まで幅広くお問い合わせ、 受講を頂く人気講座です

運営会社

株式会社ジョブサポート

Java・フロントエンド(HTML5・CSS・JavaScript)の企業研修実績2500名以上を実施。受講満足度は95%。

おすすめお役立ち資料

おすすめお役立ち資料02
おすすめお役立ち資料02

関連記事

研修サービス一覧

プロエンジニア育成コース
新人エンジニア研修
短期通学講座
研修実績
よくあるご質問

ランキング

タグ一覧