Java
PR

Javaのmainメソッドとは?書き方や使い方を徹底解説!

プログラミング
shin-memo
記事内に商品プロモーションを含む場合があります

Javaのmainメソッドとは何ですか?意味や書き方を初心者でも理解できるように教えて欲しい。

こんなお悩みにお答えします。

運営者:シン
運営者:シン
Profile
フリーランスエンジニア|大阪在住|30歳【保有資格】Java Gold・ITパスポート・SEO検定全級・全日本SEO協会認定SEOスペシャリスト【経歴】配送業▶︎販売員▶︎プログラミングスクールTECH CAMP受講▶︎プログラマー▶︎独立【発信内容】プログラミング・エンジニア転職・フリーランス
プロフィールを読む

本記事をお読みいただければ、Javaのmainメソッドの意味や書き方の基礎を身につけられますよ。

シン
シン

僕は現役のエンジニアで実務ではJavaを扱っていますので、実体験をもとにわかりやすく解説しますね。

mainメソッドはJavaの基本なので、ぜひこの記事で習得していってください!

あわせて読みたい
Javaエンジニアの学習ロードマップ!実践で使える技術を厳選【2023年版】
Javaエンジニアの学習ロードマップ!実践で使える技術を厳選【2023年版】

Javaのmainメソッドの基本概要

まずmainメソッドの基本をみていきましょう。

  1. mainメソッドとは
  2. mainメソッドの書き方

mainメソッドとは

mainメソッドとは、Javaプログラムのエントリーポイント(入口)となるメソッドのことをいいます。

Javaプログラムが動くとき、最初にmainメソッドが実行されます。

mainメソッドがないとエラーが発生するため、必ず記述しなければなりません。

mainメソッドの構文

mainメソッドの書き方は以下の通りです。

public static void main (String[] args){

}

修飾子はpublicとstaticをつけ、戻り値はvoidにします。メソッド名はmainとし、引数にはString[] argsをつけます。

上記以外の修飾子や引数をつけると、mainメソッドとして認識されなくなってしまいます。

あわせて読みたい
Javaのメソッドとは?書き方や使い方をまとめてみた!
Javaのメソッドとは?書き方や使い方をまとめてみた!

Javaのmainメソッドで知っておきたい4つのこと

Javaのmainメソッドで押さえておきたい4つのことを解説していきます。

  1. mainメソッドの決まり事
  2. mainメソッドのクラス名
  3. mainメソッドなしの場合はどうなるか
  4. mainメソッドは複数あるとどうなるのか

順番に見ていきましょう。

その①:mainメソッドの決まり事

mainメソッドはpublic static void main(String[] args)と記載します。

「なぜpublicでstaticなのか」と気になる点はあると思います。中にはおまじないと教えられた方も多いでしょう。

これは仕様で決まっているものですので、こういうものなんだなという理解で問題ありません。なので暗記してしまいましょう。

Javaでは通常のメソッドと、mainメソッドがあります。mainメソッドと認識してもらうためには、仕様で決められた記述をしなければなりません。

おさらいですがmainメソッドは以下のように書きます。

public static void main (String[] args){

}

例えば、下記のようにするとmainメソッドではなく、通常のメソッドとして扱われます。

static void main (String[] args){

}

上記2つの違いは、後者がアクセス修飾子であるpublicの記述がありません。そのためmainメソッドと認識されず、通常のメソッド扱いとなります。

mainメソッドは決まった書き方をする必要があります。

その②:mainメソッドのクラス名

mainメソッドのクラス名は、何にすれば良いでしょうか。

結論、クラス名は特に決まりはありません。mainメソッドといっても、通常のメソッドの一種です。

クラスの中に定義しておく必要があるだけで、クラス名の指定をする必要はないです。

あわせて読みたい
Javaのクラスとは?書き方や呼び出し方をわかりやすく解説!
Javaのクラスとは?書き方や呼び出し方をわかりやすく解説!

その③:mainメソッドなしの場合はどうなるか

mainメソッドとは、Javaプログラムのエントリーポイントです。仮にmainメソッドがないと、エラーが発生します。

たとえば下記のメソッド名はmainという名前がついていますが、修飾子のstaticがないため、通常のメソッド扱いとなりエラーが出ます。

class Test1 {
  
  public void main(String[] args) {
    test(30);
  }

  public static void test(int num) {
    System.out.println(num);
  }

}
実行結果:
>java Test1      
エラー: メイン・メソッドがクラスTest1のstaticではありません。次のようにメイン・メソッドを定義してください。
   public static void main(String[] args)

mainメソッドと認識されるためには、public static void main(String[] args){}と記述する必要があります。

class Test1 {
  
  public static void main(String[] args) {
    test(30);
  }

  public static void test(int num) {
    System.out.println(num);
  }

}
実行結果:
30

その④:mainメソッドは複数あるとどうなるのか

mainメソッドは複数あるとどうなるのでしょうか?例えば下記の様なコードです。

class Test1 {
  
  public static void main(String[] args) {
    test(30);
  }

  public static void test(int num) {
    System.out.println(num);
  }

}
class Test2 {
  public static void main(String[] args) {
    test2(40);
  }

  public static void test2(int num2) {
    System.out.println(num2);
  }
}
実行結果:
30
40

結論として、mainメソッドは複数あっても特に問題はありません。

あわせて読みたい
Javaの条件分岐(if文)の書き方は?使い方についても
Javaの条件分岐(if文)の書き方は?使い方についても

Javaのmainメソッドの使い方

ここまでの基本を押さえた上で、実際にmainメソッドを使ってみましょう。

メソッドの呼び出し方

まずはメソッドの呼び出し方です。

mainメソッドは通常のメソッドと同様に、インスタンス化することでメソッドを呼び出せます。

class Test1 {
  
  public static void main(String[] args) {
    test();
  }

  public static void test() {
    System.out.println("呼び出されました");
  }
}
実行結果:
呼び出されました

引数の渡し方

mainメソッドから他のメソッドを呼び出す際に、引数を渡すやり方です。

class Test1 {
  
  public static void main(String[] args) {
    test(30);
  }

  public static void test(int num) {
    System.out.println(num);
  }
}
実行結果:
30

Javaのmainメソッド:まとめ

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

mainメソッドはJavaプログラムのエントリーポイントとなるメソッドです。

mainメソッドは必ずpublic static void main(String[] args){}とし、通常のメソッドと同様にクラスの中に定義していきます。

mainメソッドはJavaでは欠かせない存在なので、ぜひ本記事を繰り返し読んで、理解を深めてみてください。

以下では、Javaエンジニアの学習ロードマップをご紹介していますので、ぜひチェックしてみてください。

あわせて読みたい
Javaエンジニアの学習ロードマップ!実践で使える技術を厳選【2023年版】
Javaエンジニアの学習ロードマップ!実践で使える技術を厳選【2023年版】
運営者情報
運営者:シン
運営者:シン
フリーランスエンジニア|大阪在住|30歳【保有資格】Java Gold・ITパスポート・SEO検定全級・全日本SEO協会認定SEOスペシャリスト【経歴】配送業▶︎販売員▶︎プログラミングスクールTECH CAMP受講▶︎プログラマー▶︎独立【発信内容】プログラミング・エンジニア転職・フリーランス
記事URLをコピーしました