本記事の内容
- Javaのmainメソッドの基本概要
- mainメソッドで知っておきたい4つのこと
- mainメソッドの使い方
プログラミング言語のJavaでは、mainメソッドが使われます。mainメソッドとは一体どのような役割があるのでしょうか?
今回はJavaのmainメソッドについて、わかりやすく解説していきます。
僕自身は現役のエンジニアで主に業務でJavaを扱っていますので、情報の信ぴょう性はあるかと思います。
先に結論を言うと、mainメソッドはmJavaプログラムの起点となるメソッドです。
本記事をお読みいただければ、Javaのmainメソッドの意味や書き方の基礎を身につけることができます。
ぜひ最後までご覧ください。
Javaのmainメソッドの基本概要
まず、mainメソッドの基本についてみていきましょう。
- mainメソッドとは
- mainメソッドの書き方
mainメソッドとは
mainメソッドとは、Javaプログラムのエントリーポイント(起点)となるメソッドのことをいいます。
Javaプログラムが動くとき、最初にmainメソッドが実行されます。
mainメソッドがないとエラーが発生するため、必ず記述しなければなりません。
mainメソッドの構文
mainメソッドの書き方は以下の通りです。
public static void main (String[] args){
}
修飾子はpublicとstaticをつけ、戻り値はvoidにします。
メソッド名はmainとし、引数にはString[] argsをつけます。
もし上記以外の修飾子や引数をつけると、mainメソッドとして認識されなくなってしまいます。
Javaのmainメソッドで知っておきたい4つのこと
Javaのmainメソッドで押さえておきたい4つのことを解説していきます。
- mainメソッドの決まり事
- mainメソッドのクラス名
- mainメソッドなしの場合はどうなるか
- 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メソッドといっても、通常のメソッドの一種です。
クラスの中に定義しておく必要があるだけで、クラス名の指定をする必要はないです。
その③: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の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では欠かせない存在なので、ぜひ本記事を繰り返し読んで、理解を深めてみてください。