オブジェクト指向の考え方
プログラミングの世界では、現実のものごとをわかりやすく整理して表すために「オブジェクト指向(Object Oiented)」という考え方を使います。
オブジェクト指向は、一見難しく感じますが、実は身近なものを例にするととてもわかりやすいんです。
今回は、歴史で有名な「徳川家康」を例にして、「クラス」と「インスタンス(オブジェクト)」 の違いと役割を説明してみましょう。です。
目次
【オブジェクト指向の考え方】
■ 1. まず「クラス」とは?
- クラスとは、共通の性質やふるまいをまとめた「設計図」のことです。
- 例えば「人間」というクラスを作ると、「名前がある」「年齢がある」「歩くことができる」といった共通の性質をまとめて表せます。
■ 2. 「インスタンス」とは?
- クラスという設計図をもとにして、実際に使える形にしたものが インスタンス(実体)です。
- 「人間」というクラスから「徳川家康」という実際の人を作ったら、それがインスタンスです。
■ 3. 「オブジェクト」とは?
- オブジェクトは「インスタンス」とほぼ同じ意味で使われます。
- 「属性(名前や年齢などのデータ)」と「メソッド(歩く、食べるなどの動作)」を持つまとまりのことです。
【まとめ図】
用語 | 例 | 説明 |
---|---|---|
クラス | 人間 | 設計図(共通の性質と動き) |
インスタンス(オブジェクト) | 徳川家康 | 設計図から作られた実物 |
【イメージをふくらませる例】
- 「犬」というクラス → 「ポチ」というインスタンス
- 「車」というクラス → 「赤いプリウス」というインスタンス
- 「ゲームキャラクター」というクラス → 「勇者アレックス」というインスタンス
【ポイント】
- クラスはあくまで共通のルールや設計図。
- 実際にプログラムの中で使われるのは「インスタンス(オブジェクト)」です。
- 1つのクラスから何個でもインスタンスを作れます。
- 例:家康、秀吉、信長、みんな「人間」クラスから作れる。
【初心者向けの一言】
「クラスは説明書、インスタンスは完成したモノ」
このイメージでOKです!
【C# サンプルコード】
using System;
namespace ObjectOrientedSample
{
// 「人間クラス」の定義(設計図)
class Human
{
// フィールド(属性)
public string Name;
public int Age;
// メソッド(ふるまい)
public void Walk()
{
Console.WriteLine($"{Name} が歩いています。");
}
}
class Program
{
static void Main(string[] args)
{
// 「徳川家康」というインスタンスを作る
Human ieyasu = new Human();
// 属性を設定する
ieyasu.Name = "徳川家康";
ieyasu.Age = 75;
// 属性を表示する
Console.WriteLine($"名前: {ieyasu.Name}");
Console.WriteLine($"年齢: {ieyasu.Age}");
// ふるまい(メソッド)を実行する
ieyasu.Walk();
}
}
}
【ポイント解説】
✅ クラスの定義
class Human
{
public string Name;
public int Age;
public void Walk() { ... }
}
- Human がクラス(設計図)。
- Name と Age が属性。
- Walk がふるまい(メソッド)。
✅ インスタンスの生成
Human ieyasu = new Human();
- new を使ってクラスから実体(オブジェクト)を作ります。
- ieyasu が「徳川家康」のインスタンス。
✅ 属性をセットして使う
ieyasu.Name = "徳川家康";
ieyasu.Age = 75;
✅ メソッドを実行する
ieyasu.Walk();
- 設計図にある「歩く」を、家康が実際に行います。
【超まとめ】
- クラス = Human(人間)
- インスタンス = ieyasu(徳川家康)
- 属性とふるまいで表現する
訪問数 3 回, 今日の訪問数 3回
ディスカッション
コメント一覧
まだ、コメントがありません