それぞれオブジェクト指向プログラミングにおいて異なる役割と動作を持つメソッド
インスタンスメソッド
クラスのインスタンス(オブジェクト)に対して呼び出されるメソッド
-
インスタンス変数にアクセスできる
→インスタンスの属性や状態を読み取ったり変更したりできる -
インスタンスの特定の状態や属性に基づいて動作する
→個々のインスタンスごとに異なる結果を生成できる
クラスメソッド
クラス自体に対して呼び出されるメソッド
インスタンス変数にはアクセスできない
-
他のクラスメソッドや静的メンバ(静的変数や他の静的メソッド)にアクセスできる
-
クラス全体の操作や共有の情報に関連する機能を提供
-
インスタンスの特定の状態に依存せず、共通の処理やユーティリティメソッドなどを実行するために使用
どのメソッドを選択すべきか
プログラムの目的と要件によって異なる
-
インスタンスメソッド:インスタンスの特定の状態や属性にアクセスする必要がある場合
-
クラスメソッド:クラス全体の操作や共有の情報を処理する場合