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

クラスとは?

読み方:くらす

最終更新:2026/08/18

3秒でわかる

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

もう少し詳しく

どういうものか

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

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

なぜ必要か

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

クラスにまとめておくと、変更点は 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中級 内包表記・高階関数・クラス入門

    58レッスン
    コース

    Java入門:基礎文法編

    69レッスン
    コース

    TypeScript入門:型を付けて関数を書く

    22レッスン
    Pythonコースの全編を見る