プログラミングの用語一覧へ
このページの目次

クラスとは?

読み方:くらす

最終更新:2026/08/18

3秒でわかる

データとその操作をひとまとめにした型の定義。同じ構造を持つオブジェクトを何個でも作れる設計図として、規模の大きなプログラムの土台になります。

もう少し詳しく

どういうものか

クラスは、どんなデータ(属性)を持ち、どんな操作(メソッド)ができるかをまとめて定義したものです。定義しただけでは動かず、そこから作った実体をインスタンス(オブジェクト)と呼びます。

たとえば Coffee というクラスに「豆の種類」「サイズ」という属性と「価格を計算する」というメソッドを定義しておけば、latte や americano といったインスタンスを必要な数だけ作れます。属性の値はインスタンスごとに別々で、メソッドの中身は共通です。

なぜ必要か

関連するデータと処理が離れていると、片方だけ直す事故が起きます。辞書やリストで注文を表現していると、「金額の計算式」がプログラムの各所に散らばり、税率が変わったときに直し漏れます。

クラスにまとめておくと、変更点は 1 か所です。加えて、外から触ってよい操作だけを公開して内部の持ち方を隠せるため、内部構造を後から作り替えても呼び出し側を壊しません。

具体例

class Coffee:
    tax_rate = 0.1                     # クラス変数。全インスタンス共通

    def __init__(self, name, base_price):
        self.name = name               # インスタンス変数
        self.base_price = base_price

    def price(self):
        return round(self.base_price * (1 + Coffee.tax_rate))

    def __str__(self):
        return f"{self.name} {self.price()}円"


class IcedCoffee(Coffee):              # 継承
    def price(self):
        return super().price() + 50    # 氷代を足す


latte = Coffee("ラテ", 500)
iced = IcedCoffee("アイスラテ", 500)
print(latte, iced)   # ラテ 550円 アイスラテ 600円

self は「このインスタンス自身」を指す第 1 引数で、呼び出し時には書きません。

つまずきやすいところ

  • self を書き忘れる — メソッドの定義に self が無いと呼び出し時に引数の数が合わずエラーになります

  • クラス変数とインスタンス変数を混ぜる — クラス直下に items = [] と書くと全インスタンスで共有されます。個別に持たせるなら __init__ の中で self.items = [] とします

  • クラスとインスタンスを取り違える — Coffee.price() は動きません。インスタンスを作ってから latte.price() と呼びます

  • 何でもクラスにする — 状態を持たず入力から出力を返すだけの処理は、関数のままのほうが読みやすいです
  • 似た用語との違い

    用語中身
    クラス定義。設計図そのもの
    インスタンスクラスから作られた実体
    コンストラクタインスタンス生成時に走る初期化処理
    継承既存クラスの定義を引き継いで拡張すること


    覚え方

    クラスはたい焼きの型、インスタンスは焼き上がったたい焼きです。型は 1 つ、たい焼きは何個でも、中身のあんこ(属性の値)は個別に変えられます。

    次に学ぶ

    フレームワークとは?

    知識のつながり

    サイドバーと同じ推奨ルート・関連語を、まとめて確認できます。

    現在地クラスプログラミング

    LEARN BY DOING

    この用語を、教材で使ってみる

    直接関連する編と、その編を含むコースです。用語だけで終わらず、ブラウザ上で実際に手を動かせます。

    このコースが入っている学習分野

    Pythonコースの全編を見る