- 1 名前:デフォルトの名無しさん [04/01/10 14:56]
- VisualBasicやCといった手続き型言語をずっとやってきた人が、
C#やJavaといったオブジェクト指向言語をマスターする場合 オブジェクト指向の概念・概論を学ぶのが先がいいのか、 それとも、C#やJavaの言語を学ぶのが先がいいのか、 どっちがいいと思われますか。
- 152 名前:OO太郎 [2005/04/28(木) 15:22:59 ]
- プログラミングの初心者の俺が教えてやろう。オマエラよく聞け。
オブジェクト指向というのは、プログラミングのスタイルだ。JavaやC++は オブジェクト指向言語だといわれるけど、非オブジェクト指向的な プログラミングをしようと思ったら出来る。オブジェクトなんて使わなくても 同じように動くプログラムは作れる。 だから、プログラミングスタイルとしてオブジェクト指向をしっかり覚えないと いつまでたってもオブジェクト指向のプログラミングは出来るようにならない。 俺みたいにBASICで育った者は特にそうだ。
- 153 名前:OO太郎 [2005/04/28(木) 15:40:00 ]
- オブジェクト指向がなんでこんなにもてはやされているかというと、
いまの、ウインドウズを中心としたいわゆるGUIのプログラミングに ぴったりな概念だからだ。 オブジェクトはそれほど大騒ぎするほど難しい概念じゃない。巷に溢れる 説明の下手な著者の書いた本がくどくど説明するほど抽象的な概念 でもない。オブジェクト=物だ。ウインドウズだったら、それぞれの 窓はオブジェクトだ。あるいは、窓の中にあるボタンの一つ一つが 全てオブジェクトだ。 トランプのゲームだったら、トランプの一枚一枚がオブジェクトだ。 クラスというのは、オブジェクトを作る型みたいなもの。トランプには 必ずマークと数字がある。そういう決まりをまとめたものがクラスだ。 トランプクラスからトランプの一枚一枚を作り出すと、それがオブジェクト になる。例えば Trampu tramp1 = new Trampu (ハート、A); Trampu tramp2 = new Trampu (ハート、2); ・・・・・・・・・ Trampu tramp52 = new Trampu (クローバー、K); という感じにトランプオブジェクトが52個作れる。それぞれが トランプクラスのインスタンスになるわけだ。
- 154 名前:OO太郎 [2005/04/28(木) 15:52:20 ]
- あと、オブジェクトの面白いのは、トランプの例のようにマークと
数というようなデータだけじゃなくて、いわゆるサブルーチンのような 機能(これがメソッドだ)も一まとめにしてしまうことが出来るってこと。 例えば、トランプゲームだったら、「持ち札」なんてクラスが定義できる カも知れない。プレーヤーが4人いたら、それぞれ持ち札があるわけ だから、持ち札1、持ち札2、持ち札3、持ち札4というような オブジェクトが作れる。例えば「持ち札1」には、ハートの3、 スペードの4、クローバーのA、ダイヤの7がある。それはみんな インスタンス変数になる。で、メソッドとして、「カードを引く」 「カードを捨てる」「カードの枚数を得る」「同じマークを捜す」 「同じ数を捜す」などなどいろいろなメソッドが考えられる。 それらを全てクラスで定義しておいて、実際に「持ち札1」にたいして そういうメソッドを呼ぶことによって、「持ち札1」の内容を変更 したり、内容を見たりすることが出来る。
- 155 名前:OO太郎 [2005/04/28(木) 16:06:15 ]
- トランプゲームだったら、もう一つ、真ん中においておく「カードの山」
なんて、クラス考えてもいいかもしれない。そこから作られる、 インスタンスとしての「カードの山」オブジェクトはインスタンス変数 として、カードの数、カードの種類などをもっていて。メソッドとして は、「カードを出す」、「カードを切る」など考えられるかもしれない。
- 156 名前:OO太郎 [2005/04/28(木) 16:21:57 ]
- あと、もう一つGUIプログラミングのもう一つの特徴は、イベント指向
ということだ。昔のプログラミングみたいに、一行目から始まって、 順々にコンパイラでもインタープリターでも読んでいって、順次実行 していく、いわゆる手続きがたのプログラミングとは違う。 プログラムは、キーボートや、マウスといった入力装置からの割り込み あるいはメッセージを待っていて、マウスがクリックされたというと、 それを処理するルーチンがある、マウスがドラッグされた、というと それを処理するルーチン、というように、そういう各々のイベント 処理を中心にプログラムが構築されていく。 で、そういう処理が、アル程度OSに任されてしまっているので、 プログラマーにはコントロールできない部分がある。例えば、描画 にしても、自分が、「描け」と命令するというよりも、絵を特定の 机の上に置いておくと、システムが定期的に来て、それを持っていって 画面に貼り付けてくれる、というようなイメージだ。絵を変化させ たいばあいは、別の絵を描いといて、それをまた特定の机の 上に置いておいて、システムが持っていくのを待つ。 こういった思考パターンによるプログラム作りにがつまり、 オブジェクト指向のプログラミングということだろうと、 素人の俺は思うんだが。
- 157 名前:131 mailto:sage [2005/04/28(木) 16:22:19 ]
- >>133
すいません、寝ちまいましたm(_ _)m オブジェクト指向プラグミングする際に 1. まず、プログラミング対象を分析した結果としてオブジェクトを抽出する 2. 次に、オブジェクトの設計・実装の結果としてメンバ変数とメンバ関数による オブジェクトの定義であるクラスを導出する 3. 最後に、プログラムの実行の結果としてクラスのインスタンスがメモリ上に 割り振られる この場合、オブジェクトという用語に必要な概念は、 プログラミング対象を分析した結果としてオブジェクトという用語であって、 それ以外の、 インスタンス≡クラスのオブジェクト の“オブジェクト”の用語の使い方は、 “一般概念としてのオブジェクト”という用語の適用を オブジェクト指向プラグミングというコンテキストに持ち込むことになるからです。 つまり、オブジェクト指向プラグミングというコンテキストでの“オブジェクト”の用語の 因果関係、つまり順序性の意味を無視しているということです。 「色即是空・空即是色」という禅問答は、アカデミック(学術)的な思考の中では 成立するのかもしれませんが、エンジニアリング(技術)的な思考の中では、 「色即是空」であるか、さもなければ、「空即是色」のどちらかでなければ、 未知の技術に対する理解は混乱するだけなのです
- 158 名前:OO太郎 mailto:sage [2005/04/28(木) 17:04:55 ]
- インスタンスって、英語で「事例」とか「実例」という意味で、
クラスに具体的なデータを与えて作ったインスタンスつまり 「具体例」がオブジェクトなんでしょ? クラスは基本的に、オブジェクトを作るための枠組みであって、トランプ でいったら、白紙でマークや数字が印刷される前の状態だと思う。
- 159 名前:デフォルトの名無しさん mailto:sage [2005/04/28(木) 17:38:16 ]
- 初心者に教えてもらいたくない
- 160 名前:デフォルトの名無しさん [2005/04/28(木) 19:05:35 ]
- オブジェクト指向自体はわかったんだけど、大規模なシステムのソースを理解するのが大変なんだよね。
こういうのってどうやってるんだろ・・・。 継承されまくりでどこにメソッドがあるのかもよくわからないし・・・。
- 161 名前:デフォルトの名無しさん mailto:sage [2005/04/28(木) 19:40:53 ]
- >>160
とりあえずdoxygen通してみるとか。
- 162 名前:160 [2005/04/28(木) 20:50:27 ]
- >>160
なるほど、よさげですね。 ためしてみます。アドバイスありがとうm(_ _)m
- 163 名前:デフォルトの名無しさん [2005/04/28(木) 21:09:51 ]
- >152-156
素人の説明って結局わからん、ってのはよくわかった、
- 164 名前:デフォルトの名無しさん mailto:sage [2005/04/28(木) 21:29:38 ]
- 俺は、C-magazine創刊号に載ってたトランプゲームによるOO説明(ソース付き)
思い出しちまったよ。 OOトランプの役者としては、 ・トランプの各カード ・カードの山 の他に、 ・ゲーム (トランプがルール知ってる訳じゃなくて、ゲームにルールがある) ・プレイヤー (一人(占い等)または複数) ・ゲームの場 (占いの内容とか、ゲームが何回戦目かとか) も要るな。
- 165 名前:デフォルトの名無しさん [2005/04/28(木) 21:34:09 ]
- >>163
そうかね?よく理解していると思ったが >>158 Integerクラスのインスタンスが1,2,3などの整数 Integerクラスを任意の整数と捉えることも可能だが 任意の整数の全体と捉えることの方をおすすめしておこう
- 166 名前:デフォルトの名無しさん [2005/04/28(木) 21:36:55 ]
- 素人(アル中)が素人に説教するインターネッツ
- 167 名前:デフォルトの名無しさん [2005/04/28(木) 21:39:15 ]
- おまいの議論って、
結局 Smalltalkのクラス階層として結晶した概念を、 後付で説明しようともがいているだけだな。 >>165 >Integerクラスのインスタンスが1,2,3などの整数 >Integerクラスを任意の整数と捉えることも可能だが >任意の整数の全体と捉えることの方をおすすめしておこう 誰もそんな事、話題にしてないしw
- 168 名前:デフォルトの名無しさん [2005/04/28(木) 22:04:12 ]
- 結局概念だけで説明しようとするとかえって分かりにくくなるような気がする。。
概念→実装ほどかけ離れてるもんはない。
- 169 名前:デフォルトの名無しさん [2005/04/28(木) 22:06:37 ]
- Smalltalkのクラス階層として結晶した=Smalltalkで実装された話
つう事。 概念 ↓ 実装 ↓ 実装を概念として騙ってる ←このスレ
- 170 名前:デフォルトの名無しさん [2005/04/28(木) 22:26:45 ]
- Smalltalk以外のオブジェクト指向言語は
オブジェクト指向の風味がある偽物 偽物の腐った概念であれ>>152-の理解は正しい
- 171 名前:デフォルトの名無しさん [2005/04/28(木) 22:30:37 ]
- >>167
なぜかね? >>158の捉え方も可能だが 任意よりも全体と捉える方をおすすめする
- 172 名前:デフォルトの名無しさん mailto:sage [2005/04/28(木) 22:36:47 ]
- >>165 の一行目に基づき、
「整数」を「インスタンス」と置き換えてみよう。 二行目「クラスを任意のインスタンスと捉える」 というような荒唐無稽な話は、(>>165と>>171以外)誰も言っていない。 三行目「クラスはインスタンスの全体と捉える」 これは、クラスを集合と捉える考え方だね。
- 173 名前:デフォルトの名無しさん mailto:sage [2005/04/28(木) 22:51:41 ]
- >>170
オブジェクト指向の定義は千差万別人それぞれ。 俺はリフレクションさえあれば何でも良し。C++ 逝ってヨシ!! www.shiro.dreamhost.com/scheme/trans/reesoo-j.html
- 174 名前:デフォルトの名無しさん mailto:sage [2005/04/28(木) 22:56:20 ]
- >>172
荒唐無稽と言うほどでもない クラスの概念は集合と似ているが同じではない 集合を任意要素として表現することもあり オブジェクトとクラスの関係を理解する一つの方法として >>158の捉え方もあながち捨てたものではない なお>>158をよく理解していると褒めてはいない >>152-の例が例としてよくまとまっていると褒めた
- 175 名前:チラシの裏 mailto:sage [2005/04/28(木) 23:10:28 ]
- 集合論ではsetと同じような意味でclassという単語が使われる
ことがあるけど、オブジェクト指向のクラスも元々はそこからとった 言葉じゃないのかなと俺は思う。
- 176 名前:デフォルトの名無しさん [2005/04/28(木) 23:30:05 ]
- >>175
正しいかもしれないがたとえ集合論と関連させたものだったとしても似た用語を援用しただけであろう なぜならば集合論におけるクラスは他のクラスの要素にならないからだ Smalltalkのクラスはメタクラスのインスタンスでありその点が大いに異なる また集合論では許されない無限降下列も存在している MetaClassのメタクラスはMetaClassのインスタンスである
- 177 名前:デフォルトの名無しさん [2005/04/29(金) 05:11:02 ]
- >>174-176
20分おきに連投ご苦労。で、結論出た? セットとクラスの違い、 数学基礎論でいうクラスと、OO言語のクラスの違い タイプ理論、 まで説明が終わったら、起こしてくれ。それまで一休みw
- 178 名前:デフォルトの名無しさん [2005/04/29(金) 07:45:21 ]
- >>177
結論とは何かね?
- 179 名前:デフォルトの名無しさん [2005/04/29(金) 08:09:08 ]
- >>157
忘れていた あまりよい理解ではないが インスタンス=クラスのオブジェクト で理解しても構わない ここで言うオブジェクトももちろんオブジェクト指向言語におけるオブジェクト すべてはオブジェクトでありクラスに従属していることを強調する場合はインスタンスという用語を使う selfに入っているものはオブジェクトでありそれは何らかのクラスのインスタンス
- 180 名前:デフォルトの名無しさん [2005/04/29(金) 08:21:05 ]
- 蛇足ながら
集合論ではすべては集合(無定義概念) 何らかの集合に所属している場合は要素と呼ぶ さらに蛇足ながら クラス概念のある集合論の場合 すべてはクラス(無定義概念) 何らかのクラスの要素である場合は集合
- 181 名前:131 mailto:sage [2005/04/29(金) 11:13:10 ]
- >>179
慣用的に、"すべてはオブジェクト”という理解があることは承知しています。 ですが、157で述べたとおり、クラスを導出する“オブジェクト”という言葉と、 クラスから導出される“オブジェクト”という言葉は、その導出の順序性と 目的において異なる意味を持っています。 "すべてはオブジェクトである”とい論理は、じつは、ふたつの“オブジェクト” という言葉が、それぞれ異なる意味を持った言葉でありながら、言葉の 形式的音韻的な同一性に拠ってのみ成立している論理だと思うのです。 そして、このような“オブジェクト”という技術用語の本来の意味をあいまいな 方向に誘導する学術系の論理は、オブジェクト志向プログラミングへの理解 を初手から阻害している重要な原因の一つだと考えているのです。
- 182 名前:デフォルトの名無しさん [2005/04/29(金) 11:15:25 ]
- クラスとセットのちがい
クラスの定義を説明する例として、「国連」が例示されることが多い。 すなわち、 o 国連のメンバーは国々であり、 o 国のメンバーは、例えば、日本国なら日本人だが、 x 日本人は国連のメンバーではない、 という説明がされる。 しかし、セットの観点からすれば x 日本人の集合は、いくら日本人を加わえても、 日本人の集合であって、日本国にはならない。 つまり、「男」と「女」を使った例で言えば、「男」と「女」の集合を起点にして、 「個人 」あるいは「法人」というクラスを形成するためには、 タイプ(N−1)とタイプN の間には、「概念の飛躍(抽象化)」が起こっているのである。 概念の一般化は論理和ではない。
- 183 名前:デフォルトの名無しさん [2005/04/29(金) 11:24:35 ]
- >>181
そこに書かれた「二つのオブジェクト」とは 君の言うプログラム設計手法としての「クラスを導出するオブジェクト」と 書かれたプログラム・実際に動く際の「クラスに導出されるオブジェクト」という意味か? そのような違いを念頭に書いたことはないし実際気にする必要があるとも思えない
- 184 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 11:43:24 ]
- タイプ理論
20世紀初頭、集合論を使って数学の基礎を再構築する試みが開始された。 数学基礎論の源流には、以下の3つの流派があった。 (1)論理主義 (ラッセルに代表される考え方) (2)形式主義 (ヒルベルトに代表される考え方) (3)直観主義 (ブラウワーに代表される考え方) ラッセルの提示したや り方が「タイプ(type)理論」(the theory of types)である (ラッセルの提示したタイプ理論は「分岐タイプ理論」と云うが、 ラムゼー(Ramsey F.P.)は、それを簡素化して、単純タイプ理論にした)。 ラッセルの導入したタイプ理論を要約すれば、以下の2点が主張 である。 (1)モノは、(以下に記述するように)いくつもの階層(=型)から構成されている (これを、 「高階」の構成という)。 タイプ0:個体{a, b, c,...} タイプ1:個体の性質 f(x) [つまり、「関数」] タイプ2:個体の性質の性質 g(f(x))[ つまり、「関数の関数」のこと ] : タイプ(N−1) タイプN (2)代入規則:タイプNの 関数は、タイプ(N−1)の対象を代入項とする。 したがって、「W∈W」(同じレベルの代入)は無意味となる(「タイプ理論」ではW∈{W}が正しい扱いとなる)。 ちなみに、W={W}が成立することもある。これを「不動点」という。 数学者たちが、モノを「高次に(高階に)構成された構築物」と観る原点が、ここにある。 モノは「無定義語」であって、「関係 (関数)」のなかで扱われるパラメータ(項)に過ぎない。
- 185 名前:デフォルトの名無しさん [2005/04/29(金) 12:23:27 ]
- 素朴な集合論は様々な矛盾を誘発し現在は公理化されている
そこでは通常はW∈WおよびW={W}なるものは拒否されている 揚げ足取りのつもりないが気になったので指摘させて頂くが 関数の関数を書く場合はg(f)(x)とした方がよいだろう もっと正確には(g(f))(x)であろうか g(f(x))は通常は関数の合成の意味を持たせているからだ
- 186 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 12:25:41 ]
- いつの間にか蛆虫が沸いている。
- 187 名前:デフォルトの名無しさん [2005/04/29(金) 12:26:50 ]
- 誤解されぬよう書いておくが>>185は蛇足である
- 188 名前:デフォルトの名無しさん [2005/04/29(金) 12:45:31 ]
- 枝葉の指摘ご苦労。
じゃ素朴な集合論の話はここまでにして、 次は ZF公理に基づくプログラミングを騙ってくれ。 よろしく
- 189 名前:デフォルトの名無しさん [2005/04/29(金) 13:10:50 ]
- >>188
それはHaskellのことか?
- 190 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 13:20:08 ]
- いや、きっと>>185は、
公理的集合論、例えばZF公理系に基づいて オブジェクト指向を説明してくれる事と思う。
- 191 名前:デフォルトの名無しさん [2005/04/29(金) 13:29:04 ]
- >>190
ご期待には添いかねる
- 192 名前:デフォルトの名無しさん [2005/04/29(金) 13:32:57 ]
- あ、そ。
なんだ、自分の頭で考える事ができる人かと思ったら、 受け売りをくどくど書いてるだけの人か。 つまんね
- 193 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 13:38:04 ]
- >>192
無駄なことはしない >>185を書いたのは>>184に紹介さえていることが現代的ではなかったことと記法が気になったことだ 特にそれ以上の意図はない
- 194 名前:デフォルトの名無しさん [2005/04/29(金) 13:39:52 ]
- うんだから、
その現代的でない理論でオブジェクト指向が成り立っているのか、 あるいは、もっと現代的な説明が可能なのか? >無駄なことはしない。 そのあたりをちゃんと説明しろってこと。
- 195 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 13:41:37 ]
- オブジェクト指向は集合論に基づいているわけではない
以前から似ているが違うと書いているのだが?
- 196 名前:デフォルトの名無しさん [2005/04/29(金) 13:44:41 ]
- ラッセルの型理論つのは、型付プログラミング言語に関する
一番最初の説明として、有効だと考える。 で、おまいさんが現代的ではないとおっしゃるのだから、 じゃそれを現代的にして下さい、って事。
- 197 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 13:46:54 ]
- >>196
ご期待には添いかねる
- 198 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 13:47:50 ]
- 現代的な型理論としては、
MartinLofの型理論 なんつうのもあるな
- 199 名前:デフォルトの名無しさん [2005/04/29(金) 14:00:11 ]
- 揚足鶏だらけのインターネッツですねw
- 200 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 14:02:44 ]
- 初心者相手のゆるい説明に、
いちいちピラニアみたいに食いついてくるのが、 ちゃねらーですから。
- 201 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 14:04:30 ]
- んなのばっかだと初心者はどん引きして、
近寄ってこないと思うよw
- 202 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 14:08:30 ]
- その方が初心者にとっても身のためだったりしてw
- 203 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 14:12:44 ]
- 荒しが活躍し過ぎると、一般人はどん引きして、
2ちゃねらー離れが加速するだけだと思うよw
- 204 名前:デフォルトの名無しさん [2005/04/29(金) 14:18:06 ]
- 今度から俺も、間違えて荒しちまった後で
「他意はない」って言い訳しよ。 それでも突っ込まれて、ほとほと己の無力さ加減に絶望したら、 「期待には添いかねる」 とレスを返す事にしよう。
- 205 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 14:20:57 ]
- >>204
ご期侍には添いかねる
- 206 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 14:33:39 ]
- >>205
他意はない
- 207 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 14:35:20 ]
- >>206
無駄なことはしない。
- 208 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 14:37:10 ]
- >>207
似ているが違う
- 209 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 14:38:53 ]
- ゆるい説明をくどくどする奴に限って、
ゆるゆる議論のほころびの一つに突っ込むと、 猛反発をしてくるの法則
- 210 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 14:41:05 ]
- >>209
ちゃねらーですから。
- 211 名前:デフォルトの名無しさん [2005/04/29(金) 17:24:52 ]
- Animal
<-Dog <-Cat こんな継承することは現実のプログラミングの現場ではありえない 実装してみて、インターフェースが共通化できそうなら継承木をつくるのであって 概念としてひとくくりにできるから継承やってると泥沼にはまる だいたいそれでうまくいくんならデザインパターンなんていらないわけで オブジェクト指向は手段、言語や実装無しに概念としての価値はあまりない
- 212 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 17:39:37 ]
- >>211
>>123
- 213 名前:211 mailto:sage [2005/04/29(金) 17:43:08 ]
- > Animal
> <-Dog > <-Cat > > こんな継承することは現実のプログラミングの現場ではありえない 補足します ゲームやシミュレーションの世界ではこういう書き方もするが、 言語自体の記述力の限界もあって、 概念をそのまま記述することにとらわれると足かせになりがち 煮え切らない文章すまそ
- 214 名前:211 mailto:sage [2005/04/29(金) 17:50:49 ]
- >>212
オブジェクト指向という言葉しかつかっていませんが、 オブジェクトを型、インスタンスのどちらでとらえるかで 意味が変わりますかね
- 215 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 18:14:57 ]
- オブジェクト指向言語を実現する方法として、C++型とsmalltalk型と二つの方法があるってことか?
どっかで似たような話を聞いたな。 このスレでも>>157がそういうようなことを言っているけど。
- 216 名前:131 mailto:sage [2005/04/29(金) 18:19:04 ]
- >>211
> Animal > <-Dog > <-Cat これはPROTOTYPEパターンだね
- 217 名前:131 mailto:sage [2005/04/29(金) 18:28:36 ]
- >>215
C++は静的なオブジェクト指向プログラミングを実現する仕組みで コンパイラでできること仕組みの多くを実現している一方の究極。 動的なオブジェクト指向プログラミングを実現する仕組みの究極は、 Perlだと思う。型変換も実行時に簡単にできるし、同一ベースクラスの サブクラスの多重継承を(現状がいいかは別問題として)矛盾なく サポートできる。どちらも、静的なコンパイラ言語であるC++では困難 Smalltalkは理解不能ゆえ、私には論評できません。
- 218 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 18:32:16 ]
- >>214
詳しく
- 219 名前:デフォルトの名無しさん [2005/04/29(金) 18:33:03 ]
- >>216
> Animal > <-Dog > <-Cat これ見て >これはPROTOTYPEパターンだね とは、あんたエスパーかw まず "<-"演算子の意味を定義しろってw
- 220 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 18:33:40 ]
- >>182, >>184
T型ERからの引用だな。
- 221 名前:デフォルトの名無しさん [2005/04/29(金) 18:35:19 ]
- >>219
俺も最初、 Class Animal {} Class Dog extends Animal {} Class Cat extends Animal {} て話かと思った。 Cat extends Dog {} なんてアフォな話題を誰が持ち込んだんだw
- 222 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 18:35:50 ]
- 型がオブジェクトと言われることって・・・・?
- 223 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 18:36:38 ]
- >>220
佐藤さんだけじゃなくて、 外国の超大物も書いてるみたいだよ、このスレ。
- 224 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 18:38:32 ]
- ああ、ブリキの人ね。
彼も日本語が上手くなったなぁ
- 225 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 18:40:32 ]
- >>220
で、現代的な型理論と 公理的集合論の話の続きは?
- 226 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 18:47:45 ]
- ProjectBuilderってOOとしてどう?
- 227 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 19:42:32 ]
- いや佐藤さん本人ではないだろう。
無断借用じゃないの。
- 228 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 21:13:25 ]
- >>221
にゃんって鳴く犬が猫なんだよw
- 229 名前:デフォルトの名無しさん [2005/04/29(金) 21:30:01 ]
- >>211
デザインパターンなんていらないんじゃないの?
- 230 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 22:04:49 ]
- >>229
再利用とかメンテとかがいらなければ、いらないねっ。
- 231 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 22:06:31 ]
- 【オブジェクト指向】言語学習が先?概念学習が先?
1 名前: デフォルトの名無しさん 投稿日: 04/01/10 14:56 VisualBasicやCといった手続き型言語をずっとやってきた人が、 C#やJavaといったオブジェクト指向言語をマスターする場合 オブジェクト指向の概念・概論を学ぶのが先がいいのか、 それとも、C#やJavaの言語を学ぶのが先がいいのか、 どっちがいいと思われますか。
- 232 名前:デフォルトの名無しさん mailto:sage [2005/04/29(金) 22:10:01 ]
- >>231
C#やJavaでオブジェクト指向プログラミングしなくても ぜんぜんに構わない オブジェクト指向プログラミングにC#やJavaを使わなくても ぜんぜん構わない
- 233 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 00:00:14 ]
- C#やJavaでOOしないのはかえって大変
非OO言語でOOするのはストレスたまりまくりんぐ
- 234 名前:デフォルトの名無しさん [2005/04/30(土) 00:07:05 ]
- >>120
>ストラ先生は、オブジェクト=クラスという意味で使っているみたい って誤読だろ?明らかに
- 235 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 00:48:24 ]
- >>234
完全に誤読だよな。
- 236 名前:デフォルトの名無しさん [2005/04/30(土) 01:00:16 ]
- オブジェクト=物 って説明すると
初心者は日本語で言うところの「物」を創造してしまい 「動作・ふるまい」を物とは考えることが出来なくなる 物ありきで、その物に対して「動作・ふるまい」をメソッドとして実装することしか頭に浮かばなくなる
- 237 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 01:16:12 ]
- クラスライブラリの体系をおぼえるのが
ものすごく、めんどくさい。
- 238 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 01:18:15 ]
- オブジェクトはキャラクターです
パラディンクラスはナイトクラスを継承します 新たに技を追加できます オーバーライドすることで既存の技を強化することも可能です
- 239 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 02:12:37 ]
- >>238
>オブジェクトはキャラクターです この時点で>>236の言っていることそのままじゃん
- 240 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 02:17:25 ]
- オブジェクトは職業・技能です
とか?
- 241 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 02:29:04 ]
- クラスは役割、役です
はどう?
- 242 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 02:44:27 ]
- くらすが個別にインスタンシエーションがつまりmalloc()の
コンストラクタがごごごと動いて どうも、オブジェクトです、 クラスのインスタンスです、ご用件をどうぞ free(); または、もしもし五味屋さんはやくきてよ のような、認識。 今年中によむ、本(予定)。 * 結城本 * エッケルのThinking in Java * GOF本
- 243 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 02:57:57 ]
- >>237
マトモに設計されたライブラリなら一部を覚えればあとは類推で何とかなると思うが。
- 244 名前:デフォルトの名無しさん [2005/04/30(土) 04:27:33 ]
- オブジェクトを汎化したものがクラスです。
- 245 名前:デフォルトの名無しさん [2005/04/30(土) 04:32:08 ]
- >>123
> 分析レベルだと、あんまりインスタンスという言葉は使われない。 おいおい、ユースケースのをインスタンス、とか言うだろ? 使われないのはオブジェクトという意味の「クラスインスタンス」だろ?
- 246 名前:デフォルトの名無しさん [2005/04/30(土) 11:29:38 ]
- インヘリタンス
- 247 名前:デフォルトの名無しさん [2005/04/30(土) 12:41:43 ]
- 混濁箪笥
- 248 名前:デフォルトの名無しさん [2005/04/30(土) 13:23:24 ]
- オブジェクト指向ってつまるところ
「そういう仕様」だと思うよ、 現実を表現しやすく、管理しやすい仕様ではあるが 現実に無理して当てはめてわかった気になっても 習熟していくと騙されたと気づくんじゃないかな?
- 249 名前:デフォルトの名無しさん [2005/04/30(土) 13:32:57 ]
- 騙されたって気にはならないなあ
用意周到なクラスライブラリを理解していくに連れて なるほどという気持ちになる あでもそういう汎用クラスライブラリを作る側は大変だろうな 習熟して騙された気になるってそういうレベル?
- 250 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 13:47:11 ]
- アルゴリズムと一緒で
あーこういう組み方するのか〜うまいね〜ってな感じ しかし、それほどデザインパータンに執着は無い クラスの関係図を書くと何階層にもなってしまうので 新規作成時はいいんだけど、後から入ってきた人が もしそれほど知識無いとしたら修正お願いしてもわかりませんので
- 251 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 15:43:55 ]
- 「現実に無理して当てはめた説明」に騙されたって言ってるんだけど
デザインパターンは現実の構造を示してるんじゃなくて、 工学的な定石に名前をつけたもんでしょ 現実ってリアルワールドね
- 252 名前:デフォルトの名無しさん mailto:sage [2005/04/30(土) 15:46:52 ]
- 習熟してくるとその辺の神話のうそがわかってくるって
いいたいんですよ
|

|