本文へスキップ
BecomeCoder

C#オブジェクト指向コース · 第1章 オブジェクト指向 · レッスン1

クラスとオブジェクト

ブラウザで完結

導入

関連するデータと処理を1つの型にまとめた設計図クラス、その設計図から作った実体がオブジェクト(インスタンス)です。「犬」という設計図から、ポチ・タロといった個体を作るイメージです。

図解

flowchart LR
    C["クラス Dog<br/>(設計図)<br/>Name / Bark()"] -->|new| O1["オブジェクト<br/>ポチ"]
    C -->|new| O2["オブジェクト<br/>タロ"]
    style C fill:#e1f5fe

サンプル

// クラスからオブジェクトを作る(new)
Dog pochi = new Dog();
pochi.Name = "ポチ";
pochi.Bark();          // ポチ: ワン!

Dog taro = new Dog();
taro.Name = "タロ";
taro.Bark();           // タロ: ワン!

// ── 型宣言はトップレベルのコードより後ろに置く(C#の決まり)──
class Dog
{
    public string Name = "";     // データ(フィールド)

    public void Bark()           // 処理(メソッド)
    {
        Console.WriteLine($"{Name}: ワン!");
    }
}
  • class 名前 { ... } でクラス(設計図)を定義する
  • new クラス名() でオブジェクト(実体)を作る
  • 1つのクラスから複数のオブジェクトを作れ、それぞれ別のデータを持つ

演習

// TODO: Cat クラス(Name フィールドと Meow メソッド)を定義し、
//       名前を "ミケ" にして Meow() で "ミケ: ニャー" と出力してください
___
  • 期待される出力: ミケ: ニャー
ヒント1を見る

サンプルのDogをまね、Console.WriteLine($"{Name}: ニャー");

ヒント2を見る

var c = new Cat(); c.Name = "ミケ"; c.Meow(); class Cat { public string Name = ""; public void Meow() { Console.WriteLine($"{Name}: ニャー"); } }

まとめ

  • クラスは「データ+処理」をまとめた設計図
  • newでオブジェクト(実体)を作る
  • 1つのクラスから複数の独立したオブジェクトを作れる

次回: データを安全に持つ「フィールドとプロパティ」です。

実際に動かしてみよう

本文のサンプルや演習のコードは、コードブロック右上の「コピー」ボタンでコピーして、下のエディタに貼り付ければそのまま実行できます。

C# — ブラウザ内で実行

ブラウザ内でC#を動かす環境を読み込みます(初回のみ数秒)。
スクロールして表示された時点でも自動で読み込まれます。