C#におけるクラスの完全ガイド:定義から継承まで
こんにちは。フレンテです。
前回はC#としてまとめましたが、今回はクラスにフォーカスを当ててまとめたいと思います。
クラスの基本
クラスはオブジェクト指向プログラミングの根幹をなすもので、データと機能を一つの単位に組み合わせます。例えば、「車」というクラスがあった場合、色やモデルといった属性(プロパティ)と、走る、止まるといった機能(メソッド)を持っていると考えることができます。
1. クラス定義の基礎
C#でクラスを定義する際には、class キーワードを使用します。以下に基本的なクラスの定義の例を示します。
public class Car
{
// プロパティ
public string Color { get; set; }
public int Year { get; set; }
// コンストラクタ
public Car(string color, int year)
{
Color = color;
Year = year;
}
// メソッド
public void Start()
{
Console.WriteLine("Car is starting");
}
}
2. コンストラクタ
コンストラクタはクラスがインスタンス化されるときに自動的に呼ばれる特別なメソッドです。これを使用して、オブジェクトの初期状態を設定することができます。コンストラクタはクラス名と同じ名前を持ち、戻り値を持ちません。
3. プロパティ
プロパティはクラスに関連するデータ(状態)を保持するための変数です。C#では、プロパティには通常、ゲッター(値を取得するためのメソッド)とセッター(値を設定するためのメソッド)があります。
4. メソッド
メソッドはクラスが行う操作を定義するためのコードブロックです。メソッドは特定のタスクを実行し、タスクが完了した後に制御を呼び出し元に戻します。
クラスのインスタンス化
クラス自体はただの設計図であり、使用するにはインスタンスを作成する必要があります。これを「インスタンス化」と呼びます。以下のコードはCarクラスのインスタンスを作成しています。
Car myCar = new Car("Red", 2021);
myCar.Start();
ここでは、Carクラスの新しいインスタンスを作成し、そのプロパティに値を設定した後、Startメソッドを呼び出しています。
クラスの継承
クラスは他のクラスから派生することができます。これを「継承」といい、既存のクラスのプロパティやメソッドを再利用し、新しいクラスに追加の機能を付け加えることができます。
public class ElectricCar : Car
{
public int BatteryLevel { get; set; }
public ElectricCar(string color, int year, int batteryLevel)
: base(color, year)
{
BatteryLevel = batteryLevel;
}
public void Charge()
{
Console.WriteLine("Charging the car");
}
この例では、`ElectricCar`クラスが`Car`クラスから派生しており、新しいプロパティとメソッドが追加されています。継承を使うことで、コードの重複を減らし、メンテナンスを容易にします。
まとめ
C#のクラスは強力で柔軟な機能を提供し、オブジェクト指向プログラミングの多くの利点を享受することができます。クラス、コンストラクタ、プロパティ、メソッド、そして継承は、C#プログラミングにおいて理解しておくべき重要な概念です。
この記事が気に入ったらサポートをしてみませんか?