yourself.
インスタンスメソッドを実行するには、まずインスタンスオブジェクトを生成しなければならない:
インスタンスメソッドを実行するには次のように記述する:
一方、クラスメソッドを実行するには、クラスオブジェクトに直接属しているため、インスタンスオブジェクトの代わりにクラスオブジェクトに対してメッセージを送る。
クラスメソッドを実行するには次のように記述する:
クラスオブジェクトのインスタンス変数が共有される例を示す:
クラスメソッドは、変数に代入せず直接クラス名を指定して呼び出すことが多い。特にクラスがオブジェクトではない言語においては、直接クラス名を指定する書き方しかできない。
直接クラス名を指定したクラスメソッドの呼び出しは次のように記述する:
クラスがオブジェクトになっている言語の場合、インスタンスもクラスも同じオブジェクトとして扱われるため、インスタンスメソッドとクラスメソッドでメッセージの送り方に区別はない。インスタンスメソッドの代わりにクラスメソッドを呼び出すことも、クラスメソッドの代わりにインスタンスメソッドを呼び出すこともできる。どちらのメソッドを呼び出すかは、メッセージを送った変数にインスタンスとクラスのうち、どちらのオブジェクトを代入していたかで決まる。
Javaによる例.
 /** インスタンスフィールド */
 /** クラスフィールド */
 /** インスタンスを生成するためのコンストラクタ */
 this.name = name;
 
 
 
 /** 静的メソッド、setter */
Smalltalk同様インスタンスメソッドを呼び出すには、まずコンストラクタを呼び出してインスタンスを生成しなければならない:
インスタンスメソッドを呼び出すには次のように記述する:
上記の例は、Smalltalkの例におけるインスタンスメソッドの呼び出しと同様に動作する。
クラスメソッドを呼び出すには次のように記述する:
メッセージ送信とメソッド呼び出し.
仮想メソッド、抽象メソッドと具象メソッド.
仮想メソッド.
仮想と非仮想.