クラス
C#でオブジェクト指向プログラミングする上での基礎。
namespace Material
{
class Material
{
//プロパティ ①
public int Code { get; private set; }
public string Name { get; private set; }
public int Mass { get; private set; }
//コンストラクタ ②
public Material(int code, string name, int mass)
{
this.Code = code;
this.Name = name;
this.Mass = mass;
}
//メソッド ③
public int GetMass()
{
return Mass * 2;
}
}
}
①プロパティ
- setアクセサ
- クラスの外部からの値の変更の処理。
例では、private(非公開)のため、
コンストラクタ以外でプロパティの値が
設定できないようになっています。
- getアクセサ
- クラスの外部からの値の取得の処理。
②コンストラクタ
クラス名と同じ名前の特殊なメソッド。
インスタンスを初期化するためのメソッドとなります。
③メソッド
処理の塊。
オブジェクトの利用
namespace Material
{
public class Test
{
static void Main(string[] args)
{
//インスタンスの作成 ①
Material materialA = new Material(1,"物質A",100);
//プロパティの利用 ②
int mass = materialA.Mass;
//メソッドの利用 ③
int massDouble = materialA.GetMass();
Console.WriteLine(mass);
Console.WriteLine(massDouble);
}
}
}
①インスタンスの作成
newをすることでメモリにmaterialAのオブジェクトが作成されます。
この時、Materialクラスのコンストラクタが呼び出され、引数の値がコンストラクタに渡されます。
②プロパティの利用
Materialクラスに定義されているMassプロパティの値を取得します。
③メソッドの利用
Materialクラスに定義されているGetMassメソッドで計算された値が返ってきます。
※サンプルコードでの出力結果は以下となります。
Console.WriteLine(mass);の結果が100
Console.WriteLine(massDouble);の結果が200
継承
継承とは
すでに定義されているクラスをもとに、
その性質を受け継ぎ、拡張や変更を加えて
新たなクラスを作成(派生する。ともいう)
public class Person
{
public string FirstName { get; set; }
public string LastName { get; set; }
public int Age { get; set; }
public string GetProfile()
{
return "氏名:" + FirstName + LastName + Environment.NewLine + "年齢:" + Age;
}
}
上記のPersonクラスを継承し、
社員番号と所属部署を加えた
Employeeクラス(社員クラス)を定義します。
//①
public class Employee : Person
{
public int Id { get; set; }
public string DivisionName { get; set; }
}
①クラス名にコロン(:)を付け、その後に継承元のクラスを指定します。
- 継承元
- スーパークラスまたは「基底クラス」
- 継承して定義したクラス
- サブクラスまたは「派生クラス」
class Program
{
static void Main(string[] args)
{
Employee employee = new Employee
{
Id = 100,
DivisionName = "開発部",
FirstName = "テスト",
LastName = "太郎",
Age = 34,
};
Console.WriteLine("部署:{0} ID:{1}", employee.DivisionName, employee.Id
+ "のプロフィール" + Environment.NewLine + employee.GetProfile());
}
}
継承を使えばEmployeeクラスを1から作る必要がなくなります。
継承は、一般的に「is a関係」が成り立つときに使用されます。
(社員は人である、三角形は図形である・・・等)
参考文献
この記事は以下の書籍を参考にして執筆しました。
実戦で役立つ
C#プログラミングのイディオム/定石&パターン