C# - クラス:入門ガイド

こんにちは、将来のプログラマーたち!今日は、C#のクラスの世界に興味深く飛び込みます。心配しないでください。プログラミングの経験がなくても、私はあなたの親切なガイドとして、ステップバイステップですべてを説明します。それでは、始めましょう!

C# - Classes

クラスとは?

まず、クラスとは何かを理解しましょう。クラスは、オブジェクトを作成するための青写真と考えてください。クッキーカッターのように、作るクッキーの形と特徴を定義します。プログラミングでは、クラスはそのクラスのオブジェクトが持つプロパティと振る舞いを定義します。

クラスの定義

まず、シンプルなクラスを作成しましょう。では、「Dog」クラスを作成します。なぜなら、誰もが犬を愛していますよね?

public class Dog
{
// クラスメンバをここに
}

これはクラスの基本構造です。publicキーワードは、このクラスがプログラムの他の部分からアクセス可能であることを意味します。カッコの中で、クラスメンバを定義します。

プロパティの追加

プロパティは、私たちの犬の特性です。いくつか追加しましょう:

public class Dog
{
public string Name;
public int Age;
public string Breed;
}

今、私たちの「Dog」クラスには名前、年齢、品種があります。これらはフィールドまたはプロパティと呼ばれます。

メンバ関数とカプセル化

メンバ関数(またはメソッド)は、私たちの犬が行うアクションです。では、犬が吠えるメソッドを追加してみましょう:

public class Dog
{
public string Name;
public int Age;
public string Breed;

public void Bark()
{
Console.WriteLine("ワンワン!ワンワン!");
}
}

「Bark」メソッドは、コンソールに「ワンワン!ワンワン!」と表示するシンプルなアクションです。

カプセル化

カプセル化は、犬の特性を守るバブルのように考えられます。クラスメンバへのアクセスを制御する方法です。では、私たちのクラスをカプセル化するために修正しましょう:

public class Dog
{
private string name;
private int age;
public string Breed { get; set; }

public string Name
{
get { return name; }
set { name = value; }
}

public int Age
{
get { return age; }
set
{
if (value > 0)
age = value;
}
}

public void Bark()
{
Console.WriteLine("ワンワン!ワンワン!");
}
}

今、nameageはプライベートで、パブリックプロパティを通じてアクセスされます。これにより、年齢が常に正であるようにロジックを追加できます。

C#のコンストラクタ

コンストラクタは、クラスの新しいインスタンスを作成するときに呼ばれる特別なメソッドです。新しい犬を手に入れたときに犬を設定するようなものです。では、私たちの「Dog」クラスにコンストラクタを追加しましょう:

public class Dog
{
// ... 前のコード ...

public Dog(string name, int age, string breed)
{
Name = name;
Age = age;
Breed = breed;
}
}

今、新しい犬を作成する方法はこのようになります:

Dog myDog = new Dog("バディ", 3, "ラブラドール");

C#のデストラクタ

デストラクタは、オブジェクトがもはや必要でなくなったときにリソースをクリーンアップするメソッドです。C#では、ゴミ収集がメモリ管理をhandlesするため、めったに使用されませんが、完全性を期して、以下にその定義を示します:

public class Dog
{
// ... 前のコード ...

~Dog()
{
Console.WriteLine("さようなら、" + Name + "!");
}
}

このデストラクタは、ゴミ収集がオブジェクトを破壊するときに呼ばれます。

C#クラスの静的メンバ

静的メンバは、特定のインスタンスではなく、クラスそのものに属します。すべてのインスタンスで共有されます。では、静的メンバを追加して、作成された犬の数を追跡しましょう:

public class Dog
{
// ... 前のコード ...

public static int DogCount = 0;

public Dog(string name, int age, string breed)
{
Name = name;
Age = age;
Breed = breed;
DogCount++;
}

public static void ReportDogCount()
{
Console.WriteLine("総犬数: " + DogCount);
}
}

今、新しい「Dog」を作成するたびに「DogCount」が増えます。いつでも「Dog.ReportDogCount()」を呼んで、作成された犬の数を確認できます。

すべてを合わせる

では、私たちの「Dog」クラスをプログラムで使用してみましょう:

class Program
{
static void Main(string[] args)
{
Dog dog1 = new Dog("バディ", 3, "ラブラドール");
Dog dog2 = new Dog("マックス", 5, "ドイツシェパード");

Console.WriteLine(dog1.Name + " は " + dog1.Breed + " です");
dog1.Bark();

Console.WriteLine(dog2.Name + " は " + dog2.Age + "歳です");
dog2.Bark();

Dog.ReportDogCount();
}
}

このプログラムは、2匹の犬を作成し、その情報を表示し、吠えさせ、作成された犬の総数を報告します。

結論

おめでとうございます!C#クラスの基本を学びました。クラスの定義、プロパティとメソッドの追加、コンストラクタとデストラクタの使用、そして静的メンバについて触れました。忘れずに、練習は完璧を生みますので、自分でクラスを作成し、さまざまなプロパティとメソッドを試してみてください。

以下に、私たちが議論した主なメソッドの表を示します:

メソッド 説明
コンストラクタ クラスの新しいインスタンスを初期化します
デストラクタ オブジェクトが破壊されるときにリソースをクリーンアップします
Bark() 犬が吠えます
ReportDogCount() 作成された犬の総数を報告します

codingを続けて、すぐに複雑なプログラムを作成できるようになります。楽しく学びましょう!

Credits: Image by storyset