C#とオブジェクト指向 -C#における重要性-

ホームC#プログラミング応用講義 > C#における重要性

目次

C#とオブジェクト指向

オブジェクト指向という言葉をよく聞き、そしてまた私はよく発します。いいも悪いも C# 言語を学ぶ上でオブジェクト指向という言葉から逃げていてはけません。
では C# をやっている人のすべてが、オブジェクト指向プログラミング言語をやっている人のすべてがオブジェクト指向を理解しているかどうかは甚だ疑問です。

私はあえて入門講座では「『日曜プログラマ』として最低限の知識だけ」と明記してあるだけあって、申し訳程度しか説明していません。
しかし、この応用講義はオブジェクト指向を理解するためにあるといっても過言ではないのです。

実際のところ私自身も理解していなかったのかもしれません。しかしこの講義を書くにあたって1から勉強しなおしました。ようやくオブジェクト指向について 論理を組み立てることができるようになったのでしょう。

私が思うに、C# で躓く点は主に2つです。1つは「値型と参照型」の項目、もう1つは「オブジェクト指向の理解」です。
値型と参照型については、参照型の理解は難しいものの、じっくり考えればその理解はたやすいのです。

しかし、オブジェクト指向は違います。C# でプログラミングをすれば多かれ少なかれ常にオブジェクト指向という言葉を意識せざるを得ません。
しかもその理解すべき対象は1つではなく広範囲にわたっているのです。さらにさらに理解するだけでなく実際に利用しなければならないという点が困難にさせ てくれます。

逆に考えると、オブジェクト指向がわかれば C# プログラミングはたやすいと いうことです。それが理解できてこそ真の .NET プログラマであるといえます。

この講義では、オブジェクト指向というひとつの概念を説明するとともに、実際に活用できるよう積極的に C# と関連付けて解説を進めていきます。
多くのオブジェクト指向理解書はひたすら説明し、「どうだ。わかるだろ?」というプロの意識から書かれていますので、私のような日曜プログ ラマには英語を読むより難しくなってしまい、まあいいやと後回しにし、結局学ばないとなってしまうのだと思います。

先ほども述べたように、オブジェクト指向がわかれば C# は驚くほどわかってきます。「ほ~」とうなづく場面が次々出てきますし、難しいと感じずに便利だと感じるでしょう。
それほど C# はオブジェクト指向を取り入れているのです。現存するプログラミング言語の中で最もオブジェクト指向の完成度が高いと言ってもいいでしょう。

何はともあれ、この講義ではこれからずっとほぼ C# における深い理解をしていきます。

オブジェクト指向

上の項目ではオブジェクト指向という言葉を連発しながら一切説明していません。何はともあれオブジェクト指向あって こその C# ということを感じてもらいたかったからです。
この項目から、早速理解していきましょう。

オブジェクトの集まり

まず上の図をよく見てください。オブジェクト指向というものを最も簡単に表してみました。

1つのプログラムは「オブジェクト」と呼ばれる、上の図では丸い物体の集合で構成されます。
その丸にもいろいろあります。大きい丸もあれば小さい丸もあるように、たっぷり詰まったオブジェクトもあれば、あまり詰まってないオブジェクトもありま す。

しかし、黄緑の部分は丸いという点で共通しているように、オブジェクトは角が取れて丸く収 まっているという共通点があります。
オブジェクトに詰め込まれた情報は多かろうが少なかろうが、オブジェクトとして1つの丸を構成することがで きるのです。

この点は非常に重要です。もちろん、オブジェクトは丸いという上の図の黄緑の部分が大事なのではなく、オブジェクトは独立して丸を構成して いるという点が大事です。
1つのプログラムを作る際、独立したオブジェクトをつくり、それらを関連付けて利用することにより、プログラムを作ることができるというこ とを表しています。

そしてまた、1つのプログラムはオブジェクトとして見ることも可能です。プログラムはそれ単体で独立しますから、疑いもなくオブジェクトです。

何のことはない、オブジェクト指向というのはその名の通りオブジェクトを利用してプログラムを作っていこうと いう方法です。
上の図における1つのプログラムが大きくなればなるほど、オブジェクトを構成せずにプログラムを作ろうと思えば難しくなっていきます。

オブジェクト指向を解説する上で、オブジェクト自体の理解から進めるよりも、オブジェクトがプログラムに占める位置を確認するほうが先決です。

ちなみに、オブジェクトというのは「SVOC」とかの O にあたる目的語という意味があります。オブジェクトは目的を持って、単独で存在 しているということをまず確認してください。

[ ステップアップC# ] [ C#プログラミング応用講義 ]