---
title: "クラスとインスタンスとは？設計図と実体で考えるオブジェクト指向の基本【基本情報技術者試験】"
description: "クラスを「設計図」、インスタンスを「設計図から作られた実体」として整理し、FE試験でクラス、オブジェクト、属性、メソッドの関係を切り分ける判断軸を解説します。"
last_modified_at: "2026-07-07"
canonical_url: "https://stemtazoo.github.io/fe/class-instance/"
section: "fe"
---

## まず結論

クラスとは、**オブジェクトの共通する性質や動作をまとめた設計図**です。

インスタンスとは、**クラスという設計図をもとに作られた具体的な実体**です。

基本情報技術者試験では、まず **クラスが先、インスタンスが後** と押さえると分かりやすいです。

```text
クラス = 設計図・型
インスタンス = 設計図から作られた実体
```

## 直感的な説明

クラスとインスタンスは、**たい焼きの型と、実際に焼かれたたい焼き**で考えると分かりやすいです。

```text
たい焼きの型
→ クラス

実際に焼かれたたい焼き
→ インスタンス
```

たい焼きの型は、「どんな形のたい焼きを作るか」を決めます。

でも、型そのものは食べられません。  
型を使って作られた、具体的なたい焼きが実体です。

プログラムでも同じです。

クラスは、データや処理の形を決めます。  
そのクラスをもとに作られた具体的なものがインスタンスです。

## 定義・仕組み

オブジェクト指向では、データと処理をひとまとまりにして扱います。

このまとまりの設計図になるのがクラスです。

| 用語 | 意味 |
|---|---|
| クラス | データや処理の共通の定義をまとめたもの |
| インスタンス | クラスから作られた具体的な実体 |
| 属性 | インスタンスが持つデータ |
| メソッド | インスタンスが行える処理 |
| オブジェクト | 文脈によって、インスタンスとほぼ同じ意味で使われることが多い |

例えば、`Car` というクラスを考えます。

```text
Carクラス
- 属性：色、速度、燃料
- メソッド：走る、止まる、曲がる
```

この `Car` クラスから、具体的な車を作れます。

```text
car1 = 赤い車
car2 = 青い車
car3 = 白い車
```

この `car1`、`car2`、`car3` がインスタンスです。

1つのクラスから、値の異なる複数のインスタンスを作ることができます。

このテーマは、基本情報技術者試験の「アルゴリズムとプログラミング」や「オブジェクト指向」と関係する内容です。公式の出題範囲やシラバスは、[IPA：基本情報技術者試験](https://www.ipa.go.jp/shiken/kubun/fe.html) から確認できます。

## 科目Aでどう出る？

科目Aでは、クラスとインスタンスの関係を問う問題が出やすいです。

判断するときは、次の対応をまず押さえます。

| 表現 | 対応する用語 |
|---|---|
| 仕様を定義するもの | クラス |
| 設計図・型 | クラス |
| 定義に基づいて作られるもの | インスタンス |
| 具体的なデータを持つ実体 | インスタンス |
| データ | 属性 |
| 処理 | メソッド |

選択肢では、**クラスとインスタンスの主従関係が逆になっていないか**を見ます。

```text
正しい関係
クラスの定義に基づいて、インスタンスが生成される
```

逆に、次のような表現は誤りです。

```text
インスタンスがクラスの仕様を定義する
1つのクラスからインスタンスは1つしか作れない
1つのインスタンスに複数のクラスが対応する
```

FE試験では、細かいプログラム文法よりも、まずこの関係を切り分けることが大切です。

## 科目Bでどう使う？

科目Bでは、クラスやインスタンスの考え方が、プログラムの読み取りで役立ちます。

特に、次のような点を追うと読みやすくなります。

```text
1. どのクラスの話か
2. どのインスタンスの話か
3. そのインスタンスの属性は何か
4. どのメソッドで属性が変わるか
```

例えば、同じ `Car` クラスから作られたインスタンスでも、属性の値は別々です。

```text
car1.color = 赤
car2.color = 青
```

このとき、`car1` の色を変えても、通常は `car2` の色まで同時に変わるわけではありません。

```text
car1.color = 白

car1 → 白
car2 → 青のまま
```

科目Bでは、**クラス全体の定義**と、**個々のインスタンスが持つ値**を分けて読むことが大切です。

## よくある誤解・混同

クラスとインスタンスでよくある誤解は、**どちらが設計図で、どちらが実体かを逆にしてしまうこと**です。

| 誤解 | 正しい理解 |
|---|---|
| インスタンスがクラスの仕様を定義する | クラスが仕様を定義する |
| クラスは実体そのもの | クラスは設計図・型 |
| インスタンスは設計図 | インスタンスは設計図から作られた実体 |
| 1つのクラスから1つのインスタンスしか作れない | 1つのクラスから複数のインスタンスを作れる |
| 属性とメソッドは同じ | 属性はデータ、メソッドは処理 |

特に、オブジェクトという言葉は少しあいまいに使われることがあります。

FE試験では、まず次のように整理すると十分です。

```text
クラス
→ 設計図

インスタンス
→ 設計図から作られた具体物

オブジェクト
→ 文脈によってインスタンスに近い意味で使われることが多い
```

細かい言語仕様に入る前に、この基本関係を押さえるのが実戦的です。

## まとめ（試験直前用）

- クラスは、データや処理をまとめた設計図・型
- インスタンスは、クラスから作られた具体的な実体
- 正しい関係は「クラスの定義に基づいてインスタンスが生成される」
- 1つのクラスから複数のインスタンスを作れる
- 属性はデータ、メソッドは処理として切り分ける
