導入
関連するデータと処理を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つのクラスから複数の独立したオブジェクトを作れる
次回: データを安全に持つ「フィールドとプロパティ」です。