クラスとは
クラスは、オブジェクト指向プログラミング(OOP)の基本構成要素です。クラスは、データ(フィールド)とそのデータに対する操作(メソッド)をまとめたテンプレートです。オブジェクトは、そのクラスから生成された具体的なインスタンスです。
クラスの宣言
クラスを宣言すると以下の様になります。
public class Person
{
// フィールド(データ)
public string name;
public int age;
// メソッド(操作)
public void Introduce()
{
Console.WriteLine($"Hello, my name is {name} and I am {age} years old.");
}
}
オブジェクトの作成
クラスを宣言したら、そのクラスのインスタンス(オブジェクト)を作成できます。これをインスタンス化と呼びます。次の例では、Person
クラスのオブジェクトを作成しています:
// Personクラスのオブジェクトを作成
Person person = new Person();
// フィールドに値を設定
person.Name = "John";
person.Age = 30;
// メソッドを呼び出し
person.Introduce();
このコードは、Person
クラスのオブジェクトperson
を作成し、Name
フィールドに”John”を、Age
フィールドに30を設定します。その後、Introduce
メソッドを呼び出して、挨拶を表示します。
コンストラクタとは
クラスにはコンストラクタを定義できます。コンストラクタは、オブジェクトが作成されるときに呼び出され、初期化を行います。次の例では、Person
クラスにコンストラクタを追加しています:
public class Person
{
// フィールド(データ)
public string name;
public int age;
//コンストラクタ
public Person(string name,int age){
this.name = name;
this.age = age;
}
// メソッド(操作)
public void Introduce()
{
Console.WriteLine($"Hello, my name is {name} and I am {age} years old.");
}
}
コンストラクタを使用したPersonクラスの実装は以下の様になります。
// コンストラクターを使ってPersonクラスのオブジェクトを作成
Person person = new Person("John", 30);
// メソッドを呼び出し
person.Introduce();
このように、コンストラクターを使うと、オブジェクトの作成時にフィールドを初期化できます。
おまじないとしたpublic static void Main()のキーワードの意味
C#のプログラムを書くのに1つ必要だったpublic static void Main()の説明を。
public(private)
どのクラスからも参照可能という意味です。自分のクラスの中でしか参照できない変数はprivateで表現します。
static
クラスをインスタンスしなくてもフィールドやメソッドを呼び出すことが出来るという意味です。
void
そのメソッドは戻り値を返さないという意味です。戻り値を返す場合はその戻り値の型を宣言します。
string str = Console.ReadLine();//ReadLineはstring型の戻り値を返します。
Console.WriteLine(str);//WirteLineは画面に表示すると言う意味で戻り値はありません。
public static void Main()
C#がプログラムを動かすのに始めに探すメソッドです。これ自体戻り値を返しませんのでvoidをつけて宣言します。また、始めに見つけるものなどで、まだオブジェクトが存在しません。そのため必ずstatic宣言をつけないといけません。publicにしてあるのはどのクラスからも呼び出せることが出来るようにしている必要があるためです。
まとめ
今まで何気なく使っていたclass句の意味はデータとメソッドを一体化して扱うものです。
実際に使用する時にはコンストラクタと呼ばれるメソッドを用います。
Main()メソッドはプログラムを動かすのに始めに読まれなければならないので、必ずstaticメソッドとする必要があります。
これ以上クラスに踏み込むことはしませんが、追々順を追って説明していきます。
コメント