C#をつつく11-クラス。サブルーチンの進化
楽しいな♪楽しいな♪オブジェクト指向にゃースパゲティも何にも無い。
※一部表現を誇張しております。
さてオブジェクト指向シリーズ第一弾はクラスだピヨ。 論よりプログラミング!まずは不味いコードを見ておくんなまし。
using System;
public class Bird
{
public string Name;
public int Age;
public void Talk( ) {
Console.WriteLine( "ワタシハ{0}。年は{1}だよ。", this.Name, this.Age);
}
}
class Program
{
static void Main(string[] args) {
Bird b = new Bird();
b.Name = "インドリ";
b.Age = 29;
b.Talk();
}
}
このコードどこかで見たこと無いかな?そう、前回の構造体の記事のサンプルコードの structキーワードをclassに変えただけなんだ。 読者は「なーんだ」とがっかりするだろうけど、この一つのキーワードが大きな違いを生むピヨ。 構造体は構造化プログラミングの概念で誕生したもので、 クラスはオブジェクト指向プログラミングの概念から誕生したものだから、 構造体にはオブジェクト指向の機能の一部がないけども、 クラスの方は全て兼ねそろえているんだよ。だからといって常にクラスの方がいいわけでは無いから注意してね。 具体的なオブジェクト指向プログラムの機能は個別につつくから今回はこれで終わり。