C#のクラスとは?基本の定義とオブジェクト生成をやさしく解説
生徒
「C#のクラスってよく聞くけど、何をするものなんですか?」
先生
「C#のクラスは、オブジェクト(モノ)を作るための設計図のようなものです。」
生徒
「設計図ってどういう意味ですか?もっと具体的に知りたいです!」
先生
「それでは、クラスの定義や使い方、そしてオブジェクトの生成について、一緒に見ていきましょう。」
1. クラスとは何か?初心者にもわかりやすく解説
C#のクラスは、現実世界の「モノ」や「概念」をプログラムの中で表現するための仕組みです。例えば、「車(くるま)」というモノを考えてみましょう。
車には、「色」「速さ」「メーカー」などの情報(=プロパティ)と、「走る」「止まる」といった動き(=メソッド)があります。
クラスでは、このような情報や動きをまとめて定義することができます。そして、その設計図から具体的な「車」を作ることをオブジェクトの生成と呼びます。
2. C#でクラスを定義する基本の書き方
それでは、C#で実際にクラスを定義してみましょう。以下は「Car」という名前のクラスです。このクラスは、車の色とスピードを表すプロパティと、「走る」というメソッドを持っています。
class Car
{
public string Color;
public int Speed;
public void Run()
{
Console.WriteLine("車が走っています!");
}
}
解説:
class Car:クラス名は「Car」です。車を表す設計図です。public string Color:車の色(例:「赤」など)を文字列で保存します。public int Speed:車のスピードを数字で管理します。public void Run():メソッド(動き)です。「走る」という処理を実行します。
3. クラスからオブジェクトを作って使ってみよう
クラスだけではプログラムは動きません。設計図から実際の「車」を作ってはじめて使えるようになります。これをインスタンス化(オブジェクトの生成)と呼びます。
以下のコードでは、「Car」クラスから「myCar」という車のオブジェクトを作っています。
class Program
{
static void Main()
{
Car myCar = new Car();
myCar.Color = "赤";
myCar.Speed = 100;
Console.WriteLine("車の色は " + myCar.Color + " です。");
Console.WriteLine("スピードは " + myCar.Speed + "km/h です。");
myCar.Run();
}
}
出力結果:
車の色は 赤 です。
スピードは 100km/h です。
車が走っています!
このように、クラスからオブジェクトを作り、プロパティに値を入れて、メソッドを使うことでプログラムに具体的な動作を加えることができます。
4. オブジェクトとは?日常の例で理解しよう
初心者の方にとって、「オブジェクト」という言葉は少し難しいかもしれません。日常生活で例えると、クラスが「ケーキのレシピ」なら、オブジェクトはそのレシピで作った「本物のケーキ」です。
「レシピ」だけでは食べられませんが、実際に材料を使ってケーキを作れば食べられるようになります。それと同じで、クラス(レシピ)からオブジェクト(実物)を作ることで、プログラムを動かすことができるようになるのです。
5. 複数のオブジェクトを作ることもできる
クラスは何度でも使いまわせる設計図です。1つのクラスから、たくさんのオブジェクトを作ることができます。
Car redCar = new Car();
redCar.Color = "赤";
redCar.Speed = 80;
Car blueCar = new Car();
blueCar.Color = "青";
blueCar.Speed = 120;
Console.WriteLine("赤い車のスピード: " + redCar.Speed);
Console.WriteLine("青い車のスピード: " + blueCar.Speed);
出力結果:
赤い車のスピード: 80
青い車のスピード: 120
このように、同じ「Car」クラスを使っても、オブジェクトごとに値を変えることができます。
6. クラスとオブジェクトのキーワード解説
ここまでに出てきたキーワードを簡単におさらいしましょう。
- クラス(class):オブジェクトの設計図。データ(プロパティ)と動作(メソッド)をまとめたもの。
- オブジェクト:クラスから作られた実体。実際に使える「モノ」。
- プロパティ:オブジェクトが持つ情報。文字列や数値など。
- メソッド:オブジェクトが持つ動作や処理。
- new:クラスから新しいオブジェクトを作るためのキーワード。