C# オブジェクト指向 ステップアップ ワークシート

では、『なるほどなっとくC#』で配列まで終わった初学者向けに、オブジェクト指向を“満足に”学べるためのワークシートをステップ形式でまとめます。


✏️ 【Step 0】おさらい

  • 配列は同じ型のデータをまとめて扱うものだった
int[] numbers = {1, 2, 3};
  • オブジェクト指向では「型」に名前と中身(値+機能)をセットにして自分で作れる。

✏️ 【Step 1】クラスとは?

✅ ポイント

  • 設計図(型) のこと。
  • データ(フィールド)と動き(メソッド)をまとめる。

✏️ 【Step 2】まずはクラスを書いてみる

📝 練習1:人クラス

public class Person
{
    // フィールド(値)
    public string Name;
    public int Age;

    // メソッド(動き)
    public void SayHello()
    {
        Console.WriteLine($"こんにちは!私は {Name} です。");
    }
}

✏️ 【Step 3】インスタンスを作る

📝 練習2:クラスから実体を作って使う

class Program
{
    static void Main(string[] args)
    {
        Person p = new Person();
        p.Name = "太郎";
        p.Age = 20;
        p.SayHello();  // → 「こんにちは!私は 太郎 です。」
    }
}

✏️ 【Step 4】配列と組み合わせてみる

📝 練習3:人クラスの配列

class Program
{
    static void Main(string[] args)
    {
        Person[] people = new Person[2];

        people[0] = new Person();
        people[0].Name = "太郎";
        people[0].Age = 20;

        people[1] = new Person();
        people[1].Name = "花子";
        people[1].Age = 18;

        foreach (var p in people)
        {
            p.SayHello();
        }
    }
}

✏️ 【Step 5】プロパティを使う

✅ ポイント

  • 外部から安全に値をやりとりする仕組み
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    public void SayHello()
    {
        Console.WriteLine($"こんにちは!私は {Name} です。");
    }
}

✏️ 【Step 6】コンストラクタを使う

✅ ポイント

  • インスタンス作成時に初期値を設定できる
public class Person
{
    public string Name { get; set; }
    public int Age { get; set; }

    // コンストラクタ
    public Person(string name, int age)
    {
        Name = name;
        Age = age;
    }

    public void SayHello()
    {
        Console.WriteLine($"こんにちは!私は {Name} です。");
    }
}

// 使用例
class Program
{
    static void Main(string[] args)
    {
        Person p = new Person("太郎", 20);
        p.SayHello();
    }
}

✏️ 【Step 7】まとめ問題

🎯 問題

  1. 「車クラス(Car)」を作りましょう
    • 名前、色をプロパティで持つ
    • Drive() メソッドで「〇〇の〇〇色の車が走ります」と表示
  2. 2台の車を作って、配列に入れて、全ての車を走らせてみましょう。

📌 【補足Tips】

  • new は「設計図から実体を作る」合言葉!
  • 同じクラスでもインスタンスは別物
  • 配列の要素にクラスを入れると複雑なデータをまとめて扱える

🗂️ 【次のステップ】

  • 継承・ポリモーフィズムは基本ができたら!
  • Unityで使う GameObject もクラスのインスタンスの一種!

訪問数 3 回, 今日の訪問数 3回