【オブジェクト指向入門】なぜ class は便利なの?「たい焼きの金型」で理解する設計思想
公開日: 2025年9月27日
Python, Java, JavaScript (ES6以降) … 多くのモダンなプログラミング言語を学んでいると、必ず class というキーワードに出会います。 「なんだか難しそう…」「関数だけで良くない?」と感じて、少し敬遠してしまっている人も多いのではないでしょうか。
class は、オブジェクト指向プログラミング (Object-Oriented Programming, OOP) という、非常に強力な設計思想の根幹をなす概念です。 そして、その考え方は、実は私たちの日常生活に溢れています。
今日は、この class という概念を、日本人なら誰もが大好きな「たい焼き」に例えて、その本当の便利さを体験してみましょう。
もし class がなかったら… (一個ずつ手作りするたい焼き)
あなたがたい焼き屋さんになったとします。class を使わないプログラミングは、一個一個、たい焼きを手でこねて作っていくようなものです。
# 1個目のたい焼き (データ)
taiyaki_1 = {
"anko": "つぶあん",
"size": "普通"
}
# 1個目のたい焼きを焼く (処理)
def bake_taiyaki_1():
print(f"{taiyaki_1['size']}サイズの、{taiyaki_1['anko']}のたい焼きが焼けました!")
# 2個目のたい焼き
taiyaki_2 = {
"anko": "こしあん",
"size": "ミニ"
}
def bake_taiyaki_2():
print(f"{taiyaki_2['size']}サイズの、{taiyaki_2['anko']}のたい焼きが焼けました!")
bake_taiyaki_1()
bake_taiyaki_2()
これでも、たい焼きは作れます。しかし、100個の注文が来たらどうでしょう? 同じようなコードを100回書かなければならず、もし「焼き時間を変える」という仕様変更があったら、100個すべての関数を修正する必要があります。これは悪夢です。
class の登場:「たい焼きの金型」という発明
ここで、天才的な職人が、「たい焼きの金型」を発明しました。 この「金型」こそが、class です。
# これが「たい焼き」というものの設計図(金型)です
class Taiyaki:
# 金型からたい焼きを作る(インスタンス化する)ときの初期設定
def __init__(self, anko, size):
self.anko = anko # このたい焼きの「あんこ」という属性
self.size = size # このたい焼きの「サイズ」という属性
# この金型から作られたたい焼きなら、誰でも「焼く」ことができる
def bake(self):
print(f"{self.size}サイズの、{self.anko}のたい焼きが焼けました!")
class Taiyaki は、たい焼きそのものではなく、「たい焼きとは、”あんこ”と”サイズ”というデータを持ち、”焼く”という行動ができるものである」という設計図(テンプレート)を定義したものです。
金型から、本物のたい焼き(インスタンス)を作る
この「金型 (class)」さえあれば、あとは生地を流し込むだけで、いくらでも本物のたい焼き(インスタンスやオブジェクトと呼ばれます)を、簡単かつ高品質に量産できます。
# 1個目のたい焼きを、金型から作る
taiyaki_1 = Taiyaki("つぶあん", "普通")
# 2個目のたい焼きを、金型から作る
taiyaki_2 = Taiyaki("クリーム", "特大")
# それぞれのたい焼きに「焼け!」と命令する
taiyaki_1.bake() # → 普通サイズの、つぶあんのたい焼きが焼けました!
taiyaki_2.bake() # → 特大サイズの、クリームのたい焼きが焼けました!
どうでしょうか?コードが非常にスッキリし、再利用性が高くなりましたよね。 もし「焼き時間を変える」という仕様変更があっても、修正するのは class Taiyaki の中の bake 関数、たった一箇所だけです。
まとめ:class は、高品質な部品を作るための設計図
オブジェクト指向と class の本質。それは、
関連する「データ(属性)」と「処理(メソッド)」を、一つの「部品(オブジェクト)」としてまとめることで、コードの再利用性を高め、メンテナンスを容易にする
という、非常にパワフルな考え方です。
車は、「タイヤ」「エンジン」「ハンドル」といった独立した部品から成り立っています。それぞれの部品が、自分の役割に責任を持つことで、巨大で複雑な「車」というシステムが、破綻なく動いています。
class を使いこなせるようになることは、あなたが「ただ動くコードを書く人」から、「再利用可能で、美しい『部品』を設計できるエンジニア」へと進化するための、大きな一歩なのです。
プログラミング学習に必須ツール!
記事で紹介したコードがよく分からなかったり、ご自身のコードについてもっと知りたい場合は、AIコード解説ツールが便利です。コードを貼り付けるだけで、AIが日本語で分かりやすく解説します。
AIコード解説ツールを使ってみる →