【ここで混乱するのは普通です】Studentクラスで理解するオブジェクト指向
C#を学んでいると、多くの人が一度止まる場所があります。
それが
- クラス
- インスタンス(オブジェクト)
- 参照(同じ実体を指す)
です。
安心してください。
ここで混乱するのは正常です。
今日は「山田さん」「山本さん」を例に、明示型(型をはっきり書く書き方)も入れて整理します。
1. クラスは「設計図」
クラスは、
「生徒」という概念の設計図
です。まだ誰も存在していません。
class Student
{
public string Name;
public int Age;
public int SkillLevel;
public void Introduce()
{
Console.WriteLine($"私は{Name}です。{Age}歳です。");
}
public void Study()
{
SkillLevel++;
Console.WriteLine($"{Name}は勉強してレベルが{SkillLevel}になった!");
}
}
この時点では「Studentという設計図」を作っただけです。
2. 明示型でインスタンスを作る(おすすめ)
ここからが重要です。
new を書いた瞬間に、設計図から「実体」が生まれます。
まずは、型が見えるように 明示型で書きます。
Student student1 = new Student();
student1.Name = "山田さん";
student1.Age = 25;
student1.SkillLevel = 1;
student1.Introduce();
student1.Study();
この1行が特に重要です。
Student student1 = new Student();
ここはこう読んでください。
- Student :型(クラス)
- student1 :変数(実体を入れておく箱の名前)
3. もう一人作る(独立していることを確認)
Student student2 = new Student();
student2.Name = "山本さん";
student2.Age = 30;
student2.SkillLevel = 3;
student2.Study();
ここで考えてみましょう。
student1 が勉強したら student2 のレベルも上がりますか?
答えは 上がりません。
なぜなら、別々に new した 別の実体(インスタンス)だからです。
4. 図で整理する(最重要)
Student(設計図)
↓ new
student1(山田さんの実体)
Student(設計図)
↓ new
student2(山本さんの実体)
- 設計図は1つ(Student)
- 実体は何個でも作れる(student1, student2…)
5. var 版(型推論)も見ておく
理解が進んだら、同じことを var でも書けます。
var student3 = new Student();
student3.Name = "山田さん";
var は
右側(new Student())から型を推論している
だけです。
つまり、この2つは同じ意味です。
Student student1 = new Student();
var student1 = new Student();
6. 今はどちらで書くべき?
結論:
- 混乱しやすい今は、明示型が安全
- 慣れてきたら var を使えばOK
なぜ今は明示型が良いのか?
Student student1 と書くと、
「Student型の student1」
という構造が目で見て分かるからです。
7. よくある混乱ポイント(ここを潰す)
❌ クラス=山田さん ではない
正しくはこうです。
- クラス(Student)=「生徒という概念」
- インスタンス(student1)=「山田さんという実体」
8. 今日覚えるのは4つだけ
- クラスは設計図
- new で実体(インスタンス)ができる
- インスタンスは独立している
- var は型を省略しているだけ(意味は同じ)
まとめ
オブジェクト指向は、最初は少し抽象的で難しく感じます。
でも、ここを越えるとC#の世界が一気に広がります。
焦らず、まずは
- 明示型で書いて型を目で見る
- new のたびに実体が増える
この2点をしっかり掴んでいきましょう。



ディスカッション
コメント一覧
まだ、コメントがありません