http://blogs.wankuma.com/rti/archive/2007/07/26/87105.aspx
R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2
http://blogs.wankuma.com/rti/archive/2007/07/25/86988.aspx
R流、一瞬でわかる.NETオブジェクト指向プログラミング入門1
の続きです。
どこからフォローすれば良いのかわからないので、先頭から順に行ってます。
今回は、
クラスはメンバで構成される
というテーマです。
下記のように、ボタンコントロールのプロパティウィンドウを見ると、ボタンのプロパティにどういったものがあるのかを知ることができます。
このプロパティというのは、ボタンコントロールクラスのメンバです。
つまり、ボタンコントロールクラスには、Nameプロパティ・Textプロパティ・Vislbleプロパティ・ForeColorプロパティというメンバなどがあります。
これらの値をプロパティウィンドウや、コード上で変更することによって、ボタンの見た目が変わったり、挙動が変わったりする訳です。
ボタンコントロールの場合、
何て表示するのか?、
何色で表示するのか?、
背景は何色にするのか?、
イメージはどうするのか?、
など様々な指定ができて、更に、
最前面に移動する、
フォーカスをあてる、
クリックイベントを発生させる、
などの処理ができると良いですね。
それら一つ一つをメンバとしてボタンコントロールクラスが持っています。
さて、以下のリンク先の僕の自己紹介ページを見て下さい。
http://blogs.wankuma.com/rti/archive/2007/07/25/86988.aspx
これは、C# で書いたR・田中一郎という名前のクラスです。
このクラスのメンバには、会員番号プロパティ・名前プロパティ・年齢プロパティ・職業プロパティ・印象プロパティ・自己紹介メソッドがあります。
プロパティメンバは、データメンバとも呼ばれます。つまり、そのクラスに収めるデータということでしょうか。
メソッドは、メンバ関数とも呼ばれます。そのクラスに関連する関数をメソッドといいます。
R・田中一郎クラスには、自己紹介というメソッドしかありません。
従って、R・田中一郎という物体は、自己紹介しかできないという意味になります。
このクラスによって生成されたR・田中一郎オブジェクトの自己紹介メソッドを実行することによって、R・田中一郎オブジェクトは、コンソール画面を通じて皆さんに自己紹介をします。
さて、ここで心配になることがあります。
例えば、100個のボタンが配置されたフォームを作ったとしましょう。
この時、1つのクラスから100個のオブジェクトが生成されることになります。
では、クラスに記述されるメソッドなど手続きに関わる部分も100件分のメモリが使用されてしまうのでしょうか?
まあ、そんな非効率なことはしないだろうとは思ったのですが、僕が初めてオブジェクト指向プログラミングを知った時、この点について少し心配になりました。
しかし、この点については、やはり心配はありませんでした。
オブジェクト単位で覚えておくべきデータの部分と、処理に係る部分は別です。
従って、大量にオブジェクトが作られる恐れのあるようなクラスであっても、何の心配もせず、長くて大量のメソッドを書くことができます。
(ある程度内容を理解すると、内部的にどのようにメモリが確保されるのかについても自然とわかるようになるでしょうけれど)
ところで、我々がわからない時に、いろいろ教えてくれるMSDNライブラリですが、ここを見ると各クラスに実装されているメンバとその説明の一覧表が、殆どのクラスに載っていますので、これらをじっくり眺めてみると、そのクラスが何をしてくれるものかがわかります。