Java入門の第3回です。前回はJavaコードをキーボードから入力して、Eclipseの実行ボタンを押して、コンソールで実行結果を確認しました。
今回は、前回入力したJavaコードを意味を確認していきます。
前回入力した以下のコードを確認
前回入力した以下のコードの意味を確認していきましょう。
public class Test1 { public static void main(String[] args) { System.out.println("Hello World!"); } }
上記のJavaコードは、「Hello World!」と画面に表示するように指定しています。入力の際に気を付けるポイントとしては、以下などが挙げられます。
- 全角ではなく、半角英数で入力する
- 大文字と小文字は区別される
- 命令の末尾にはセミコロン( ; )をつける
Javaクラスとは?
上記のコードは「Test1」という名前をつけたJavaクラスです。Javaクラスとは、実行される処理内容をひとまとまりにしたものです。
Javaクラスを作成する際には、以下のようにクラス名の後に中括弧 { } で囲んで処理内容を記述します。
public class クラス名 { 処理内容 }
もう一度、前回入力したコードを確認してみましょう。
public class Test1 { public static void main(String[] args) { System.out.println("Hello World!"); } }
上記のコードでは、public class Test1 { ~ }の部分がTest1クラスとしてひとまとまりになっています。中括弧{ ~ }のなかでは、「Hello World!」と画面に表示する処理が指定されています
今回の処理は文字列を書き出すだけで簡単なものですが、複雑な処理の場合にはこの中括弧{ ~ }の中身の部分が長くなることもあります。
public static void main(String[] args)の部分は、お決まりの書式
public static void main(String[] args)の部分については、意味を知っておきたいかもしれませんが、ひとまずJavaプログラムではこうやって書くものだと思って先へ進んでください。
public class Test1 { public static void main(String[] args) { System.out.println("Hello World!"); } }
この部分はこれから何度も同じ記述をすることになるので、いずれ覚えてしまうかもしれません。ぞれぞれの意味については、このシリーズの中で順番に解説していきます。今の段階では、お決まりの書式として毎回丸写ししておきましょう。
Javaプログラムはmain()から実行される
注目してほしいのは main( ~ ) の部分です。main( )は「メイン・メソッド」と呼ばれる特別なメソッドです。
public class Test1 { public static void main(String[] args) { System.out.println("Hello World!"); } }
Javaプログラムは必ずmain()メソッドから実行されます。今回、画面に「Hello World!」と表示するプログラムが実行されたのも、この処理内容がmain()メソッド内に記述されていたからです。
仮に、この部分をmain2()という名前に変更したとします。それをEclipseで実行すると、コンソールに以下のエラーメッセージが表示されます。
コンソールには「メイン・メソッドがクラスTest1で見つかりません。」というエラーメッセージが表示されています。クラスのなかにmain()メソッドが無ければ、Javaプログラムを実行できないというわけです。
クラスのなかに複数のメソッドがある場合にも、まずmain()メソッドが実行されて、main()メソッド内から他のメソッドが呼び出されるという順序でプログラムが実行されます。
「Hello World!」と画面表示する
今回のサンプルコードの場合、main()メソッドのなかの System.out.println(“Hello World!”); の部分が、プログラムとして実行される処理内容です。この部分は「Hello World!」と画面に表示するように指定しています。
public class Test1 { public static void main(String[] args) { System.out.println("Hello World!"); } }
println()は、指定内容を画面表示した後に改行させる命令です。もし最後の改行が必要なければ、print()でも指定内容を画面表示させられます。
表示される画面はJavaが動作する環境によって異なる場合がありますが、Eclipseで表示確認する場合にはコンソール画面になります。
Javaコードはコンパイルされてから実行される
Eclipseで開発していると気づきにくいのですが、プログラマがキーボードから入力したJavaコードは一度コンパイルされてから実行されています。コンパイルとは、人が入力したプログラムコードが、コンピュータが理解できるバイナリコードの形式に変換されることです。
いまキーボードから入力しているJavaコードは「Test1.java」というファイルとして保存されています。このjavaファイルをEclipseで実行すると、裏側でコンパイラが動いて自動的に「Test1.class」というファイルが生成されます。この自動生成されたclassファイルは、コンピュータが理解できるようにコンパイルされたものです。
Eclipseで作成したプロジェクトの場合、クラスを新規作成するとsrcフォルダのなかにjavaファイルとして保存されます。そのjavaファイルを実行すると、binフォルダのなかにコンパイル後のclassファイルが自動生成されます。
Javaコードが実行される際、実際に実行されているのはclassファイルです。Java言語は、コンパイルでコンピュータが実行できるバイナリコードに変換され、それをJava仮想マシンが解釈して実行されるという段階を踏んでいるということを理解しておきましょう。
classファイルの中身はテキストエディタでは見られない
コンパイル後のclassファイルは、コンピュータが実行するためのコードになっており、基本的には人が読めるようにはなっていません。classファイルの中身を見てみたいかもしれませんが、classファイルの中身はテキストエディタでは見られません。
もし、classファイルの中身を見てみたい場合には、デコンパイラと呼ばれるツールを使う方法などがありますので、興味のある方はいずれ検索などで調べてみてください。現時点では、Javaコードはコンパイルという段階を踏んでから実行されていることを知っておけば十分でしょう。
次回へ続きます。