【C#】クラスのサンプル(車とエンジンクラス)

以下は、車とエンジンクラスを使ったサンプルです

using System;

class Engine
{
    private int _power;
    public int Power
    {
        get { return _power; }
        set { _power = value; }
    }

    public void Start()
    {
        Console.WriteLine("Engine started.");
    }

    public void Stop()
    {
        Console.WriteLine("Engine stopped.");
    }
}

class Car
{
    private Engine _engine;
    public Engine Engine
    {
        get { return _engine; }
        set { _engine = value; }
    }

    private string _name;
    public string Name
    {
        get { return _name; }
        set { _name = value; }
    }

    public void Start()
    {
        Console.WriteLine(Name + " started.");
        _engine.Start();
    }

    public void Stop()
    {
        Console.WriteLine(Name + " stopped.");
        _engine.Stop();
    }
}

class Program
{
    static void Main()
    {
        Car car = new Car();
        car.Name = "My car";
        car.Engine = new Engine();
        car.Engine.Power = 100;
        car.Start();
        car.Stop();
    }
}

上記の例では、EngineクラスとCarクラスを定義しています。Engineクラスは、エンジンの機能を表し、PowerプロパティやStartメソッド、Stopメソッドを持っています。Carクラスは、車の機能を表し、EngineプロパティやNameプロパティ、Startメソッド、Stopメソッドを持っています。

Mainメソッドでは、Carクラスのインスタンスを生成し、それに名前を設定し、エンジンを設定し、車を起動し、停止しています。

このように、クラス間の結合度を高めることで、より複雑なプログラムを構築することができます。この例では、CarクラスはEngineクラスを内部に持ち、Engineクラスの機能を利用して、車を起動したり停止したりすることができます。

また、CarクラスとEngineクラスは独立しているので、Engineクラスを別のクラスに置き換えることで、車を起動したり停止したりするロジックを変更することも簡単にできます。

このように、クラスの設計を工夫することで、変更に対して柔軟に対応することができ、より大規模なプログラムを構築することができます

また、CarクラスとEngineクラスは独立しているので、Engineクラスを別のクラスに置き換えることで、車を起動したり停止したりするロジックを変更することも簡単にできます。

このように、クラスの設計を工夫することで、変更に対して柔軟に対応することができ、より大規模なプログラムを構築することができます

C#,設計

Posted by hidepon