この記事の最終更新日: 2025年4月26日

はじめに
プログラミングの学習を進める中で、「スタティック(static)メソッド」と「インスタンス(instance)メソッド」という言葉に出会うことがあります。これらは、オブジェクト指向プログラミングにおける基本であり、正しく理解することでより効率的なコーディングが可能になります。本記事では、それぞれの違いや使い分けについて、身近な例を交えてわかりやすく解説します。
スタティックメソッドとは?
スタティックメソッドはクラス自体に属するメソッドで、オブジェクト(インスタンス)を作らずに直接クラス名から呼び出せるのが特徴です。これは、メソッドの処理内容が特定のインスタンスの状態に依存していない場合に適しています。
たとえば、数学的な計算(例:三角関数や絶対値など)を行うメソッドは、どのインスタンスにも依存しないため、スタティックメソッドとして定義するのが適しています。
Math.abs(-10); // クラスから直接呼び出し
インスタンスメソッドとは?
インスタンスメソッドは特定のオブジェクトに属するメソッドで、そのオブジェクトの状態や動作に関係する処理を行います。呼び出すにはまずクラスからインスタンスを生成する必要があります。
例えば、銀行口座クラスで考えると、「残高を確認する」「お金を預ける・引き出す」といったメソッドは、特定の口座の情報に依存するため、インスタンスメソッドとして定義するのが自然です。
Account myAccount = new Account();
myAccount.deposit(1000); // オブジェクトを使って呼び出す
スタティックメソッドとインスタンスメソッドの違いまとめ
比較項目 | スタティックメソッド | インスタンスメソッド |
---|---|---|
所属先 | クラス | インスタンス(オブジェクト) |
呼び出し方法 | クラス名.メソッド() | インスタンス.メソッド() |
インスタンスの状態利用 | 不可 | 可 |
代表的な用途 | 計算・変換処理など | オブジェクトの操作・状態管理 |
まとめ
スタティックメソッドとインスタンスメソッドは、それぞれの役割が明確に異なります。
- クラス全体に共通する処理やオブジェクトに依存しない計算などは、スタティックメソッドとして定義すると効率的です。
- 一方で、オブジェクトごとの状態を管理したり操作する処理は、インスタンスメソッドを使うことで、より自然で直感的な設計が可能になります。
この2つのメソッドの違いを正しく理解して使い分けることが、オブジェクト指向プログラミングの第一歩です。

大阪のエンジニアが書いているブログ。
コメント