R.Tanaka.Ichiro's Blog

主にC# な話題です

目次

Blog 利用状況

ニュース

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2

http://blogs.wankuma.com/rti/archive/2007/07/25/86988.aspx
R流、一瞬でわかる.NETオブジェクト指向プログラミング入門1

の続きです。

どこからフォローすれば良いのかわからないので、先頭から順に行ってます。

では実際にオブジェクト指向プログラミングを、

てっとり早く理解

してもらいましょう。

 

 


このスライドの画面ですが、ダイアログボックスをデザイナで作っている画面ですね。皆さんお馴染みでしょう。
このツールボックスにあるコントロールを選択して、フォームにペタペタと貼り付ければ、スライドのような画面はすぐに作れてしまいます。
実際、この画面は2分足らずで作りました。カップラーメンを作るより速くできます。便利ですね。

この画面の右側、ツールボックス上のボタンコントロールですが、これが「クラス」です。
正確には、ボタンコントロールクラスです。

で、このフォーム上にいるコントロールが「オブジェクト」です。
オブジェクトとは、物体のことを指すらしいです。
つまり、「OKボタンオブジェクト・キャンセルボタンオブジェクト・参照ボタンオブジェクト」という物体です。

クラスは設計図だと思って下さい。オブジェクトは、設計図を見ながら実際にできたもの、というように思って下さい。

ここで勘違いする人がいると大変なので、お断りしておきますが、オブジェクト指向とはデザイナのことではありません。
あくまでも、クラスから、オブジェクトを作れるという点についてを説明するためにデザイナを利用しているだけです。
これはたまたまデザイナなので、目で見てわかりますが、実際にはソースコード上でクラスを書いたり、オブジェクトを生成したりします。
実際に、このデザイナで作った、このフォームの画面ですが、これは内部的にきちんとコードが生成されています。
C# であれば、C# のソースコードがきちんと自動生成されますし、VBならVBのソースコードが自動的に生成されていますので、興味がある方は、そのソースコードを読んでみるととても勉強になります。

まあ、ここでは、ひとつのボタンコントロールクラスから、OK・キャンセル・参照の3つのオブジェクト、つまり物体を作ったということがわかればOKです。

ちなみに、フォームも同様でフォームクラスというものがあります。
画面にあるフォームは「ファイル名の入力」というオブジェクトです。
大体、ひとつのソフトで複数のフォームを使いますが、それらのフォームは、フォームクラスから作られたオブジェクトということになります。

このように、クラスがひとつあれば、たくさんのオブジェクトが簡単に作れます。

ボタンコントロールクラスは、単なるコードの塊です。
しかし、誰もがボタンコントロールと聞くと、このスライドのようにボタンをイメージします。
コントロールだから視覚的にわかりやすいという理由もあるのですが、各クラスの目的によって、単なるコードの塊が物体として具象化されることで、頭の中でイメージしやすくなるというのは、何もコントロールだけに限ったことではありません。
これは、今までのように単に手続きを書くだけのプログラミングでは考えられなかった素晴らしいことだと僕は思います。

プログラマーは、物作りを楽しみたいのです。
そして、折角物作りを楽しむのなら、上から順に処理の流れを書き綴ってソフトウェアを作るという物作りよりも、処理の単位ごとに物体として具象化しやすいオブジェクト指向による物作りの方が楽しいと僕は思います。

ちなみに、このフォームのデザイナですが、これは旧VB(VB6以前)でもありました。
つまり、オブジェクト指向が苦手だと言っている、旧VBユーザーの方であってもデザイナは使っている筈です。

そういう意味では、オブジェクト指向が苦手な人も、オブジェクト指向にたくさん触れてきていますし、オブジェクト指向の恩恵もたくさん受けているのです。
ですから、オブジェクト指向の基本的な部分は、既に何と無くわかっているのだと思います。

投稿日時 : 2007年7月26日 14:26

Feedback

# re: R流、一瞬でわかる.NETオブジェクト指向入門2 2007/07/26 14:42 ghost_shell

>では実際にオブジェクト指向を、
>  てっとり早く理解
危険なにおいがぷんぷんと・・・ (汗)

10個目に登場する「オブジェクト試行」はわざと??

# re: R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2 2007/07/26 14:54 R・田中一郎

純粋に間違えたんです。
ついでに、もろもろ修正してみました。

# re: R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2 2007/07/26 15:09 片桐

ふだんご飯を食べている人が、そのお米ができるのに88の手間がかかってるか、とか
鼻を噛んだ時に使うティッシュが実は輸入パルプが精製工場で工程を経てから手にしてるんだ、とか
日常の簡単なことが、実はとってもすごいこと、的なカンジだと思うのですです。

VB3をはじめて使ったとき、どうして画面ができてて、どうしてボタンを押したら、イベントドリブンなんていう処理ロジックを動かす事ができていたのか。知るまでには随分かかったから……
目の前にあるものが「当たり前」なのじゃなくて、実は「これだけのことがあって目の前にあるんだ」という事が伝われば、というか、伝わってるといいなぁ……

実際、おぶじぇくとしこお、って極論CUIじゃなければ誰しもが触ってるはずですものね。

とちょっと思ったりしたです。

# re: R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2 2007/07/26 16:01 シャノン

> 日常の簡単なことが、実はとってもすごいこと、的なカンジだと思うのですです。

(Cでもオブジェクト指向はできるわけですが、それは置いといて…)
「Cランタイムライブラリって、使うのは簡単だけど中身は実はすごいんだ」もオブジェクト指向?

# re: R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2 2007/07/26 16:18 ぽぴ王子

>> シャノンさん

その引用だと
> お米ができるのに88の手間がかかってる
とか
> ティッシュが実は輸入パルプが精製工場で工程を経てから手にしてる
までオブジェクト指向ってことになっちゃいますよ(笑)

オブジェクト指向とかムズカシく言っちゃってるけど、本当はおまいらいつも使ってるものなんだから全然ムズカシくなんかねーんだぜ?って話かと。

もしくは
RSSやトップの記事一覧で見ると画像がすごいことになってるんだぜ?って話かと(違

# re: R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2 2007/07/26 16:42 シャノン

どうも誤読していたらしい。

…このシリーズにはあまりコメントしないようにしよう。ボロが出る。

# re: R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2 2007/07/26 17:05 とりこびと

>…このシリーズにはあまりコメントしないようにしよう。ボロが出る。

同じくw

# re: R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2 2007/07/27 11:04 R・田中一郎

片桐 さん

>実際、おぶじぇくとしこお、って極論CUIじゃなければ誰しもが触ってるはずですものね。

それが伝わるだけで OK な訳です。

中身をかっちり理解するのは、もっとずっと先のことで良いと思います。
できれば「気づいたら理解できるようになっていた」というのが理想的ですね。

------------------------------------------------------
シャノン さん

現時点では、中身はあまり考えなくて良いんじゃないかと思っています。

------------------------------------------------------
ぽぴ王子 さん

>オブジェクト指向とかムズカシく言っちゃってるけど、本当はおまいらいつも使ってるものなんだから全然ムズカシくなんかねーんだぜ?って話かと。

そうそう、それだけの話なのです。

------------------------------------------------------
とりこびと さん

>同じくw

同じくw

# re: R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2 2007/07/27 12:00 Gushwell

TVのスイッチを入れる、
ポケットからハンカチを取り出す。
車のハンドルを右に切る。
君の名前はと聞く。

みんなオブジェクト指向ですよね。

# R流、一瞬でわかる.NETオブジェクト指向プログラミング入門3 2007/07/30 13:49 R.Tanaka.Ichiro's Blog

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門3

# R流、一瞬でわかる.NETオブジェクト指向プログラミング入門3 2007/07/30 13:51 R.Tanaka.Ichiro's Blog

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門3

# re: R流、一瞬でわかる.NETオブジェクト指向プログラミング入門2 2007/07/30 14:16 R・田中一郎

Gushwell さん

>みんなオブジェクト指向ですよね。

そうなんですよね。

わかっている状態だと、とても自然なことなのですが、慣れていないと、そういう考え方でプログラミングできることが信じられないということもあるのかもしれません。
昔の僕のようにw

# R流、一瞬でわかる.NETオブジェクト指向プログラミング入門4 2007/07/31 13:46 R.Tanaka.Ichiro's Blog

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門4

# R流、一瞬でわかる.NETオブジェクト指向プログラミング入門6 2007/08/07 13:56 R.Tanaka.Ichiro's Blog

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門6

# R流、一瞬でわかる.NETオブジェクト指向プログラミング入門6 2007/08/07 13:57 R.Tanaka.Ichiro's Blog

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門6

# R流、一瞬でわかる.NETオブジェクト指向プログラミング入門9 2007/08/14 14:13 R.Tanaka.Ichiro's Blog

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門9

# R流、一瞬でわかる.NETオブジェクト指向プログラミング入門9 2007/08/14 17:20 R.Tanaka.Ichiro's Blog

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門9

# R流、一瞬でわかる.NETオブジェクト指向プログラミング入門11 2007/08/27 15:29 R.Tanaka.Ichiro's Blog

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門11

# R流、一瞬でわかる.NETオブジェクト指向プログラミング入門12 2007/08/28 13:56 R.Tanaka.Ichiro's Blog

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門12

# R流、一瞬でわかる.NETオブジェクト指向プログラミング入門12 2007/08/28 14:40 R.Tanaka.Ichiro's Blog

R流、一瞬でわかる.NETオブジェクト指向プログラミング入門12

# <url>http://www.findfreeinsurancequotes.net/|auto insurance</url> :)) <url>http://www.bestmedsoffers.net/|priligy</url> eug 2012/08/26 16:43 Bubi

<url>http://www.findfreeinsurancequotes.net/|auto insurance</url> :)) <url>http://www.bestmedsoffers.net/|priligy</url> eug

# wow gold 2012/10/14 18:36 http://www.wowgolds.ca

I simply couldn't leave your website prior to suggesting that I actually enjoyed the usual information an individual supply for your guests? Is going to be again frequently to check up on new posts

タイトル
名前
Url
コメント