プログラミング講座トップ ひつじTOWN デジタルシープラーニング

ひつじのJAVA言語入門への道 改訂Hello worldプログラム


前回のHello worldプログラムは、オブジェクト指向の説明をするには不十分なので改訂します。これを改訂Hello worldプログラムと呼びます。
public class Hello {
public static void main( String args [] ) {
Friend tomo = new Friend();
tomo.greeting();
}
}

class Friend {
public void greeting(){
System.out.println("ハロー!");
}
}
このプログラムには2つのクラスが定義されており、2つのクラス間でメッセージをやりとりします。

まず、クラスとインスタンスの関係の説明をします。
クラスとインスタンスは図のような関係にあります。クラスは宣言したままではまだ利用出来ません。クラスはカテゴリーのような意味なので、実体(インスタンス)を作らないといけません。そのインスタンスを生成するのがnewという命令になります。
下図のようにインスタンスはいくつでも生成出来ます。当然ですね。
さて、改訂Hello worldの、Helloクラスで行っている操作があります。
Friend tomo = new Friend();
tomo.greeting();
newという命令でFriendクラスのインスタンスを生成しています。生成したインスタンスをtomoと変数に代入しています。つまり、tomoという名前のインスタンスが出来た、と思って下さい。
次に、tomo.geeting()ですが、これは、インスタンスtomoのgreetingメソッドを実行する、という意味です。
このようにメソッドを実行する場合には、どのインスタンスのメソッドかを指定します。「誰に、何を」にあたりますね。
図:改訂版Hello worldプログラム
最初のHello worldプログラムでは、「ハロー!」と言っているのはHelloクラスですが、改訂版の方では「ハロー!」と言っているのはFriendクラスです。Helloクラスは、それを促しているだけです。多少は人間味のあるプログラムになりましたね?


[←] 第2回へ | [↑] プログラミング講座トップへ | [→] 第4回へ