演習で作成したプログラムの解説を行う。
プログラムを観察してみる
練習で作成したプログラムを観察する (説明のための番号を付ける)。
1: package j1.lesson01; 2: 3: public class Hello { 4: public static void main(String[] args) { 5: System.out.println("Hello, world!"); 6: } 7: }
1行目 (パッケージ)
1行目の「package j1.lesson01;」は、このソースプログラムがどのパッケージに含まれているかを示す。この行はソースプログラムの先頭のほうへ書く必要がある (正確にはクラスを書き始める前)。この宣言の書き方は次の通りである。
package <パッケージ名>;
先ほどの演習では「j1.lesson01」というパッケージ内に「Hello」というクラスを作ったため、このソースプログラムの先頭では「package j1.lesson01;」という記述が必要になる。ただし、Eclipseで作業する場合は、この部分は自動的に生成されるため、あまり深く考える必要はない (自動生成されたものを無理に書き換えないこと)。
3行目-7行目 (プログラム)
プログラムは基本的に
XXX { YYY }
のような構造をしている。大雑把に言えば、XXXが名前で、YYYがその中身である。最初のXXXにあたるものが
public class Hello
である。これでHelloという名前のclassであることを示している。3行目から7行目までがYYYにあたる。これがHelloというclassの中身である。
このYYYの部分にまた同じように括弧に囲まれたものがある(4行目の最後から6行目まで)。これらの"{"と"}"が重要な括弧の役割をする。
3行目-7行目 (クラス)
3行目の"{"に対応する"}"は7行目にある。これで、Helloというclassのプログラムは3行目から7行目の"}"までであることが分かる。
4行目-6行目 (メソッド)
4行目からmainという名前のメソッドが始まり、それは7行目の"}"で終わっている。public、static、voidなどが何を意味するかはおいおい説明する。メソッドはオブジェクト指向プログラミング言語で使われる言葉であり、他の言語では、関数とか手続きとか呼ばれるが、メソッドの意味もおいおい説明する。
アプリケーションプログラムを実行するときは、必ずmainという名前のメソッドから実行をはじめる。今の例ではそこには
System.out.println("Hello, world!");
しかないから、それが実行されるだけである。
もし、そこに
System.out.println("Hello!"); System.out.println("こんにちわ"); System.out.println("お元気ですか");
と並べて書いてあったら、それらがその順に実行されて
Hello! こんにちわ お元気ですか
と出力される(確かめてみよ)。
一般に、プログラムは書いてある順に順次実行される。
文字列
出力される文字列は「"」と「"」で囲まれている。「"」と「"」で囲まれた文字列は複数行にまたがってはならない。もし、上の3行の代わりに
System.out.println("Hello! こんにちわ お元気ですか");
と書くとエラーとなる。
スタイル
「"」と「"」で囲まれたところや、単語の途中以外では、スペースやタブや改行文字は自由に入れてよい。たとえば、最初のプログラムを
package j1 . lesson01 ;public class Hello {public static void main ( String[] args) {System.out.println( "Hello!") ;}}
などとしてもエラーとはならない。しかし、これでは読みにくいプログラムになってしまうから、"{"と"}"の対応関係などが分かり易い様に書くのが望ましい。分かりやすい表現法として、次の形もある。
package j1.lesson01; public class Hello { public static void main(String[] args) { System.out.println("Hello World"); } }
この例や、最初の例のように、"{"と"}"の対応関係やプログラムの構造を分かりやすくするために、各行の開始位置を適当に右にずらすのを字下げ(indentation)という。字下げをするにはタブを利用するとよい。