ユーさんは見た!#9 Javaのあの文

こんにちは、アイサットのユーさんです!
今回は、Javaのソースコードで必ず書く”あの文”について、取り上げたいと思います。

ユーさんは見た!

----------------------------------------

概要

  • ◎Javaのmainメソッドについて再確認してみる
  • ◎Javaのmainメソッドの書き方が変わる!?

Javaのmainメソッドについて再確認してみる

Javaでは現在、下記の文を書くことになっています。
public static void main(String[] args)

例えば下のソースコードのような感じで、mainメソッドをクラス内で宣言します。

このmainメソッドの一文はどういった意味を持つのでしょうか。
5つの部分に分けてみましょう!とりゃ!

public / static / void / main / (String[] args)

①public

「public」は「公開の」といった意味ですが、この部分はアクセス修飾子となっていて、メソッド(関数)を呼び出す(実行する、参照する)ことができる範囲を示しています。
「public」の場合は、すべてのクラス・パッケージ・サブクラスから参照することができ、プログラムの公開範囲が最も広い設定となっています。
他に、「protected」・記載なし・「private」がありますが、mainメソッドの場合は「public」となります。

②static

「static」は「静的」といった意味ですが、この記載があることで、クラスをインスタンス化(『new ○○』と記載)せずに呼び出しができるようになります。
mainメソッドを記載したプログラムを実行するために、必要な記載です。

③void

「void」は「何もない」といった意味ですが、この部分は戻り値の型を示しています。
戻り値がない(メソッドの呼び出し元に何も値を返さない)場合は、この「void」を記載します。

④main

メソッド名で、すべて小文字となります。「main」は「主な」といった意味ですね。

⑤(String[] args)

「String」は「文字列」といった意味です。そして「args」は「引数」といった意味の単語である「arguments」の省略形となっており、2つの単語の間の「[]」は配列を示しています。
この部分はコマンドライン引数を示しており、PowerShellやコマンドプロンプトでプログラムを呼び出す際には、「java (クラス名).java」の右横に記載した値を引数として受け取ります。
例えば「java (クラス名).java 1 2 3」と記載して実行した場合は、String型の「1」「2」「3」の3つが、引数の情報としてプログラムへ渡されます。

mainメソッドの”あの文”は、この5つから成り立っています。
そして、この5つのどこかにミスがあるとエラーとなってしまいます。
少し呪文のような感じですね。

Javaのmainメソッドの書き方が変わる!?

このような書き方が長年定着していたJavaでしたが、変化が起きそうです。
LTS(長期サポート)のバージョンとして、2023年9月に正式リリースとなる予定の「Java(JDK) 21」では、mainメソッドが少し異なる書き方でも、プログラムの実行が可能となります。

今まではこのように書いていたのが…

このような書き方(コード)でもOK(実行可)となります!
上の2つの場合で比較すると、5行が3行になり、「public class Sample {}」や「public static」は省略された状態です。

なお、従来の「public static void main(String[] args)」の書き方(コード)は、Java 21でも同様に使用可能です。

このmainメソッドについては、Javaで難しく感じる部分の1つかと思います。
ただこの変化によって、特に初学者の方にとっては、少しハードルが低くなりそうです。
そして、ソースコードの簡素化にも繋がるため、今後はこの”一部省略形”のコードで書かれるパターンが多くなるかもしれませんね。

----------------------------------------

今回は、Javaのmainメソッドで冒頭に記載する文や、その記載内容の変化について、少しですが見ていきました。
大きな変化も含まれるJava 21の動向などについては、今後も注目していきたいです。

――――――――――――――――――――――――――――――――――――――――
※掲載情報は、記事執筆日時点のものです。
――――――――――――――――――――――――――――――――――――――――

ここまでご覧くださり、ありがとうございました!
弊社では現在、社長ブログ・営業ブログ・技術者ブログと様々なブログを展開しております。ぜひ他の記事もご覧ください!

「ユーさんは見た!」次回もお楽しみに♪

#IT #system #engineer #エンジニア #tech #技術者 #プログラミング #programming

ブログ

前の記事

ある真夏日の話
ブログ

次の記事

偏見