【C#】初学者向けオブジェクト指向設計手順

初学者にわかりやすく説明するために、以下のコードを用いてゼロから設計する手順をステップバイステップで解説します。

作成したい情報(エクセル)

プログラミング

1. プロジェクトの作成

  • Visual Studioを開き、新しいC# Console Appプロジェクトを作成します。

2. クラスの定義

  • クラスとは、オブジェクト指向プログラミングにおいてデータとその操作を一つにまとめたものです。
  • クラスの名前は「Book」とします。
class Book
{
    // メンバーを定義します
}

プロパティの追加

  • プロパティはクラスのデータの一部です。「Title」と「Author」という2つのプロパティを定義します。
public string Title { get; set; }
public string Author { get; set; }

4. 静的プロパティの追加

  • 静的プロパティはクラスに属し、全てのインスタンスで共有されます。ここでは、ブックのカウントを管理するための「Count」プロパティを追加します。
public static int Count { get; set; }

5. メソッドの追加

  • メソッドはクラスの動作を定義します。「PrintTitle」というメソッドを追加して、ブックのタイトルを表示し、カウントを増やします。
public void PrintTitle()
{
    Console.WriteLine("書籍名: {0}", Title);
    Count++;  
    Console.WriteLine(Count);
}

6. 静的メソッドの追加

  • 静的メソッドはクラスに属し、インスタンスを作成せずに呼び出せます。ここでは、カウントをリセットする「ClearCount」メソッドを追加します。
public static void ClearCount()
{
    Count = 0;
}

7. Mainメソッドの追加

  • Mainメソッドはプログラムのエントリーポイントです。ここでBookオブジェクトを作成し、メソッドを呼び出します。
static void Main(string[] args)
{
    var book1 = new Book { Title = "伊豆の踊子", Author = "川端康成" };
    book1.PrintTitle();
    var book2 = new Book { Title = "走れメロス", Author = "太宰治" };
    book2.PrintTitle();
    var book3 = new Book { Title = "銀河鉄道の夜", Author = "宮沢賢治" };
    book3.PrintTitle();
    Book.ClearCount();
    Console.WriteLine(Book.Count);
}

コード全体

以下は完成したコードです。

using System;

namespace List8_8
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var book1 = new Book { Title = "伊豆の踊子", Author = "川端康成" };
            book1.PrintTitle();
            var book2 = new Book { Title = "走れメロス", Author = "太宰治" };
            book2.PrintTitle();
            var book3 = new Book { Title = "銀河鉄道の夜", Author = "宮沢賢治" };
            book3.PrintTitle();
            Book.ClearCount();
            Console.WriteLine(Book.Count);
        }
    }

    class Book
    {
        public static int Count { get; set; }  
        public static void ClearCount()
        {
            Count = 0;
        }

        public string Title { get; set; }
        public string Author { get; set; }

        public void PrintTitle()
        {
            Console.WriteLine("書籍名: {0}", Title);
            Count++;
            Console.WriteLine(Count);
        }
    }
}

オブジェクト指向プログラミング (OOP) の基礎

オブジェクト指向プログラミング(OOP)は、データとその操作を一つの「オブジェクト」としてまとめる考え方です。以下に、OOPの基本概念を具体的な例とともにわかりやすくまとめます。

1. クラスとオブジェクト

  • クラス: オブジェクトの設計図。例えば、「Book」というクラスは、書籍に関する情報(タイトル、著者)と操作(タイトルの表示)を定義します。
  • オブジェクト: クラスを元に作成された具体的なインスタンス。例えば、「book1」というオブジェクトは、「伊豆の踊子」というタイトルの具体的な書籍を表します。
class Book
{
    public string Title { get; set; }
    public string Author { get; set; }

    public void PrintTitle()
    {
        Console.WriteLine("書籍名: {0}", Title);
    }
}

var book1 = new Book { Title = "伊豆の踊子", Author = "川端康成" };
book1.PrintTitle();  // 出力: 書籍名: 伊豆の踊子

2. プロパティ

  • クラス内で定義されるデータのこと。例えば、TitleAuthorはBookクラスのプロパティです。
public string Title { get; set; }
public string Author { get; set; }

3. メソッド

  • クラス内で定義される操作や振る舞いのこと。例えば、PrintTitleはBookクラスのメソッドです。
public void PrintTitle()
{
    Console.WriteLine("書籍名: {0}", Title);
}

4. 静的プロパティと静的メソッド

  • 静的プロパティ: クラス全体で共有されるプロパティ。例えば、Countは全てのBookオブジェクトで共有されるカウントです。
  • 静的メソッド: クラス全体で使用されるメソッド。例えば、ClearCountはカウントをリセットします。
public static int Count { get; set; }

public static void ClearCount()
{
    Count = 0;
}

5. 例: 静的メソッドと静的プロパティを使ったプログラム

using System;

namespace List8_8
{
    internal class Program
    {
        static void Main(string[] args)
        {
            var book1 = new Book { Title = "伊豆の踊子", Author = "川端康成" };
            book1.PrintTitle();
            var book2 = new Book { Title = "走れメロス", Author = "太宰治" };
            book2.PrintTitle();
            var book3 = new Book { Title = "銀河鉄道の夜", Author = "宮沢賢治" };
            book3.PrintTitle();
            Book.ClearCount();
            Console.WriteLine(Book.Count);
        }
    }

    class Book
    {
        public static int Count { get; set; }  
        public static void ClearCount()
        {
            Count = 0;
        }

        public string Title { get; set; }
        public string Author { get; set; }

        public void PrintTitle()
        {
            Console.WriteLine("書籍名: {0}", Title);
            Count++;
            Console.WriteLine(Count);
        }
    }
}

総括

オブジェクト指向プログラミングの基礎を理解することは、複雑なプログラムをシンプルに設計し、メンテナンスを容易にするために重要です。今回のレクチャーでは、Bookクラスを例に、オブジェクト、プロパティ、メソッド、静的プロパティ、静的メソッドの基本的な使い方を学びました。

  • クラスとオブジェクト: クラスは設計図、オブジェクトはそのインスタンス。
  • プロパティ: クラスのデータ。
  • メソッド: クラスの操作。
  • 静的プロパティとメソッド: クラス全体で共有されるデータと操作。

これらの概念を理解し、実際にコードを書いてみることで、OOPの基本をしっかりと身につけましょう。



C#

Posted by hidepon