クラスメソッドは、クラスから直接利用するため、インスタンスメソッドとはいろいろと性質が違う面があります。なにより重要なのは、「インスタンス変数が使えない」という点でしょう。インスタンス変数は、作成したインスタンスに値を保管するためのものですから、クラスには値を保持できません。したがって、インスタンスに保管されるさまざまな情報にはアクセス出来ません。
また、クラスから直接インスタンスメソッドを呼び出すこともできません。つまりクラスメソッドは、クラスメソッドだけで完結するような形で作成されることになります。そう考えると、用途はだいぶ限定されると言っていいでしょう。
もっとも考えられるのは、保管されるデータなどを必要とせず、渡される引数の値などだけから何かの処理を行わせるようなものです。例えば純粋な計算処理などは、いちいちインスタンスを作ってメソッドを呼び出すより、クラスメソッドとして実装したほうが便利でしょう。
また、クラスから直接インスタンスメソッドを呼び出すこともできません。つまりクラスメソッドは、クラスメソッドだけで完結するような形で作成されることになります。そう考えると、用途はだいぶ限定されると言っていいでしょう。
もっとも考えられるのは、保管されるデータなどを必要とせず、渡される引数の値などだけから何かの処理を行わせるようなものです。例えば純粋な計算処理などは、いちいちインスタンスを作ってメソッドを呼び出すより、クラスメソッドとして実装したほうが便利でしょう。
コメント
コメントを投稿