前回のHello worldプログラムは、オブジェクト指向の説明をするには不十分なので改訂します。これを改訂Hello worldプログラムと呼びます。
public class Hello {
class Friend {
このプログラムには2つのクラスが定義されており、2つのクラス間でメッセージをやりとりします。public static void main( String args [] ) {
}Friend tomo = new Friend();
tomo.greeting();
}
tomo.greeting();
class Friend {
public void greeting(){
}System.out.println("ハロー!");
}
まず、クラスとインスタンスの関係の説明をします。
クラスとインスタンスは図のような関係にあります。クラスは宣言したままではまだ利用出来ません。クラスはカテゴリーのような意味なので、実体(インスタンス)を作らないといけません。そのインスタンスを生成するのがnewという命令になります。
下図のようにインスタンスはいくつでも生成出来ます。当然ですね。

Friend tomo = new Friend();
tomo.greeting();
newという命令でFriendクラスのインスタンスを生成しています。生成したインスタンスをtomoと変数に代入しています。つまり、tomoという名前のインスタンスが出来た、と思って下さい。tomo.greeting();
次に、tomo.geeting()ですが、これは、インスタンスtomoのgreetingメソッドを実行する、という意味です。
このようにメソッドを実行する場合には、どのインスタンスのメソッドかを指定します。「誰に、何を」にあたりますね。

