C# classの基本を初心者向けに解説|書き方・使い方・オブジェクト指向の理解まで

はじめに

C#を学び始めると、早い段階で登場するのが「class(クラス)」です。C# classは、C#のプログラムを作るうえで非常に重要な仕組みであり、オブジェクト指向プログラミングを理解するための基本でもあります。

しかし、初心者にとっては「classとは何か」「なぜ使うのか」「どう書けばよいのか」がわかりにくい部分でもあります。変数やメソッドはなんとなく理解できても、classになると急に難しく感じる人も少なくありません。

C#では、データや処理をひとまとめにして扱うためにclassを使います。たとえば「人」「車」「商品」「会員」など、現実世界にあるものをプログラム上で表現するときにclassが役立ちます。

この記事では、C# classの基本について、初心者向けにわかりやすく解説します。classの意味、基本的な書き方、使い方、そしてオブジェクト指向との関係まで、順番に理解していきましょう。

1. C#のclassとは?初心者が最初に理解すべき基本

C#のclassとは、データと処理をまとめるための設計図のようなものです。プログラムの中で扱いたいものを定義し、その特徴や動作をまとめて記述できます。

たとえば「人」をプログラムで表したい場合、名前や年齢といった情報が必要になります。また、「自己紹介する」といった動作も考えられます。このような情報と動作をまとめて定義できるのがclassです。

C# classの基本的な書き方は次のようになります。

C#
class Person
{
public string Name;
public int Age;

public void Introduce()
{
Console.WriteLine($"私の名前は{Name}です。年齢は{Age}歳です。");
}
}

この例では、Personというclassを作成しています。NameAgeはフィールドと呼ばれ、データを保存するために使います。Introduceはメソッドと呼ばれ、処理をまとめるために使います。

classを定義しただけでは、まだ実際に使える「もの」は作られていません。classはあくまで設計図です。実際に使うには、classからオブジェクトを作成します。

C#
Person person = new Person();
person.Name = "田中";
person.Age = 25;
person.Introduce();

このコードでは、new Person()によってPersonクラスからオブジェクトを作成しています。作成したオブジェクトに対して、名前や年齢を設定し、Introduceメソッドを呼び出しています。

実行すると、次のような結果になります。

C#
私の名前は田中です。年齢は25歳です。

このように、C# classを使うと、関連するデータと処理をひとつにまとめて管理できます。これにより、プログラムが整理され、読みやすく、修正しやすくなります。

C#では、classの中にフィールド、プロパティ、メソッド、コンストラクターなどを定義できます。初心者がまず理解しておきたいのは、classは「何かを表すためのまとまり」であり、オブジェクトは「classから作られた実体」だということです。

たとえば、Personクラスは「人の設計図」です。そして、new Person()で作られたものが「実際の人を表すオブジェクト」です。同じclassから複数のオブジェクトを作ることもできます。

C#
Person person1 = new Person();
person1.Name = "佐藤";
person1.Age = 30;

Person person2 = new Person();
person2.Name = "鈴木";
person2.Age = 22;

person1.Introduce();
person2.Introduce();

このように、同じPersonクラスを使って、異なる名前や年齢を持つ複数のオブジェクトを作成できます。これがclassを使う大きなメリットです。

また、C# classを理解するうえで重要なのが、オブジェクト指向という考え方です。オブジェクト指向とは、プログラムを「もの」として考え、それぞれのものがデータと処理を持つように設計する考え方です。

たとえば、ショッピングサイトを作る場合を考えてみましょう。商品を表すProductクラス、ユーザーを表すUserクラス、注文を表すOrderクラスなどを作成できます。それぞれのclassに必要な情報や処理をまとめることで、プログラム全体をわかりやすく整理できます。

C#
class Product
{
public string Name;
public int Price;

public void ShowInfo()
{
Console.WriteLine($"{Name}の価格は{Price}円です。");
}
}

このように、商品に関する情報と処理をProductクラスにまとめることで、「商品を扱う部分」が明確になります。プログラムが大きくなっても、どこに何が書かれているのかを把握しやすくなります。

初心者のうちは、classを難しく考えすぎる必要はありません。まずは「関連する変数とメソッドをまとめるもの」と考えると理解しやすくなります。

C# classを使う基本的な流れは、次のようになります。

まず、classを定義します。次に、そのclassからオブジェクトを作成します。そして、オブジェクトのデータを設定したり、メソッドを呼び出したりします。

C#
class Car
{
public string Model;

public void Drive()
{
Console.WriteLine($"{Model}が走ります。");
}
}
C#
Car car = new Car();
car.Model = "プリウス";
car.Drive();

この例では、Carクラスを定義し、carというオブジェクトを作成しています。そして、車種を設定してDriveメソッドを実行しています。

C#のclassでは、アクセス修飾子もよく使われます。代表的なものにpublicprivateがあります。publicはclassの外からアクセスできることを意味し、privateはclassの中からしかアクセスできないことを意味します。

C#
class Student
{
private string name;

public void SetName(string value)
{
name = value;
}

public void ShowName()
{
Console.WriteLine(name);
}
}

このように、データをprivateにして外部から直接変更できないようにし、メソッドを通して操作することができます。これは、データを安全に扱うために重要な考え方です。

C#では、フィールドの代わりにプロパティを使うことも一般的です。プロパティを使うと、データへのアクセスをより安全で柔軟に管理できます。

C#
class Student
{
public string Name { get; set; }
public int Age { get; set; }
}

このように書くことで、NameAgeに値を設定したり取得したりできます。初心者のうちは、public string Name { get; set; }のような書き方は「データを扱うための便利な書き方」と理解しておくとよいでしょう。

C#
Student student = new Student();
student.Name = "山田";
student.Age = 20;

Console.WriteLine(student.Name);
Console.WriteLine(student.Age);

また、classにはコンストラクターを定義できます。コンストラクターとは、オブジェクトを作成するときに自動的に呼び出される特別なメソッドです。初期値を設定したいときによく使います。

C#
class Book
{
public string Title { get; set; }

public Book(string title)
{
Title = title;
}

public void ShowTitle()
{
Console.WriteLine($"タイトルは{Title}です。");
}
}
C#
Book book = new Book("C#入門");
book.ShowTitle();

この例では、new Book("C#入門")と書いたときにコンストラクターが呼び出され、Titleに値が設定されます。これにより、オブジェクト作成時に必要な情報を渡すことができます。

C# classを学ぶときは、「class」「オブジェクト」「フィールド」「プロパティ」「メソッド」「コンストラクター」という言葉がよく出てきます。最初からすべてを完璧に覚える必要はありませんが、それぞれの役割を少しずつ理解していくことが大切です。

classは設計図、オブジェクトは実体、フィールドやプロパティはデータ、メソッドは処理、コンストラクターは初期設定と考えるとイメージしやすくなります。

C#のプログラムでは、多くの場合classを使って処理を組み立てていきます。小さなサンプルコードではclassの必要性がわかりにくいかもしれませんが、プログラムが大きくなるほどclassの便利さが実感できます。

たとえば、すべての処理をひとつの場所に書いてしまうと、コードが長くなり、どこで何をしているのかがわかりにくくなります。一方で、classを使って役割ごとに分けておけば、修正や機能追加がしやすくなります。

C# classは、単に文法として覚えるだけでなく、「プログラムを整理するための道具」として理解することが重要です。初心者のうちは、身近なものをclassに置き換えて考える練習をすると、理解しやすくなります。

たとえば、「犬」を表すならDogクラスを作り、名前や年齢をプロパティとして持たせ、「鳴く」というメソッドを作ることができます。

C#
class Dog
{
public string Name { get; set; }

public void Bark()
{
Console.WriteLine($"{Name}がワンと鳴きました。");
}
}
C#
Dog dog = new Dog();
dog.Name = "ポチ";
dog.Bark();

このように考えると、C# classは現実世界のものをプログラムで表現するための仕組みだと理解できます。

まとめ

C# classは、C#を学ぶうえで欠かせない基本的な仕組みです。classを使うことで、データと処理をひとまとめにでき、プログラムを整理しやすくなります。

classは設計図であり、そこから作られるものがオブジェクトです。classの中には、フィールド、プロパティ、メソッド、コンストラクターなどを定義できます。これらを使うことで、扱いたいものの情報や動作をわかりやすく表現できます。

初心者がC# classを理解するためには、まず「関連するデータと処理をまとめるもの」と考えるのがおすすめです。難しい言葉にとらわれすぎず、身近な例をclassとして表現してみると理解が深まります。

C# classを使いこなせるようになると、オブジェクト指向プログラミングの考え方も自然と身についていきます。最初は簡単なclassを作成し、オブジェクトを生成して、プロパティに値を入れたりメソッドを呼び出したりする練習から始めてみましょう。