1 :
デフォルトの名無しさん :
03/09/23 14:39 フルーツやほ乳類で例えた人を、このままにはしませんよ! この決着をつけるんです。そうでしょう? そうでなければ、こんなスレも、ヤツの住んでいるBBSも、息苦しくって・・・
2 :
デフォルトの名無しさん :03/09/23 14:40
1 :デフォルトの名無しさん :03/05/19 20:39 自分も最初その概念がわかるまで少し時間がかかったと思う。 しかし振り返って見ると説明の仕方が悪いとしか思えない。 誰が最初に言い出したのか知らないが、プログラミングの実態からかけ離れた概念の事ばかり説明する。 新しい概念を学ぶ、教える際に最も効果的なのは、身近な具体例を見ることである。 これを取り違えたのか、プログラミングの概念を説明するのに、魚とかりんごとかロボットとか名詞動詞とか、そんな事ばかり書いてある。 大方の入門者はそんな事よりももっとコンピュータの振る舞いに近い例を求めているはずだ。 こういうのを見るたびに思うことは、このような日常生活の例を出してプログラミングの概念を説明するのは、説明するものの自己満足なのではないか?ということ。 CをベースにしてC++に移行(今は少なくなったのかもしれないが)しようとする人間にとってこういう妙な概念化は非常にまどろっこしい、時には馬鹿にされている感じさえ受ける。 続く
3 :
デフォルトの名無しさん :03/09/23 14:41
5 :デフォルトの名無しさん :03/05/19 20:46 自分が思いついた説明をすると、 デスクトップにあるアイコンが良い例だと思う。 アイコンはオブジェクトのインスタンスである。 メモ帳のアイコンはテキストという内容を含んでおり、動作は右クリックすると確認操作できる。 デスクトップで右クリックすると、ある程度のオブジェクトの雛形、ショートカット、フォルダー、テキストファイルなど、が用意されている。 これに名前をつけて新規作成するのがオブジェクトのインスタンス化に他ならない。 オブジェクト指向以前の操作では、例えばWORDのファイルを開こうとしたときには、WORDを立ち上げ(関数、手続き)そこからファイルを指示選択するという操作だったのが、 オブジェクト指向、アイコンの操作ではそのWORDファイルをクリックすると、自動的にWORDが立ち上がる。 これがよく巷の説明にある、オブジェクト自身が己の振る舞いを知っているということだ。 エクセルファイルはエクセルをたちあげるし、右クリックから別のメソッドを選ぶこともできる。 こういうのをイルカは泳ぐが、車は走るとか書かれるとハア?ってなっちゃうと思うんだけどね。
■■■■■■■■■■このスレは終了しています■■■■■■■■■■
5 :
デフォルトの名無しさん :03/09/23 14:42
/ ̄ ̄ ̄ ̄ ̄ ミ / ,――――-ミ / / / \ | | / ,(・) (・) | (6 つ | | ___ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ | /__/ / < だからクソスレ立てるなって言ってるだろ /| /\ \__________
8 :
デフォルトの名無しさん :03/09/23 14:47
糞スレならのびねーよ。
極度の糞スレはのびるんだよ
10 :
デフォルトの名無しさん :03/09/23 14:53
AAとか一行レスであおられても全然痛くない。 むしろ「前スレで立てない事になってた」とか「スレたてが下手」とか 本人の無能さをチクチクと指摘していった方が有効。 糞スレなんて言葉も在り来たりすぎて効果なし。
11 :
デフォルトの名無しさん :03/09/23 14:54
>>10 ごく一部の人間が立てるなと言っていただけ。
|| Λ||Λ ( / ⌒ヽ | | | ∪ 亅| | | | ∪∪ : : ‐ニ三ニ‐
要するにOO理解できない無能プログラマの話なんだろ。 マ板でやれや。
,..、_ _ __ ..,,__ _,, ,,_ _ __ l ./====/ \| .l ,、| ./ , 、 \''゙ <.| i=' `l ヽ\ _ 7 フ,、 / /.l`‐- ゙、| |=| .i- l ./= ,> /,_、.ノ| |.| !∧.| l' !、`'゙ _,,,..ゝ_,、 . / |.| || | | |.|`' __'`ノi、l / / 二| /'゙∠,,> = '゙l .| ゙7 .l ∠~_,,,,.) ~| |.| !! |.| .|.| | | .|ヽ. ./ .フ <'ヾフ / .| .| /!./ /_ ゙ | .|.!-'`二l .|| |._| .|/ `‐- /,、 |゙、ノ.> '-┐、 `.-‐'' .// ./ ヾ‐---‐、 |_,,,| \_丿!-‐'>,.-'゙~`、/ ` |_,,l/-‐'゙‐、_| `‐- -‐' ヽ_/ `‐- - ‐'
17 :
デフォルトの名無しさん :03/09/23 20:02
だーれがころしたクークローベン とかいうAAが昔あった気がするんだが、あれって何だ?
オプジェクト指向がわかりません。
パタリロをわかるのって28以上ぐらいか・・・。
はいからさんが通るならわかります。
なんでパタリロだと決め付けるのかと
クックロビン音頭以外にあのフレーズってあるの?
マザーグース→ポーの一族→パタリロ
>>24 基本クラスをしらんかった。
うまく隠蔽されていたというか、まあ知らなくても使っていいんですよね。
26 :
デフォルトの名無しさん :03/09/24 01:36
パタリロはつぶれアンマンを継承してるんですか?
27 :
デフォルトの名無しさん :03/09/24 01:45
>>26 つぶれアンマンのインターフェイスを持つわけではなく
実装継承なのであまり真似しないでください。
28 :
デフォルトの名無しさん :03/09/24 01:47
あれ?これつぶれアンマンインターフェイスに突っ込もうとすると InvalidCastExceptionが発生しちゃうな。 よくみたらパタリロじゃなくてカリメロだった。
すれと関係ないけどさ、ちんこもみもみも〜みもみって歌って もしかしてクックロビン音頭の曲の替え歌だった?
30 :
デフォルトの名無しさん :03/09/24 01:53
マザーグース→パタリロつーのは知ってたが、ポーの一族にどのように 出てきたの?主人公がパパンのパンとかやるわけ?
言っとくが、最初は「音頭」じゃなかったんだよ(w 『ポーの一族』で主人公たちが「誰が殺した・・・」と口ずさんでいたのを、 パタリロが真似をしたのは美少年を気どるため。 それが読者に変にウケたので繰り返しているうちに何時の間にか「クックロビン音頭」になってしまった。 なお、パタリロ連載当初の読者は(年代的に)たいてい『ポーの一族』を読んでいた。 さて、これをどうやってOOPの説明に使えばよいやら(w
__,,,,_ /´  ̄`ヽ, / 〃 _,ァ---‐一ヘヽ i /´ リ} | 〉. -‐ '''ー {! | | ‐ー くー | ヤヽリ ´゚ ,r "_,,>、 ゚'} ヽ_」 ト‐=‐ァ' ! ゝ i、 ` `二´' 丿 r|、` '' ー--‐f´ _/ | \ /|\_ / ̄/ | /`又´\| |  ̄\ 皇太子様がこのスレに興味を持ったようです。
>>31 ありがとう、今日聞いた情報の中で一番ためになった!!
34 :
デフォルトの名無しさん :03/09/24 03:14
>>33 今日はあと21時間もあるのに随分あきらめが早いな。
35 :
デフォルトの名無しさん :03/09/24 03:15
結局オブジェクト指向は何から教え始めれば良いんだ?
>>35 つまらん喩えは5分で済ませてあとは
バラバラの変数を構造体にまとめてそれをクラスで隠蔽してメソッドつけてと
テクニカルに構造化プログラミング->OOPの発展の歴史をコード中心に説明すればいいんじゃないの。
おまいら。 オブジェクト指向なんか時代遅れと権威ある連中がいいはじめたら、 どうせそれに追従するんだろ? なら先取りしてオブジェクト指向なんて素通りしちまえばいいんだ。 メタプログラミング。これがC++で面白く、かつ実用性たっぷりのテクニック。 おまいら、コンパイルすらなかなか通らないこの分野にどっぷりつかってみないかえ?
>>37 メタプログラミングって何?
プログラムをジェネレートするプログラムのプログラミング?
>>36 最初に覚えた言語が最高の言語だ主義者 の誕生だな。
>>35 マルチプルインスタンス。
===============終了==============
>>35 カプセル化
===============再開==============
>>37 素通り?オブジェクト指向使ってないの?
こんな簡単で便利で強力な概念(と言語の機能)も
分からない・使えないようでは・・・
>>42 彼はより上位のステージへ解脱してしまったようです
衆生には計り知れない境地に達しているので近寄ることもかないません
仏ほっとけ神かまうな
45 :
デフォルトの名無しさん :03/09/24 10:52
オブジェクト指向はブラックボックス化を進行させるだけだ。
>>39 業務では社員の時間とモチベーションに限りがあるから
概念やOO一般の説明に必要以上に時間を割きすぎてもメリットは薄いよ。
理解や用語の使用にムラがでるだけ。費用対効果を考えな。
# >35が業務以外で教えるんだとしたら教え方も変わってくるだろうけど。
49 :
デフォルトの名無しさん :03/09/24 11:31
(^ム^)
メタプログラミングって聞いたことあるんだけど何だっけ?
C++ローカルななんちゃって用語。 恥じかくからリアルワールドでは使わない方がいいよ。
>>47 OOP最初から判ってる新入社員が増えてくると、ベテランが
冷や飯食うようになりませんか?
>>52 そうでもない。知識以外のウェットな要素が幅を利かすので
似非ベテランでもそこそこのポジションを維持できる。
これ以上はマ板ネタか。
ベテランが冷や飯食らうような新入社員なら大歓迎だよー!
そんな奴うちにはまず入ってこないが
>>53 オブジェクト指向は「マルチプルインスタンス」からじゃなく、
「多態」から教えて下さい、先輩。
学生なら自分で勉強しとけ。 社員研修で講師の理解の浅さを馬鹿にできるくらいにな。 そうすれば現場の知識レベルの低さに驚きやる気が失せること請け合い(藁
57 :
デフォルトの名無しさん :03/09/24 22:59
>>50 Javaらーには使いこなせない代物。
Javaらーは自分の手に届かない物をちらつかせると怒り出すからJavaらーの前では言わない方がいいよ。
>>60 笑わせるな。JavaGenericsなぞ問題外。
・名称:デジタル乞食 ・概要:朝起きたら、まずwinnyで何が落ちてるか調べる ・利点:いろいろなものが手に入る ・欠点:明日タイーホされてもおかしくない諸刃の剣 ・名称:小さな親切大きなお世話 ・概要:会社のソースカツ丼は、ケチャップなので、おばちゃんにケチャップかけないで、自分で、食卓にある普通のソースかけるから。と言う ・利点:お好みのフレイバーが楽しめる ・欠点:おばちゃんによっては問答無用でラーメンに天ぷらをつっこんで「サービスよ!」とのたまうツワモノもいる。 ・名称:早起きはチャンリンシャンの得 ・概要:帰ってきて、すぐに寝たいと思った時は、すぐ寝て、朝風呂に入る ・利点:朝から気分よく出かけられる。 ・欠点:寝坊すると汗まみれで行かねばならず最悪
JavaGenericsイラネ
>>64 正直、知らんかったので今調べたが、これはいい機能だ。
JavaGenericsはMetadataがあってやっと一人前だな。
新スレになってから急に静かになったね Java使うとタイプ量が増えてるような気がしない? クラス名長杉
>>66 入力支援ついてる開発環境は必須。
打つことがプログラミングじゃない。
68 :
デフォルトの名無しさん :03/10/05 10:25
>>66 1が新たな晒しネタ探してこんのが悪い。
最近つまらん。
期待をこめてageておく。
>>66 タイプの時間なぞ思考の時間に比べたら屁でもない
>>67 テキストエディタでもプログラミングできるようにしておけよ。
まあJavaらーを続ける限りはEclipseだけでいいのかもしれんがな。
ところで、
屁でもない
屁も出ない
ってどっちが正しいんだろう?
屁も出ないなんて、使わないだろ
多態を教えるのが難しくて困る もしかして俺が分かってないのかもしれんが
>>71 俺もこの前客に聞かれて困ったよ。
動物クラスに鳴くというメソッドがあるとします。
動物クラスを継承した犬クラスでは、
鳴くメソッドはわんわんというように実装します。
動物クラスを継承したねこクラスでは、
鳴くメソッドはにゃにゃというように実装します。
動物クラスの利用者は、動物クラスの変数に
実際にどのクラスのオブジェクトが入っているのか
知らなくても、その変数の鳴くメソッドを呼び出せば、
実際に実装しているオブジェクトの鳴くメソッドが呼び出されます。
このように、オブジェクトの基底クラスやインターフェースの
メソッドを呼び出せば、実際に実装しているメソッドが
呼び出される仕組みを多態性といいます。
なんて説明しちゃったけど、また動物かよって突っ込まれる罠。
73 :
デフォルトの名無しさん :03/10/07 08:54
多態→個性 でいいんじゃな〜い?
>>72 犬クラスでは、 鳴くメソッドはわんわんというように実装します。
ねこクラスでは、 鳴くメソッドはにゃにゃというように実装します。
あるオブジェクトに対して鳴くメソッドを呼び出したとき、
オブジェクトのクラスが、
犬クラスだった場合はわんわん。
ねこクラスだった場合はにゃにゃ。
オブジェクトのクラスによったメソッドが
呼び出される仕組み(?)を多態性といいます。
共通の基底クラス、インターフェースに鳴くメソッドを定義するのは、
それらから継承したクラスに鳴くメソッドが実装されていることを保証し
犬クラス、ねこクラスを同一に扱えることを保証するためです。
多態性と継承を区別して説明してから、それらの連携について
説明した方が混乱しないんじゃないかと思ってる。
実際に試したわけではないが。
>>73 個性とはちょと違うと思う
犬と猫の鳴き声が違うのは多態で
ポチとシロの色が違うのは個性
うむ、個性はプロパティ。
解凍ソフトなんかを引き合いに出したほうが良いのでは?
鳴かない動物はどう実装すればいいんだろうか。
throw new NotImplementedException("この動物は鳴きません");
>>75-76 ムツゴロウ曰く「いやーウシガエルの鳴き声はとても個性的なんですねー。」
プロパティは属性(データ、情報)
>>79 それは「鳴かない」のではなく、「鳴こうとするとエラーになる」だ。
動物クラス←鳴く動物クラス
↑
鳴かない動物クラス
要件によっては
>>79 でも充分だけど、厳密にはクラス階層を深くするしかない。
82 :
デフォルトの名無しさん :03/10/08 00:03
83 :
デフォルトの名無しさん :03/10/08 00:08
test
84 :
デフォルトの名無しさん :03/10/08 00:10
ホームページ作るなら下記を当たれ!part3(月額1000円以下)
----------------------------------------------------------------
■以下の条件でレンタルサーバーを検索(レンタルサーバーナビ)
http://www.server-navi.com/ ○月額費用1000円以下
○ディスク容量100MB
○独自ドメイン利用可
該当するプランは下記4件
----------------------------------------------------------------
◆◆◆ 価格&サーバースペック総合評価 ◆◆◆
----------------------------------------------------------------
★1位 :ウエブスピード(
http://www.webspeed.ne.jp )
価格【777円】・スペック『CPU: Pentium4 2.4Ghz、1GBメモリ』
----------------------------------------------------------------
★2位 :フューチャリズム(
http://www.futurism.ws/server )
価格【600円】・スペック『CPU: Pentium3 800MHz 128MBメモリ』
----------------------------------------------------------------
★3位 :キーパーク(
http://www.keypark.net )
価格【800円】・スペック『CPU: Intel Celeron 1.3GHz 512MBメモリ』
----------------------------------------------------------------
★4位 :イーシーテクノロジー(
http://www.ectec.jp )
価格【980円】・スペック『CPU: Pentium4 2.0Ghz、1GBメモリ』
-------------------------------------------------------------------
オブジェクト指向を一から勉強できるサイトをご存知ないでしょうか?
追加 ぐぐったけど、どのサイトも難しくて・・・
図書館行けよ
趣味のためにお金を使うのは当然 仕事のスキルアップの為ならなおさら
了解しましたl|li_| ̄|○il|li
2,3000円の自己投資も出来ないんなら、プログラミングやめたほうがいいよ。
オブジェクト指向的に考えた場合の、入力処理クラス(=ユーザのインプットを処理する)と 問題領域の関係がさっぱり分かりません。 申し訳ないのですが、ひとつWindows限定で、具体的な良い関連づけ方法なり フレームワークなりを教えて頂けないでしょうか。 ちなみに今までのダメダメな、我が試行例は以下の通りです。
●状態とイベント(WM_xxx)によってswitch、ひたすら適当なオブジェクトのメソッドを呼ぶ 入力処理クラスが知るべきオブジェクトが大杉。依存関係強すぎ。 プロシージャ関数もひたすら膨大になる。入力処理クラスが 複数(ツールウィンドウなど)あると、オブジェクトのエイリアスまで必要になってしまう。 ●上記のにStateパターン導入 プロシージャ関数が小さくなり、流れも見やすくなったが、 個々のState毎に呼び出すオブジェクトのエイリアスを持たなければだったり、 あるいは呼び出すオブジェクトを取得しなければだったりで、依存関係更に悪化。 ●イベントをオブジェクトにして、変化が有り次第Observerどもに通達 依存関係は最小になり、単発イベントを処理するのには最高だったが 複数のイベントや全体的な状態が絡むとわけワカメ。流れが分かりづらい。 (例、Aモードで、Xキーが押されている間は、WM_MOUSEMOVEでウィンドウ移動…などなど)
>>95 モデルビューコントローラか、解読(´Д⊂
いえ、実は
>>94 最後のは、そんな感じを目指したのですが
なんかあんまり良い感じじゃなくて(わかって無いせいだと思うのですが)。
具体的にWindowsでどうやればいいんだろ…。
よく解読できたな
解読まで30分か・・・まだまだだな
システムとの兼ね合いは、「プログラミングの実態からかけ
離れた概念説明
>>2 」の結果、最初に躓くところではあるな
こうしろっていう説明もむずい
>>98 説明もむずいですか…。うー、ひとつでもWindowsMessageがらみの
シーケンス図なんか見られたら、それで成仏するのですが。
>>99 うーん、むしろ読みたいのはその先というか…。Windowsをクラス化
したいとかではなく、イベント発生後の話が知りたかったのですが…。
長くなってすいません。難しそうですし帰宅時間なので、この辺で失礼します。
レス下さった方々、ありがとうございました。
>>93 よく読めましたね。
外人が言ってるのを聞くと
>>95 みたいな感じだと思ったんだけど
即答されるとは思わなかった。
102 :
デフォルトの名無しさん :03/10/08 21:58
ド素人なので逆に教えて欲しいのですが、3番目の方法で何故だめなんですか? Observer が状態を持っていれば件の情况も簡単に解決できるように思うんですが。
パラダイムシフト!
パラサイトイブ!
パラパラ!
パパ!
>>102 全体を決定するモードとかを各オブザーバがバラバラに管理とかしてたら
無駄じゃん。
>>107 なら全体の状態を持つpublic な observerも置いとけば丸くOKな気がするんですが。
こーゆー意見が夜遅くにならないとでてこないのは一体なにを示しているのだろうか
Java使いとSmalltalkerしかいないとか…俺もそうだが。
111 :
デフォルトの名無しさん :03/10/09 00:09
そらぁ状態でしょう。他に必要なもんあるか?
>>112 ええと、つまり状態を保持してるメンバを公開しちゃうの?
誰か、
>>5 の内容がオブジェクト指向と何の関係があるのか、説明してもらえませんか?
GoFのデザパタ本によるとObserverとMediatorは競合する パターンなんだそうな。 Observerはオブジェクト同士の通信を分散させるが見通しは悪くなりがち。 Mediatorは見通しが良い代わりにMediator自身の再利用性は低くなる、らしい。 >>全体の状態を持つpublic な observer というのは、つまりMediatorのことなのでは?
正しくそのとおり。けど巧い解決方法ではあるよね。
>>116 ですね。
>>93 がオブジェクト同士の関連が複雑で管理が難しいと感じているなら
Mediatorに切り替えた方がいいのかもしれない。
>>115 わざわざサンクス、なるほどMediatorの事を言いたかったのか
しかしObserverパターンの不満解消に
>>102 Mediatorパターンを持って来ちゃ
>>108 、本末転倒な気がするが・・・
>>94 も前二つはMediatorパターンと言えないこともないね
問題点も一緒だ(クラスの肥大化、依存関係密)
テンプレートみたいになるわけで、各アクション毎に対応クラスがある ようなイメージで結構キレイに整理可能なんじゃないかな? 動的にふやすこともできるし。
オブジェクト指向を説明するのに、実装で説明するのはいくないなぁ・
Mediatorは一点で管理するのでMediator以外のオブジェクトの 結合度は低く保たれるらしいので1、2よりも依存の程度は低いんじゃ なかろうか。 どうなんでしょう。
昔から言うでしょ。道具に使われるな、道具を使いこなせ、って
>>122 オブ厨とオブジェクト使いは別モノです。気にしないように。
つくづく思うんだが、オブジェクトにかぎらずこの手の思想ってのは諸刃の剣だな、と。 馬鹿が手にすると逆に思考の自由度を阻害された「でんしゃはかせ」が誕生してしまう。 しかもそいつはそのことに中々気付かない。 オブジェクト使い、ではないこの手のオブジェクト厨房の存在が、妙なオブジェクト 否定派(これはこれで馬鹿なんだが)を生む原因なわけなんだろうな。
「でんしゃはかせ」ってのがよく分からない……
>>126 池沼だけど東海道線の駅名が全部言えるってやつじゃないの?
すごい分かりづらいな しかもそいつはそのことに中々気付かない。
理解できない程自分が馬鹿ってのはおそろしい。 しかもそいつはそのことに中々気付かない。
概念の習得ってのは暗記とはまったく別物だからな。 そこを理解していないで鸚鵡返しのように 「オブジェクト指向の次はエージェント指向だ!」 とか言う馬鹿が出てくるから困る。 俺的にはオブジェクト指向の次の技術ってのは 世の中に氾濫するなんちゃら指向ではなくて XPのようなものだとおもうのだが
XPって技術なんだ、フーン
個人の暗黙知を形式知として誰にでも使えるようにする、 技術とはそういうものでしょう。 プロジェクトマネジメント技術のひとつという扱いになるんじゃないの。
へー、XPってプロジェクトマネジメント技術だったんだ。
プラクティスちゃんと嫁。
XPはソフトウェア開発プロセスのひとつであって、マネジメントだけじゃないよ。
『恋はオブジェクト指向』 風林火山漢声合 javaco.org/archive/deadlock.mp3 当スレのテーマソングにどうぞ
>>136 聞いてみたけど何て言ってんのか判らんかった。
ヘタだというのは判ったけど。
>>1 リンゴとか犬とかの例のような、インド哲学みたいな対象に属性を見出すような
考え方は、そういうデザインをしたりされたりすることが希だから役に立たない。
まず一番最初に説明しなきゃならないのは、名前というものについてとか、
名前をつけるという行為についてだろう。オブジェクト指向に止まらず
デザインの根源的な要はプログラムの各々のブロックがどういう外づらを
もつか、他所に対してどういう見せかたをさせるか、にあるからだ。
>>139 なるほど! インド哲学でなく中国哲学こそオブジェクト指向の神髄なのですね!
>>140 インドか中国か西洋かはわからんけど、
哲学っぽいなあと前から思ってた。
犬ワン猫ニャーのたとえも、結局は犬や猫がどういう構成要素でできてるか という考え方に誘導してしまっていてよくない。 オブジェクト指向を理解する上でまず考えなくちゃいけないのは、 そいつがどうできてるかじゃなくて、そいつとこいつの関係、 そいつはこいつをどう見るのか、どう認識するか、ということだ。 この例でいえば、鳴き声を出させる何か、鳴き声をワンだとかニャーだとか認識する何かと、 その間にある関係に着目しなくちゃいけない。たとえば人間が猫の鳴き声を聞いた時と ネズミが猫の鳴き声を聞いた時は感じ方がちがうだろうとか、 海外では「ニャー」じゃなく「ミュウ」と鳴いてると考えられてるだとか。
144 :
デフォルトの名無しさん :03/10/20 17:00
age
>>1 オブジェクト指向の説明ねぇ・・・。
そういえばCの概念で無理やり教えてる人が
いたな。誰だったかな。
146 :
デフォルトの名無しさん :03/10/20 20:01
いや、吉田は糞だろ実際。 ヤツのOO知識は全般に古臭いうえ聞きかじりで、 しかもろくすっぽ理解してないのが丸分かりだ。 んでもってそれで説教をするから恐れ入る。 素直にPascalやCの世界にいれば良かったのに。
吉田さんがクソ? OOの本は読んでないが、面白いと思うが。 むしろ、「1週間で〜」とか「はじめて〜」よりは格段に上だと思うが。
149 :
デフォルトの名無しさん :03/10/20 21:11
150 :
デフォルトの名無しさん :03/10/20 21:15
>>145 Cプログラマのために本書いてる人はそうなるんじゃないの?
>148 読んでもいない吉田の本を他著者の本より上だと言える 藻前に漏れは感動しているよ。
152 :
デフォルトの名無しさん :03/10/20 23:00
2ちゃんねらーの書いた本なんて読みたくない
155 :
デフォルトの名無しさん :03/10/20 23:17
>>151 禿。いずれにせよ、いまさら読んでもしょうがないよ、彼の本は。
最初に示すべきなのはメリットじゃないかと
>>143 の原著は吉田じゃないよ
その本むかし読んだけど、読み物的なとこは良かったが
内容はあんまし面白くなかった
シンボルや言語が持つメリットとは何か?
オブジェクト指向による仕様分析やモデリング。 オブジェクト指向言語を用いて、オブジェクト指向による仕様分析やモデリングを コンピュータ上に実現する。 この2つの区別はついてるの? オブジェクト指向を学ばせたいなら、分析やモデリングを教えれ。 プログラムなんて分析やモデリングの結果をプログラム言語で写しとるだけなんだからな。
吉田のOO批判って、あまりにバカバカしいよ。 C++のストリームクラスは書式指定が使いにくい。 実用に即してない。 だからOOはダメ。 みたいな感じで、ナンクセつけてるとしか思えない論理の飛躍。
俺個人の、OO実装例に対する解釈。 「関数の構造体」 担当教授が述べるOOの利点。 「情報隠蔽」
OOを全く勘違いしてるな
要するに教える方も手際が悪くて、教えられてる方はそこからどうでもいい事ばかり身に付けたって 罠かね?
>>160 前橋くんにゆうたれ。概念モデルしってりゃ、「憂鬱」
のインベーダの件をあんなに皮肉っぽく批判しねえよ。
167 :
デフォルトの名無しさん :03/10/21 23:16
>>165 ハッシーのHPにいけば書いてあったような。
>>むにゅうさん >仕様分析やモデリングをコンピュータ上に実現する。 →分析、モデリングの結果をコンピュータ上に実現する。 じゃないの? つーか、「仕様分析」なんて言葉あるの? 「要求分析」じゃない?
>>169 スマソ。勉強になったYo!
>分析やモデリングが重要ということが
>言いたかっただけなので。
禿。
何が重要かなんてのはどうでもいいから オヤジ連中がますます混乱するようなあたらしいおもしろい喩えを提案してくれ
政治ネタで板違いかと悩んだが、 政治板で書いても理解されんだろうからここで。 人間の組織もオブジェクト指向で編成すればいいと思わんか? 特に、役所。
おとうさん おとうさん ぼくのおとうさん かいしゃへ いくと かいしゃいん しごとを するとき かちょうさん しょくどう はいると おきゃくさん おとうさん おとうさん ぼくのおとうさん はいしゃに いくと かんじゃさん あるいていると つうこうにん おとうさん おとうさん ぼくのおとうさん がっこう いけば せいとさん でんしゃに のると つうきんきゃく おとうさん おとうさん うちにかえると ぼくのおとうさん
>174 つまり人間はクラス定義でなくロール定義で 実装しろということだわな。
ところで、 オブジェクト指向の概念についてですが、 メソッドのオーバーロードとかも 一応多態の1つに数えて良いんですよね。
176 :
デフォルトの名無しさん :03/10/23 03:07
age
>>172 まあ、組織というのはDbCであるわけだが。
構造体でも表現できるような書き方になったけど、こういうの書いてみた。ただ、論理的かはわからない。 論理的に分解するなら、 オブジェクトは、オブジェクトである為の条件を満たしている。 だから、オブジェクトと呼ぶ事ができる。 さて、貴方が、目で見て物だと思えるものは、現在の状態を貴方にアピールしながらも、 実はその状態を永久的に、貴方が自らの視界を変更するまで、延々と保持している。 このパラメータを数字で表すためにはいくつの変数を持たせると保存できるか考えてみた事はあるだろうか。 これが、オブジェクトが保持するデータである。 しかし、データを指してオブジェクトとは、言い難い。 それは、何を指しているかは対象のオブジェクト以外は感知しないからだ。 そこで、そのパラメータに意味をつけてみようか。 石を例にしてみよう。 この石一個をとってもパラメータは実に豊富だ。 地球上の座標。硬度。材質。大きさ。まだまだある。 これを一塊で持っているから、物と言える。 さらに、物がほしいときはそれにつけられた名前を呼べば識別して手に入れる事ができる。 これが、オブジェクトであることの利点だ。そして、最低の条件だ。 以上。 屁理屈かも・・・。
2chではえらそーなこと言っているが 現実はラップクラス作ってるだけなんだろ、お前ら。
180 :
デフォルトの名無しさん :03/10/23 07:50
らっぷくらすってなんすか?
ひとりでアプリつくってんのに 情報隠蔽も抽象化も糞もあるかっての。ぼけ。
YO!!YO!!2chではえらそーなこと言っているがYO!! 現実はラップクラス作ってるだけなんだろ、お前らYO!!
>>182 電子レンジでも使えるものを作っています。
ぶっちゃけお前ら自己満足にふけってるだけとちゃうの。 自分の書いたコードでエクスタシーを感じてオナニふけってるんとちゃうの。
>>184 ま、それでもいいんじゃね?
ついでに自分のコード他人に曝すとこまで逝ってくれるとありがたいね。いろんな意味で。
基本的に継承よりインターフェイス使ってるんですが、それ晒せばいいですか。
最近継承があんまり勧められていないような気がするけど、何で ?
ぶっちゃけ、ちゃんとした抽象クラスを 作れる力量のある設計者が少ない。 そうでなく漫然とサブクラス化するのは 弊害の方が大きい。ってとこじゃないのかな。
継承を使いこなすのは(特に実装の継承)難しいので、 よりやりやすいコンポジションやインターフェース継承を使うほうが難易度が低いということ
>>187 前橋くんに笑われる=前橋くんよりもオブジェクト指向
を理解している。
つーか、前橋くんなんて人の書籍を理路整然とではなく感情的に
批判してる時点で低俗まるだし。
194 :
デフォルトの名無しさん :03/10/24 00:13
漏れはけっこう178すきー。 ちゅーか、実装オタとモデルオタじゃ話が通人。
>>189 継承が文脈においてどういう意味合いを持つかを無視して、
単にデフォルトの実装が簡単に提供できるという機能を利用したい
だけの理由で、安易に使う馬鹿がいるから。
話によると、この継承を使えばクラスの機能を後で使う側の都合で勝手に
拡張して使えるので再利用がしやすい、
よってオブジェクト指向マンセーJavaマンセーということらしい。
頼むから機能を後づけで増やすために継承を使わないでください(´・ω・`)
藻舞いを藻舞い型のインスタンスとして受けた以上は
藻舞いの継承元や継承元々のことなんか知りたくもないってんじゃはげ。
196 :
デフォルトの名無しさん :03/10/24 00:50
継承は、多態を利用しないなら、プログラム的には大抵意味がないよね。 意味がある場合としては、継承もとのprotectedメソッドを触りたい時くらいかな。 オイオイSEさんよぉ、構造体みたいなそのクラスがなんで4階層の継承ツリーにな ってんのよ?おまえさん、クラス継承を納品用の書類に書きたかっただけちゃう んか?あんたの会社では図がカッコイイと評価が上がるのか? こんな感じの馬鹿SEばっかり相手にしています、最近。ナケル。
is-a関係ないのに継承使うなボォケ!
前橋ってだれれつか?
評判色々、thx。 好色を示してくれたのはちょっとうれしいな。 継承は、核になるデータを保持してる構造体を継承して、ツールキットぶら下げる感じで使う事が多いなー。 データ流すときも構造体を流し合う。で、以降の継承は純粋に機能追加とかばっか。 趣味グラマだから何でもありって言えばそうなんだけど。 ところで、 前橋って人は批判できるほどプログラムを整理して書けるお方なのですか??
>>199 ゼロから勉強しなおしなさい。前橋より性質が悪い。
>>前橋
前スレでさらされたイタい人。
>>178 は説明のための説明でしょ。オブジェクト指向をしらん人間にはチンプンカンプン。
オブジェクト指向モデルがわかる人ってほんと すくないんだねえ。実装厨ばっかり。
オブジェクトについてはもういいですから
>>173 の歌詞についての解説や自分の考えを述べてください。
おとうさん おとうさん ぼくのおとうさん よるになったら ごしゅじんさま
>>199 多分無理だろ。根っからのC厨だからな。
関係ないが山崎氏のyz2のソースもOOじゃないと思うのだがどうよ?
ぶっちゃけお前ら自己満足にふけってるだけとちゃうの。 自分の書いたコードでエクスタシーを感じてオナニふけってるんとちゃうの。
オブジェクト指向は実用的だよ。 だまされたと思ってやってみなされ。本当に役に立つから
>206 それがプログラマにあるべき姿だ。
おくさん おくさん ぼくのおくさん よるになったら じょおうさま おくさん おくさん ぼくのおくさん あさになったら いえをでた おくさん おくさん ぼくのおくさん しゃしんの なかで わらってる
>>178 >さらに、物がほしいときはそれにつけられた名前を呼べば識別して手に入れる事ができる。
>これが、オブジェクトであることの利点だ。そして、最低の条件だ。
ここらへんは、端折り過ぎな感じがするなぁ。
いくらかいてもきりが無いのかもしれんが。
>>195 漏れの周りの例では、単にクラスAからクラスBの機能を使いたいがために、
クラスBをクラスAが継承していたYO!
Mix-inじゃねーの
>>211 漏れが見たのは継承による別の実装の利用で、AとBの継承関係は必要ない。
前橋って hoge(a, b); a.hoge(b); は書き方が違うだけといってるやつだろ? これ読んだとき、まじでワロタ。
>>213 C ⇒ C++ の流れで説明する時には、それほど悪くないと思うが。
説明って、相手の能力にあわせてするもんだろ?
コンセプトが違うので、そういう説明しても結局は OOを理解できないとおもわれ。
>>213 実際 a.b(c)は b(a,c)のシンタックスシュガーに過ぎない言語もある。笑われるのはおまえの方かと。
言語の実装レベルの話に拘泥しているのが不毛だってことでそ。
逆に、Javaくらいのオブジェクト指向言語だと、 ちょっとしたサブルーチンが欲しい場合、 hoge(a, b) 的なスタティックメソッドで誤魔化すことも多いじゃん? 実用上は、構文糖だと思ってても、それなりにはやっていける。
>>218 そうそう。前橋って実装厨、C厨房だもんね。モデリングの
脳みそはもってない。
プリュッ!!!
ちゃんと使用通りにに作成しているのに、 どこからどう見ても間違ってる部分なんて無いのに、 なぜか正常に処理されない。 (゚Д゚)ハァ?フレームワークにバグ? もうね、アホ(略
だからなに
前橋の自作自演が見られるスレですか?そうですか。
前橋みたいな帝脳どうでもいいやん。
>223 そんなくらいで切れててよくプログラマやってられるな
228 :
デフォルトの名無しさん :03/10/26 00:03
自作自演age
(´-`).。oO(しかし、こうまで晒され続けるとは……)
さすがに本でOOを語るとなるとSmalltalkやってないと語れんわな・・・
説明の説明といわれたり、端折りすぎと言われたり。
なるべく現実に即した説明(捕らえ方)をひねり出してみたものの、やはり巧くはいかないものですね。
もっと精進しないと。
>>前橋と言うお方について、
シンタックスシュガーといわれる部分にも、そうなった経緯と意味がちゃんとあると思います。
前橋と言うお方は何だか極端ですね。この際、砂糖を味わってみるのも一興かもしれませんよ。
>>205 彼のHPでソースを落としてみました。(署名は2002/02/21)
yz2の部分は肝なので、読みにくくしているのかもしれません。説明を読んでも、互換性を切るようなことが書かれていますし。(もしくわ、クラス指向とか??
あと、インターフェースなどは適当なモデルにそった設計がされているようなので、無学な僕が責める事ができるほどの物ではないと思います。
もしかしたら、オープンソースにしたのも何らかの意図があるのかもしれませんよ。全部推測ですが。
では、そろそろ名無しになります。
オーマイガー。昔建てたスレが2とかなって、びっくり。前のスレ200くらいでDT落ちじゃなかったのか?? 知らんうちに息を吹き返して盛り上がっていたようだ。 ちょっとlog読んでくるぜ。
234 :
デフォルトの名無しさん :03/10/27 19:59
実際にコーディングして思うことは、 どれくらいの人間がその入門書に書いてある、りんごとかフルーツの継承とかそういう卑近な例を頭に思い浮かべながらやってんだろう? ということ。 確かに大規模なプロジェクトでモデリングする際はそういうアーティスティックな例みたいなものがパワーを発揮するのかもしれないけど、 普通は、そんな日常生活の動詞みたいな事を思い浮かべながらクラスの設計とかしない。 というかそんな人いる? できれば、ついでにこれも最初にコピペしてほしかったな。
235 :
デフォルトの名無しさん :03/10/27 20:00
抽象的な理論まで昇華させるのは、その概念に十分慣れてからで良い。 そもそも、君の言うとおり、OOの創始者もそんなイルカとかロボットの動詞名詞とかから始めたわけがない、と俺は思っている。 それを入門と謳うものが初心者にありがたそうに、その昇華した後の概念を説明する。 さらにこれも。
メタファはとても有用だと思う。
237 :
デフォルトの名無しさん :03/10/27 21:54
OOが得意なところ シュミレーション 大規模開発 クラスライブラリ構築 GUI ネットーワーク これをはっきり初心者に言うべきだよな
熱湯ワークワラタ
で、趣味レーションときたか。
240 :
デフォルトの名無しさん :03/10/28 01:38
趣味、熱湯、げきわろた。 ところでyz2ってなんれつか?
241 :
デフォルトの名無しさん :03/10/28 01:51
技術者、ライター、人間性において、 結城氏> > > > > > > > > > > > > > > > > >前橋氏 でよろしいか?
>>242 結城さんはクリスチャンやで。いや、それだけやけど。
【1:5】シュミレーションの方が英語発音に近い 1 名前:名無しさん@3周年 03/10/26 16:34 sという発音は日本語のシやスよりも息を強調した感じの音になっている。 ネイティブがしゃべっているのを良く聞くとシャとかシュとかいう音が目立つのに気がつくだろう。 次にiの発音だが、これはイではない。イとウの中間というのが近いだろう。 simulateのsiはスィとシュの中間であるというのが最も正確であると思われる。 総合的に判断するとsiをローマ字読みでシと読むのは、むしろ日本語英語である。 シュミレーションの方がベター。 終わり。 2 名前:名無しさん@3周年 :03/10/26 16:44 言い忘れたよ。 次に、simulateのuだ。これもウと読むのは同様に、日本語読みだ。 ウとアとイの中間、アクセントの位置にこないこの種の子音は非常にあいまいな音になる。 だから、シュマレートでもシュミレートでもシュムレートでも、どれでも違うのは似たりよったり。 が、mulaと次に'lェイ'と音が続くために、このあいまいな音がミュではなく、ミェという感じになる。 よってシュミェレーションとなるのが普通。ミュよりもミでよい。
正直、どっちもどっちなんだよ。 趣味って馬鹿にしてシミュレーションと発音する奴もネイティブから聞くと、ヘッって感じで終了。
んなどーでもいいことにレスしてんじゃねーよ元スレ1よ それよりもなんか過去レス読んでコメントとかはねーのか?
248 :
デフォルトの名無しさん :03/10/28 13:40
そもそも英語の発音をカタカナで表現することに無理がある。 simulationって書けばいい罠
趣味レーションの言い訳はできても熱湯ワークの言い訳はできないな
251 :
デフォルトの名無しさん :03/10/28 15:26
オマエラ頭悪すぎ 現実世界の仕組みを概念化したのがオブジェクト指向そのものなのに 簡単な哺乳類やフルーツのたとえで理解できないのは単なる知障としか思えない 現実世界の事象ですら理解できない連中がプログラミングなどとは一万年早いな
>>245 これ信じると馬鹿を見そうだが(笑)
まあsimulationって書けばボロは出ないな。
まあシミュレーションはまず国語辞典に載ってる日本語(外来語由来)だ。 シュミ〜は無い。
254 :
デフォルトの名無しさん :03/10/28 16:10
>>251 ここにも、まだ概念化とか言ってるバカいるね(w
なんでそうおまいら何かにつけ人を馬鹿にしたがるわけ?
なんでそうおまいらは何かにつけ馬鹿なレスに釣られるわけ?
> 次にiの発音だが、これはイではない。イとウの中間というのが近いだろう。 イとエの間違いだろw
258 :
デフォルトの名無しさん :03/10/28 22:29
おぶじぇくとしこうってなんですか?
例えば見るものと見られるもの、使うものと使われるもの、のような 主客の関係性を分析対象等に対して見出したり、そういう枠にはめてくことです。 根源的なところでは処理単位を適当な大きさに分けるための一手法に過ぎないです。 処理単位を人間の頭でも管理可能なだけの適当な大きさに分けるにあたり、 それぞれの単位の間に設ける関係、お互い単位の間で行われるやりとり、 オブジェクト指向はそれらを決定する際の一つの指針に過ぎません。 間違っても「もの」という概念をコードとして表現することではありません。
(広義の意味での)情報ってさ、再利用性っていうのがかなり重要なんだよ。 要は情報を作る時、いかに既存の情報を使い効率よく美しく手が抜けるかどうか。 それをかなえるためにオブジェクト指向というのがあるんだな。もちろん、別の手法もあるが。 #Javaは再利用性においてはかなり良い言語。
オブジェクト指向と再利用は関係ないだろ
262 :
デフォルトの名無しさん :03/10/29 01:43
[現実世界の仕組みを概念化したのがオブジェクト指向]
これが諸悪の根源だな。
実際は、プログラミング言語の発展の過程で、羽陽曲折があり、オブジェクト指向という概念にたどり着いた。
最初っから、現実世界の仕組み、ものって概念をコーディング手法にいかせばすっきりするよ!みたいな感じじゃないだろうね。
あくまで、「結果論」として、なるほど、現実世界のものと対応しているという見方ができるって事だろう。
しかし、この辺はまあ、「おもしろい」話なので、よく引き合いに出される。そして、おもしろいし、現実、身近な例だったら、初心者にも受けが良くて、理解も早いだろう!と勘違いした人が多く出た、またそんな風潮ができあがってしまったのだろう。
>>251 をはじめとする、このスレに忘れた頃に書き込む、俺はわかった、わからん奴はアホ、パターンは、このオブジェクト=モノ・ロジックでワカッタ!のではなくて、
最初からコーディングの知識経験のバックグラウンドがあり、その延長で自分からモノロジックの方へ逆アプローチできるから、それもそうだなって程度で思った程度に実は過ぎない。
俺は家庭教師とか塾の講師の経験があるが、このイルカとかりんごの例でオブジェクト指向を説明したら、のみこみの早いやつも含め、生徒全員がわかりませんって顔するのは容易に想像できる。
わからん奴はわからん奴なりに、その説明がどっかおかしいって見抜いている場合も多い。納得できないから理解もできないというパターンは結構ある。このオブジェクト指向の説明はそれ。
おれはJavaScriptから入ったので疑問の余地も無く理解できたが。
あっそうですか。 オマエがなんと言おうと、俺はポリモフィズムの説明に明日からもニャンニャンとワンワンのたとえ話を使うよ。
どう考えてもプログラマに対してはニャンニャンとワンワンより、双方向リストと可変長配列の方がわかりやすいと思うが。
266 :
デフォルトの名無しさん :03/10/29 01:59
ニャンニャンワンワンなど、説明する側の自己満足にすぎない。 説明される側にとっては、いらん想像力を駆使させられるはめになる。 ショートカットになる具体例はいいが、そういうのはいたずらに問題の抽象度をあげるだけ。
ポリモフィズムの説明と双方向リストと可変長配列となんの関係があんの?
おまえら「オブジェクト指向」に騙されてるぞ。 「オブジェクト指向」と一括りにされて、うやむやにされた技術は、 実はほとんどが「オブジェクト指向」とは全く関係ないものばかりだ。 俺達は「オブジェクト指向」という言葉に踊らされているのさ。
そうそう、オブジェクト指向が特に便利というわけじゃなく、 その周辺に用意されたものが、たまたまニーズに 合ってるだけでしかない。 オブジェクト指向は「狼の皮を被った羊」なのだ。
現実の物体のみの説明で満足してしまうと、デザパタみたいな話につなげにくいかも。 ただ…… 抽象化された説明が理解できるのは、いつも抽象的な情報に触れている人間だけ。 素人には、ニャン2ワン2のほうがわかりやすい。 「説明は、相手のレベルに合わせろ」 ちなみに、自分の場合は C++ の文字列クラスでオブジェクト指向を知った。 (basic_stringではなく、もっと簡単なchar配列ラッパ)
デザパタは関係ない
多態とメッセージパッシングだけ教えりゃいいんじゃねーの
>>271 関係ないっちゅーか、普遍的な話だから「OOに限った話じゃない」ってことじゃないの?
犬猫の様な例えだと漠然としすぎて、 そこに存在している筈のプロトコルにまで話を持っていきづらい。
276 :
デフォルトの名無しさん :03/10/29 02:17
元すれ1が書いてたように、ファイルとかアイコンとかPCの例で説明すれば、次につながりやすいし、イメージも近い。 なにも、わざわざ、動物の鳴き声なんて、どうでもカテゴライズできてしまうものをひっぱりだすことはない。 こういう行動は、現実のモノっていうドグマに侵されているから、わざわざそういう話をしたがるのではないだろうか?
OO云々以前に、肉球萌えとか、話がややこしくなるよな
基底クラスを動物とかにしちゃうと 分類でいらん手間が掛かる。
>>273 ハァ?オマエSTLのドコにポリモフィズム使われてるとおもってんの?
双方向リストと可変長配列ってことはstreamじゃないよな?listとvectorだよな?
仮想関数一つも持ってないぞ?わかんないなら黙ってろよ?
>>280 ちゃんとポリモーフィズムの勉強してからきてねw
>>281 ハァ?マジデ?調べなおすけどさぁ
これで静的な多々居とかぬかしたらぬっころすぞボケ
ぬっころす
STLのコンテナはテンプレートでインタフェースだけ合わせたって 感じだけど。クラスの多態とはまた違う。関数型寄り。
JavaのArrayListとVectorが両方ともCollectionを実装してるとかね
ニャンニャンとワンワンが両方肉球を実装しているようにか
ミドリムシクラスは生物クラスを継承し動物インターフェイスと植物インターフェイスを実装します。
289 :
デフォルトの名無しさん :03/10/29 17:26
なんか、学校の先生にいたよな。本人にとってはすごい面白い分野で、すっごい楽しそうに話するんだけど、 俺らから見たらぜんぜん興味もわかないし、ちょっとのりがキモイなって授業。 で、理解なんぞぜんぜん進んでない、むしろ無駄な時間を費やしているってのが、みんなの心の中なんだけど、本人はどうだ、面白い説明だろ!って悦に入っている。 そんな感じ。
<━━━━━━━━> >━━━━━━━━━━━━< こうすると下の棒の方が一見長く見えます。これが目の錯覚です。
>>289 こういうのを見ると、教える側にはエンターテイナー的要素もないといかんよなーって思う。
説明できない=理解できてないという観点から見れば、 誰もオブジェクト指向を理解できていないということでいいですか?
とてもユニークな観点ですねw
まあ、モノだ!っていう人はそうだろうし。同じような人を再生産するんだろうね。 繰り返しになるが、俺が最初にオブジェクト指向らしき概念に触れたのは、雑誌のMSオフィスの埋め込みなんとかっていう特集だった。 あるユーザーの作業ファイルがあって、それを場合によってWORD使ったり、EXCEL使ったり、POWERPOINT使ったり、いろいろする。 従来の環境では、まず個別にアプリケーションを立ち上げて、ファイル選択開く、作業、保存終了、 そして別のアプリケーションを立ち上げ、同じことの繰り返しという流れだった。 しかし新しい環境では、作業ファイルは開きっぱなしで、それを中心にやりたい作業に応じて臨機応変に「関連アプリケーション」が随時立ち上がって適当な作業がシームレスに進行するっていうものだった。 これを例で図式化したものが、デスク上の中央に紙があり、その周りにペンとか計算機とか、はさみとかが整理されて、いつでも使えるように準備されている。 以前までは、まず道具を手にとり、それから紙をファイルの中から選び出す、ひとつの作業が終わると、またファイルに戻さなければならないって感じだった。 非常に感銘を受けたね。まあこれがもとでアイコン右クリックの話をしたわけだが。 データ主体、機能がそれに付随というOOの概念のメリットがよくわかる例だと思う。 コーディングにおいても簡単に応用できる概念だと思う。 しかし動物ってのは何なんだろうね?
296 :
デフォルトの名無しさん :03/10/29 19:15
やっぱり、おぶじぇくとしこうがわかりません。
297 :
デフォルトの名無しさん :03/10/29 19:21
>>296 ●がんばりましょう
かんじのよみかきを、まずさいしょにべんきょうしましょう。
まあ、上記の文房具と紙の関係がどうコーディングへ応用されていくかという自分の理解だが、 DOSのコマンドで考えると、 コマンド<ファイル名><ファイル名><ファイル名> だったのが、 がファイル名.<コマンド><コマンド><コマンド> になった。これを関数(引数)とオブジェクト.メソッドと言い換えても同じ。 そういうのが本質にあって、その派生として、データの隠蔽とか、継承ってのが無いと現実的でないとかそういうのがある。 これが自分の理解の初歩っていうか基盤。
国がある その中に県がある その中に市がある その中に町がある その中に村がある その中に家がある その中に人がいる その中に物がある ∴[現実世界の仕組みを概念化したのがオブジェクト指向] = TRUE
=(⇔)と→←の使い分けができない奴がプログラムとか組んでいるんだね。
集合論の基礎、必要十分条件とか知らないとそんな厨なロジックになる。
∴
>>299 =FALSE
google検索キーワード: 現実世界 オブジェクト 害毒が世に撒き散らされています。
302 :
デフォルトの名無しさん :03/10/29 20:24
オブジェクト指向のJavaとC言語の違いがわかりません
「データやその集合を現実世界の「モノ」になぞらえた考え方であることから、「オブジェクト」指向と呼ばれる。 例えば、我々がテレビを操作する際には、テレビ内部でどのような回路が働いているかを理解する必要はない。ただテレビの操作方法だけを知っていれば、それでテレビを使うことができる。 すなわち、「テレビ」というオブジェクトは、自身(の内部を構成する電子回路)を動作させる手続きを知っており、それを利用するためには、(例えばリモコンで)適切なメッセージを与えるだけでよい。 このように、何らかの「データ」と、それを操作するための「メソッド」の組み合わせが「オブジェクト」である。」 こういった説明はしょっちゅう目にする。 多分内部変数、関数の隠蔽の事をさして、電子回路の仕組みがどうたら言ってんだろうけど、 すでに書いたように、こういうのはそのオブジェクト指向を実現する「ため」に必要な仕組みであって、オブジェクト指向によってもたらされた恩恵ではない。 だってさ、非OOの数学ライブラリーだって引数あたえたら関数の値が返ってくる。どういうロジックでどんな変数が使われているのかは知らない。 再利用性とか情報隠蔽とか継承とか、こういうのは一番最後に出てくる事柄でよくのに、用語の説明にOOってこれですよ、ってやってるのが多い。
>>303 コンポーネント指向ではそれで全ての説明が出来ているがな。
305 :
デフォルトの名無しさん :03/10/29 20:44
2chではえらそーなこと言っているが 現実は継承したstaticメンバ変数の使い方解らなくて 他人が書いたソース読んでるんだろ。お前ら。
勉強のためにー。
>>299 は集約(has a関係)になるんだよね?
aじゃないだろ
中華料理屋の注文とかさ、動物の鳴き声、テレビのスイッチ、なんでも良いけど、 こういうモノモノ説明ってさ、説明される側に妙に知識があって、ヘーそうですか、ではプロパティはどういうメタファーになるんでしょうか? って聞いてみたら、さっきまで調子良く説明していた奴が、一瞬うーんってなって、必死に創作活動開始するだろうね。 で、普段のコーディングとか設計で、いざ自分が悩んだときは、その自分が創作したような具体例など絶対脳裏にはよぎらない。なぜなら使えないから。 そんなんで初心者が理解できるはずもないな。
初心者はどんな説明でも理解できないんだよ。
>>309 普段のコーディングとか設計とメタファになんの関係があんだよし寝馬鹿
>>309 今目の前にコードがあるのにわざわざ例を思いつくバカはいないだろ。
たとえその例が実用的なものだったとしてもだ。
313 :
デフォルトの名無しさん :03/10/29 22:32
2chではえらそーなこと言っているが 現実は面倒な処理全てInterfaceして 他人に書かせてるんだろ。お前ら。
>>311 >>312 お前らバカバカってうざいな。まずこれが一点。
現実のコーディングと概念を説明する際のメタファがどうつながるかってのがこのスレの主題。(違うの?
>>1 )
よって君らはスレ違い。馬鹿っていいたいだけなら、最悪板でも行ってください。
オブゼクト指向を否定する事は世界の存在そのものを否定する事になるのだが
オブゼクトシコウハ カミニヨッテ ツクラレタ
スベテノ モノヨ ワガタナゴコロヘ
>オブゼクト カコイイ。
319 :
デフォルトの名無しさん :03/10/30 00:22
本を書く側になってかんがえてみる! 200ページで2000円前後とする。 本をパラパラ立読みしてイラストのないわかりにくい本を皆かうかな? とっつきやすそうな動物の絵があれば「この本を買えばすぐに理解できそう」 と思わせられて食いつきがいい。 こういう発想の転換を「水平志向(思考)」という。
320 :
デフォルトの名無しさん :03/10/30 00:26
YO!!YO!! 2chではえらそーなこと言っているが YO!! 現実はgrep一発で継承したコード探せなくて ぶち切れてるんだろ。お前ら。 YO!!
>>320 当たり。
Zガソダム、最終回辺りのカミーユがクワトロに向けたセリフの流用だと思う。
母さん!.お茶!(熱いの!) こんな感じ?
いいかんじじゃん。実装でOO語る奴に聞かせてやりたいもんだ。
325 :
デフォルトの名無しさん :03/10/30 06:27
それってモロ実装でOOかたってませんか?
326 :
デフォルトの名無しさん :03/10/30 12:44
既存のOO解説のほとんどがクソなのは、 本来OOとは問題に対する「解」なのであるから、OOの意義を理解するためには まずその(諸)問題について理解する必要があるのだが、その問題についての説明を スキップして、ただ機能主義的にOOについて説明しているから。 車で言えば、ウィンカーがどのような問題に対する解であるかを語らずに 「このレバーをトグルするとフェンダーにある黄色いランプが点滅する」みたいな 機能の説明しかしてないから。
328 :
デフォルトの名無しさん :03/10/30 16:17
>>327 OOは、そこいらにある「OO以外」の道具とは根本的にちがう、
そもそも道具じゃないんだから
だから教え方もちがうものにしろって話なんじゃないか。
329 :
デフォルトの名無しさん :03/10/30 18:48
>>326 同意。
いきなりモノだ。現実世界のモデルだ。だから優れていて便利なんですマンセーというような感じ。
俺は元スレの1の書き込みはとてもooの理解に役立つと思う。それに即した一連のレスも同様。 実際、この板でoo分からなかった人や実装レベルでしか把握してなかった人のなかには、なるほどと思った人も多いんじゃないかな?
331 :
オブゼクト指向にもの申す :03/10/30 20:32
2chではえらそーなこと言っているが 現実は仕様追加の度に多重継承したり Interfaceしてるんだろ。お前ら。
仕様変更の際に新しいinterfaceを提供するのは常識じゃなかろうか
神=完全 オブジェクト指向は神が作られた 現実世界はオブジェクト指向により構築された ∴オブジェクト指向=現実=完全=神
>>332 それはモデリングを怠った時の言い逃れじゃ
このスレはオブジェクション指向ですね。
どんな仕様変更にも対応できるモデリングは存在するのか?
そんなもん追求する前にものを作れよ 哲学やってんじゃなくて仕事なんだからさ
338 :
デフォルトの名無しさん :03/10/31 00:20
>>326 OOはソフトウェア危機という問題を打破するために使われます。
339 :
デフォルトの名無しさん :03/10/31 11:59
とにかく、このスレを見た人でOOを説明する立場にあれば、けしてモノ、現実のモデリングという事を前面に押し出して解説してはいけない。
C言語からC++になって一番うれしかったのはコンストラクタとデストラクタが出来てメモリ管理がだいぶ楽になったことです
341 :
デフォルトの名無しさん :03/11/02 03:01
本とか雑誌のオブジェクト指向の説明をあげてくれい。
>>341 本
△
┃
┃
┏━━━━━┻━━━┓
単行本 定期刊行物
△
┃
┏━━━━━╋━━━━━┓
雑誌 ブックレット 紀要
343 :
デフォルトの名無しさん :03/11/02 06:17
>>341 漏れは河合さんの説明がわかりやすくて好き。
でもいまもってない。
344 :
デフォルトの名無しさん :03/11/02 16:46
>299 概念化ってのがイマイチ分かりません.
概念化じゃなくて概念のモデリングだろう
346 :
デフォルトの名無しさん :03/11/02 17:42
ていうかやはり現実の世界にたとえて説明したほうがわかりやすいだろ。 前橋は具体的なプログラムじゃないと・・・とか言ってるが class Cat extends Animal{ public void cry(){ System.out.println("wanwan"); } } で立派なプログラムだろ? それとも本当に前橋のあのオセロの例のほうがわかりやすいと思ってるのか?
っていうかJavaなんか使っている時点で(ry
猫大好きワンワン!
どんな説明でも分かる奴は分かるし分からないアフォには分からない そこらのおばさんにオセロのたとえ話したところでOOが理解できると思うか? 動物のたとえも然り
プログラミングのoo入門者に対しては、自分が雑誌からヒントを得たと書いた、ファイルーアプリケーション、dosコマンドーファイル、関数等々でいいんじゃないの? 自分は前橋の憤慨は当然共感したが、オセロで萎えたよ。 分からん奴には分からんなんて程ooが難しい事ではない。 そういうのは不必要にooをミステリアスにし、現在流布されているモノ説明を擁護していることになる。 現状そうなっているのなら、教え方がいびつだからというのが自分のこのスレでの継続した主張。
大多数がモノ説明で理解できてるんだからしょうがないじゃん。
352 :
デフォルトの名無しさん :03/11/02 22:10
なんだって現実のたとえが一番だよ。 足し算だって最初は指折ったり、おはじき使ったりだろ。
漏れはGUIのウィジェットで感覚を覚えたなあ
>>353 開発者(特にプログラマ)が自分で体得するには、そんな風に
ボトムアップなアプローチでもいいんだけどな。
ただこのスレの主旨どおり、説明するのが難しい。
合体ロボでコンポジションを説明できませんか?
「犬も猫も哺乳類です。ニャンワン。」ってのは汎化と多態性の説明。 前橋氏は、「汎化多態はどうでもいい。マルチプルインスタンスこそオブジェクト指 向の中心概念である。」と主張してそのマルチプルインスタンスの例としてオセロゲ ームを挙げている。 一口にオブジェクト指向の例といっても、その説明しようとしている概念は全然違う のだな。 おれは汎化と多態性の説明なら犬猫でもよかろうと思っている(ただし適切なサンプ ルコードをつけること)。でもそれでオブジェクト指向の全てが説明できるはずがな いってのは自明のこと。 オセロゲームも・・・、まぁ、マルチプルインスタンスの説明としてはありなんじゃ ない?
357 :
デフォルトの名無しさん :03/11/03 00:43
オブジェクトとオブジェクト指向は同じですか?
358 :
デフォルトの名無しさん :03/11/03 01:00
ええっ
オブゼクトとオブゼクト指向は同じではない。
オブゼクト指向と現実は同義である
361 :
デフォルトの名無しさん :03/11/03 02:46
>>356 マルチプルインスタンスの説明をするだけなら
Man m1 = new Man("taro");
Man m2 = new Man("jiro");
このように人間が二人できましたよ〜
で解決では?
・習うより慣れろ ・案ずるより産むが易し で良いじゃん
364 :
デフォルトの名無しさん :03/11/03 17:41
先ず初心者は どんなにオブジェクト指向の説明が的確だろうが上手かろうが、 オブジェクト指向の利点って何? と思うわけで、 そこから説明していかないと理解しにくいと思うんですよ もしかして俺間違ってる?
>>364 プログラム玄人オブジェクト指向素人ならね。
素人はまずアセンブラを覚えろ
367 :
デフォルトの名無しさん :03/11/04 06:25
前橋の文章は僻みっぽくてイヤだねえ。
368 :
デフォルトの名無しさん :03/11/04 07:25
オブジェクト指向モデル=自律分散協調世界
369 :
デフォルトの名無しさん :03/11/04 08:14
プログラム素人ならば 現実世界にたとえて説明したほうがいいのは当たり前。 前橋は >本稿の対象読者は「既に他の手続き型言語を習得しているが、 >オブジェクト指向が理解しがたいと感じている人」 って言ってるし。
370 :
デフォルトの名無しさん :03/11/04 08:43
現実世界のたとえで理解できない手続き型言語プログラマは 技術ヴァカ。
オブジェクト指向とは関数の構造体というイメージでいいのですかっ! なんか物凄く納得できました。 ありがとう。
372 :
デフォルトの名無しさん :03/11/04 11:09
>>371 納得したつもりだが、実はぜんぜん
理解してないという罠
373 :
デフォルトの名無しさん :03/11/04 12:59
マルチプルインスタンスったって、オブジェクト同士が 連結してメッセージ送りあわないと仕事は 成し遂げられないやん。重要かもしれんが とっかかりとか本質とは言いがたいねえ。
手抜きするためにプログラムを作り、手抜きするためにオブジェクト指向を使う。
375 :
デフォルトの名無しさん :03/11/04 14:41
人間が計算するんで無くて、コンピュータに計算させるってことだろ
オブジェクト指向= 自分を操作するための関数ポインタをメンバに持った構造体
378 :
デフォルトの名無しさん :03/11/04 17:59
前橋君は勘違いしていると思うが、結城先生はこのスレに 書き込んでないと思う。 なぜなら前スレで結城先生に勘違いされたっぽいのは、 私だから。
>>380 あの場面でルカの福音書を引用して
「さあみんなで殺伐としる(w」などと揶揄できるのは
やはり結城たんしかおるまい。
宗教逝って良し
前橋はポインタ本だけで終わればよかったのに
>>384 禿。Cプログラマとしてなら神に近づけたのに。
>>377 少なくともCPUがする仕事としては同じだね。
まだバシ君、叩かれてるんだ。人徳がない人だ。
>>377 それはクラス指向。
クラスをいかにオブジェクトといえるように
分析・設計・プログラミングしていくのがオブジェクト指向
>>377 その考え方でメモリをバカみたいに使って
楽するのがオブジェクト指向。
>>389 少なくとも何かをシュミレートしている状態じゃないと
オブジェクト指向とはいえないと思う。
趣味?
>>382 クリスチャンなプログラマは意外に多いですよ。
結城タン、Matz、その他私の知っている範囲でも数名。
アニオタハゲデブPGのクリスチャン
うちは真言宗ですが何か?
オブジェクト指向の説明には群・環・体を使うべし。
その前に、群・環・体を初心者にもわかるように説明してください。
まるちぷるぷるいんすたんすっ
でざいんぱたぱたぱたりろっ
399 :
デフォルトの名無しさん :03/11/05 17:45
Java初心者に継承は教えるべきではない。 デザインパターンをすべて暗記させて その時のみextendsやimplementsというキーワードを使えと教え込むべき。
399には教わりたくない
デザパタはオブジェクト指向とは何の関係もない つまりスレ違い
402 :
デフォルトの名無しさん :03/11/05 18:32
399は包茎
OOは概念があいまいすぎなんだよ まずOOの必要条件からどうぞ↓
404 :
デフォルトの名無しさん :03/11/05 18:37
言語作成者が「これはオブジェクト指向言語だ!」と主張した言語を使う
OO=オブジェクト間のメッセージパッシング
406 :
デフォルトの名無しさん :03/11/05 20:46
なんでもいいが「フルーツや乳類」にみえた
なるほど、これは亀頭か。
牛乳とか豆乳とかか?
OO=現実だし
>>403 OOは広義で用いられ一般化が難しいからまずOOPから。
・オブジェクトへのメッセージパッシング(Smalltalk発祥)
・クラスを用いた手続きによるデータ抽象化(Simula 、C++発祥)
・単にオブジェクトを使ったプログラミング手法(OO厨発祥)
これらの混用。オブジェクトの定義はLisper、Schemer以外は、
「手続きを含んだデータ」ということで、とりあえず問題なし。
Schemerはクロージャとオブジェクトを理論的には区別しない。
>>クラスを用いた手続きによるデータ抽象化(Simula 、C++発祥) 日本語になってないYo!
>>411 すまん。
クラスを用いた、手続きによるデータ抽象化(Simula 、C++発祥)
>>401 デザパタは、オブジェクト設計の1つじゃないのか。
414 :
デフォルトの名無しさん :03/11/05 23:42
>>412 手続きを含んだデータ抽象化じゃないのかなとオモタ。
>>414 いやいや。
データの抽象化には、手続きによるものと型によるものがある。
前者が「オブジェクト指向」で後者が「抽象データ型」(CLU、Ada、Modula-2、ML…)
で、まあ、後者と区別しようとして *による* としたわけ。 「含んだ」でもいいけど、ちょっと弱いかな…というのと、 手続きを含むのはすでにオブジェクトの定義で自明だから 改めて言及する必要はないかな…とも。
417 :
デフォルトの名無しさん :03/11/06 03:17
mixjuice
あ〜の〜兄弟〜がやらな〜きゃ、スペースシャトルも無い♪
419 :
デフォルトの名無しさん :03/11/06 04:40
>>415 スレ違いですが、抽象データ型というのはTemplateやGenericsで
実現できると考えていいものなんですか?
>>420 んあこたぁない。
愛を語るのに、愛テンプレートがいると思うか?
愛という概念(=抽象型)があればそれでいいだろう?
人によって愛がもつ属性やメソッドは異なるからモデル化が難しいだろうけど
愛を運ぶコンテナはなんでもいいんだよ
あれも愛、これも愛、わったっしっは、愛のオブジェクト〜
人によって愛のモデルは違うので、とかくこの世はすれ違いが絶えない。 人間が何千年かけても、いっこうに標準化できない。
privateな愛 protectedな愛 ヤ リ マ ン そしてpublicな愛
キ ン シ ン ソ ウ カ ン protectedな愛
愛はインターフェース。 藻前ら、自分で実装しとけ。
C++のfriend以外は異常だな。 やっぱ現実に即したオブジェクト指向言語はC++だけ。
本来動的に変更できるべきアクセス制限を静的にしか決められないC++は不十分だろ。
>本来動的に変更できるべき 君には貞操観念というものはないのかね。 結合すべき相手は生まれる前からすでに決まっているのだよ。
アクセス権が動的になったらエラー起こしまくりでは? 動的に変更されることを考慮してコーディング?やりたくないね。
アクセス制限を動的に変更出来る言語って何があんの?
システムを止めることなしに管理者権限を付け外しできるような仕様を受け入れているのに、 アクセス権を動的に制御できるプログラム言語を嫌がるというのはおかしいな。
アクセス権とスコープは関係ないだろ
>>429 その気になったら同型のclassでも定義してキャストしてフックすりゃいいんだよ
でもやるなよ、そのためのアクセス制限なんだから。
意味なくね?混乱の元になるような。OSとかのアクセス権はあくまでプログラムで表現されてるのであって、言語にまでアクセス権変更機能をつける必要は無いと思うが。 それがあったなら何か良いことに使えるんだったら教えてよ。 void eat_piza(piza* p) { //// piza->GetSize(); } class piza { public: int GetSize(); }; int main() { piza p; eat_piza(p); piza:::GetSize = protected;//アクセス権の変更 eat_piza(p);.//エラー }
>>436 みてたら以外と便利かもとか思ったり、いや protected とかじゃなくてコンパイルタイムの一定範囲アクセス禁止とかの機能って
あったら使いたい。
アクセス権変更はヘッダファイルを書き換えるとオールコンパイルになりがちなC++だと デバッグには便利かもしれない
#define private public #define proteced public これでいいじゃんよ
動的変更だとしょうもない例外チェックだらけになりそう
最近知ったんだが、JAVAでもC++みたいなテンプレート使えるのね・・・ ひたすらオーバーライドしまくってたよ。
443 :
デフォルトの名無しさん :03/11/07 01:31
Javaはリフレクション使えばアクセス権制限が実質なくなりますな。 セキュリティポリシーで禁止しない限り。 MethodインスタンスにsetAccessible(true)すりゃ、privateだろう がなんだろがコールし放題。 逆コンパイルとこれを使えば、Javaはハックが簡単ですね。
結城たんのJavaの初心者本、改訂されたんだねー。
445 :
デフォルトの名無しさん :03/11/07 11:03
なんかスレ違いになってきたな。 C++もJavaもオブジェクト指向としての概念は smalltalkの足元にも及ばないから語っても無駄だぞ。
>>439 それじゃあオールコンパイルになって役にたたねぇーじゃん
オブジェクト指向=マルチプルインスタンス
>>447 インスタンスがいっぱいあるってことか?
マルチプルインスタンスをサポートするC言語はオブジェクト指向だってことだ。
前橋ネタはもうあきた
いみわかんね。メッセージパッシングがオブジェクト指向の キモじゃねえの?
結城殿はオブジェクト指向をなんて説明してるの?
お前らSmalltalkにひれふせ
smalltalkなんてC++が理解できなかったやつの逃げ道だから論外。
お前smalltalkやったときあんのか。
なんで最初から逃げ道選ばなきゃならないんだよ(藁
なんだ、唯の馬鹿か
458 :
デフォルトの名無しさん :03/11/08 11:45
オブジェクト指向の真髄は継承だよ。 そのおかげで容易にコード再利用したり機能拡張したり出来る。
また馬鹿が来た
460 :
デフォルトの名無しさん :03/11/08 12:03
オブジェクト指向の真髄はオブジェクトだよ。
フィッシングだね。
オブジェクトは手続きを含んだデータ。 オブジェクト指向は、 1) メッセージパッシング(1972年頃、Smalltalkより) 2) 手続きによるデータ抽象化(1979年頃、C++より) 3) 単にオブジェクトを使ったプログラミング技法(1990年代、厨より) のどれか、あるいはいずれかの組み合わせの多少の差。 ・SmalltalkやSelf、Objective-Cのメッセージ式は(1)の立場での発想を そのままコード化でき、しかしパーサーを単純に保つための工夫。 ・アクター理論は、実はSmalltalk(アラン・ケイ)の(1)をヒントに ヒューイットが学術的にまとめられたもの(1973年)。 ・「多態性」は(1)の効用を、(2)の立場から説明したもの。 (2)の立場では(1)のメタファは必ずしも必須ではなく、 単なる関数呼び出しをもって、これを説明している。 ・Simula(のころは「オブジェクト指向」という考え方はなかったが、 C++が(2)の立場でのOOPを確立したため、帰納的に元祖になった。 ・C++はOOPLではなくマルチパラダイム言語。オブジェクト指向 (手続きによるデータ抽象化)の他に、抽象データ型(型による データ抽象化)手法、従来の手続きの抽象化手法が可能。 ・Smalltalkは、(2)のOOPも可能だが、C++と違って他の手法、たとえば 型によるデータ抽象化手法などは使用できない。内部的にはこれを 行なっている(バイトコードレベルではマルチパラダイム)。 ・「クラス」「継承」は(2)の立場におけるOOPを助けるための機構で 一般的だが、Selfにより単なる委譲機構で代えられることが知られている。 ・Schemeのクロージャはもっともシンプルで古典的な(2)的手法を助けるもの。 理論的にはオブジェクトと等価。 ・CLOSは、(1)、(2)の立場を踏襲しながらも、総称化により手続きを オブジェクトから解放。
C++を作ったStroustrup曰く あれは単なるジョークの筈だったんです。 人々があの本を真剣に受け取るとは思っても見ませんでした。 脳みそを半分でも持っている人なら、オブジェクト指向プログラミングは非直感的で、不合理で、効率が悪いということを見て取れます。 まっこれが結論だわな
「直感的」だって。 すぐ馬鹿が書いたってわかる文章だね。 まっ 馬鹿には理解できないわな 別に俺も馬鹿に優越感は感じてないからあんまり気にするなよ。 理解できないから馬鹿なんだから。馬鹿で当然なんだから劣等感持ってC++を貶めたりするな。
Stroustrup は馬鹿とは、お前は神のつもりかね
467 :
デフォルトの名無しさん :03/11/08 16:04
言語よりの説明ばっかりだねえ。
469 :
デフォルトの名無しさん :03/11/08 16:07
>>466 Stroustrupじゃなくて
>>463 の元ネタを(Stroustrupが言ったものだと嘘をついて)書いた奴が馬鹿なのでは
オブジェクト指向とは、Stroustrup という人物があるオフィスに座って、考えた小さな企みで プログラマを迷わせつつ飯の種を確保するための壮大なジョークだったって事なのさ。
ジ ョ ー ク を 真 に 受 け た 典 型 的 日 本 人 技 術 者 を 装 っ た C + + の 片 鱗 に さ え 触 れ ら れ な い 無 能 す ぎ る 厨 房 が 釣 堀 に 釣 り 糸 を 垂 れ て い ま す 。
ありがたい事です、良くも悪くもこれでプログラマはみんなご飯にありつけるのです。
474 :
デフォルトの名無しさん :03/11/08 16:37
(。 )( 。) 真のOOである。
>>464 馬鹿じゃないの?ここで下らない煽りしてる暇が
あったら本のひとつでも読めば?
463の言葉は現実にStroustrupの自伝に書いてあるわけだが。
>>476 馬鹿じゃないの?ここで下らない煽りしてる暇が
あったら本のひとつでも読めば?
>>477 馬鹿じゃないの?ここで下らない煽りしてる暇が
あったら本のひとつでも読めば?
ここもアホばっかかよ
OOを勉強してきて、これが究極だと思ってきたから納得いきかねてるんだろう 世界中にオブジェクト指向プログラミングを広めた張本人に否定されてはね。 とはいっても、当時大問題になっていたGUIのプログラムを上手く作るのには向いていたし それを見て全てが上手く組めると勘違い人間がでてきたのは、しかたがない・・・Stroustrupの思う壺ってヤツか? 裸の王様は見事でしたと。 見事に乗せられた私は食いっぱぐれずにすんでます、Stroustrup 先生バンザイ
ここはなんだな? オタク向けに説明するなら式神に例えたらいいとか そういう話をしてるとこか?
? ちょっと試しに式神で例えてくれんか?
484 :
デフォルトの名無しさん :03/11/09 04:13
あのー、各人でオブジェクト指向のわかりやすい説明 を挙げていくってのはどうですか? はい、どうぞ↓
一寸の虫にも五分の魂
object 【動】【自】T 〔…に〕反対する, 異議[不服]を唱える, 抗議する
情報の整理の仕方の一種。
488 :
デフォルトの名無しさん :03/11/09 04:36
オブジェクト指向とは、ぶっちゃけ「各自の自己責任」である。 各自が責任範囲についてはキッチリ義務を果たすことで、インタ ーフェイスを介するやり取りで起こる不整合な状態が発生する可 能性を0にして、大規模な仕組みを作る時に発生しがちなコスト を削減するというわけさ。 日本人が最も不得意するところですな。
文章下手ですな
ほっとけ。
「文章下手ですな」 というメッセージを2chに送信すると 「ほっとけ。」 と帰ってくる。これこそオブジェクト指向!!
気分によって返答が変化するんじゃない?
state パターンですな
気分は副作用に該当します
おー良スレ化してるじゃないですか。 こんな感じがいいです。
497 :
デフォルトの名無しさん :03/11/09 14:18
前橋の hoge(a, b); a.hoge(b); がおなじって理屈は hoge(a,b); がそもそも this.hoge(a,b); のシンタックスシュガーであるということを見落としてるよな。
this->hoge(a,b)のでしょ?
前橋∩オブジェクト指向=φ
thisがポインタなのは禿の勘違い。
そもそもポインタではドットじゃなくアロー演算子を使うような文法にしやがったCを作った奴がクソ。
>>501 スマートポインタを考えるとあながち糞とも言い切れないが
Cのあのシンプルな文法に参照なんかついたらちょっと嫌 C++ なら毒食わば皿までだけど
>>503 .はオーバーロードしようがないからスマート参照は無理なんだなぁ。
概念は別にポインタのままでいい。 struct A{ int i; }; A a; A *p=&a; これが両方とも a.i=0; p.i=0; とアクセスできるようにして欲しかった
>>505 それが良くわからない。.をオーバーロード出来るようにすれば色々な問題が氷解するというのに。
>>507 .をオーバーロードしたらメンバにアクセスしてるのかどこかにリダイレクトされてるのか分からないじゃん。
特に最近の言語は共通の基底クラスを持っていたりするから否応にもメンバ名がかぶってしまう。
記述するとしたらこんな感じかな struct A{ B b; B &operator .(){ return b; } }; A a; a.b=0; . 演算子をオーバーロードしたらメンバ関数内部以外からアクセスできなくなるという制限がかかるだけ
>>499 禿同。でもオブジェクト指向でぐぐると三番目にあるんだよね。
>>512 -> が、それはポインタであるから、代入しても本体は書き換えられないよって教えてくれる。
そもそも意味混同でキッショイ
実のところ、それと配列も似たような性質があって嫌なんだけど、
当時のマシンを考えれば、我慢・妥協。
>>513 ハァ?代入しようとしたらそもそもコンパイルエラーになるだろ。
A a;
a.b;
このaをポインタ経由にした時、またはその逆のときに . を ->に変えるのはメンドクサイ。
いまさらそんな瑣末な議論に何の意味がある? C/C++がいまさら文法を変えるわけはないし 参照ベースのOOPLはそもそも->なんてないし。 未来を変えたいなら選挙池。
そんなにポチが好きならこう書いておけ (*a).b
519 :
VB(しかもVBA)の例で恐縮ですが :03/11/10 17:25
Dim hInternet AS Long, hFtpSession AS Long hInternet = InternetOpen( _ Application.CurrentProject.Name, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0) hFtpSession = InternetConnect( _ hInternet, FTP_HOST, INTERNET_DEFAULT_FTP_PORT, FTP_USR, FTP_PAS, INTERNET_SERVICE_FTP, 0, 0) FtpGetFile _ hFtpSession, sURL, sLocalPath, False, FILE_ATTRIBUTE_NORMAL, INTERNET_FLAG_RELOAD, 0 InternetCloseHandle hFtpSession InternetCloseHandle hInternet ------------------------------------------------------------ 上のようにオブジェクトハンドルを渡すのが嫌いで、下のようにクラスのメソッドにするのが好きなんですが、 それぞれ「何指向」、あるいは「何嗜好」、あるいは「何思考」というのでしょうか? ------------------------------------------------------------ Dim FTP As New FTPClass With FTP .ConnectFTP FTP_HOST, FTP_USR, FTP_PAS .GetFile sURL, sLocalPath .CloseFTP End With
syntax sugar
また、糞すれ化してるね。
2chではえらそーなこと言っているが 現実はラップクラス作ってるだけなんだろ、お前ら。
YO!!YO!!2chではえらそーなこと言っているがYO!! 現実はラップクラス作ってるだけなんだろ、お前らYO!!
>>523 君のレスからサウンドが聞こえてきたよ。
527 :
デフォルトの名無しさん :03/11/12 21:40
最近じゃ、オブジェクトしまくるのに「オブジェクト脳」がいるらしいぞ
ラップで覚えようOOP
ミコミコナースでオブジェクト指向! 1,2,3,ハイ!
>>527 ゲームするのに「ゲーム脳」がいるのと同じ理屈ですよ(藁
532 :
デフォルトの名無しさん :03/11/15 17:56
日本語に訳してくれ。>531
533 :
デフォルトの名無しさん :03/11/16 04:05
534 :
デフォルトの名無しさん :03/11/16 20:23
ラッパーなんぞ、いまどきつくらんやろ?
氏ねよ関西人
536 :
デフォルトの名無しさん :03/11/16 22:19
作ってますがなにか?
537 :
デフォルトの名無しさん :03/11/16 23:49
538 :
デフォルトの名無しさん :03/11/17 00:16
沖縄人です。
オブジェクト指向ってのは 現実世界をコンピュータの中で実現しちゃいましょう!って考えなんだよ。
540 :
デフォルトの名無しさん :03/11/17 00:55
エージェントスミス
542 :
デフォルトの名無しさん :03/11/17 01:08
543 :
デフォルトの名無しさん :03/11/17 03:10
人クラスが電車クラスに乗っているのか、 電車クラスが人クラスを運んでいるのか、
馬鹿オブジェクト
クラスといっしょに暮らす
549 :
デフォルトの名無しさん :03/11/17 06:10
人オブジェクトが電車オブジェクトの車両コレクションの 車両アイテムの乗客コレクションの乗客アイテムに追加され、 電車オブジェクトの運転手プロパティに設定された人オブジェクトの 動作コレクションの発車アイテムの動作イベント時に、 電車オブジェクトの発車メソッドが実行されるのです。 ついでに言うと神がかりなセンドメッセージなど糞くらえです。
( ´_ゝ`)フーン
> ついでに言うと神がかりなセンドメッセージなど糞くらえです。 オブジェクト指向では通常メッセージでやり取りするもんだが。
>>549 そんなあなたにはWinFX。
完全オブジェクト指向APIです。
オブジェクト『嗜好』だろ?
オブジェクト施工?
オブジェクト至高だよ
557 :
デフォルトの名無しさん :03/11/17 08:03
まともなやつがおらんのう。
オブジェクト失効
オブジェクト商法ってことでえぇか?
560 :
デフォルトの名無しさん :03/11/17 13:08
オブジェクト歯垢
誰か、どれかにツッコメ・・・
564 :
デフォルトの名無しさん :03/11/17 16:54
--- 終了しました。 ----
自分を操作するための関数ポインタを持った構造体ってことで 結論
566 :
デフォルトの名無しさん :03/11/17 18:48
それはクラスの説明です --- 再開しました。 ----
567 :
デフォルトの名無しさん :03/11/17 19:11
棟方志功
568 :
デフォルトの名無しさん :03/11/17 19:38
実装レベルのOOなんてOOのほんの一側面にしかすぎない。
OOで人生設計してこそ、真のOO使いだ。
>>569 真のOO使いはそんな誤った考えかたしません。
OOで生活できないことを知ってるからですか?
572 :
デフォルトの名無しさん :03/11/19 22:50
つーかオブジェクト指向って何のために存在するの?
電子回路だってジャンパー線だらけにするとまずいだろ? 信用のできるモジュールのINとOUTだけ見るようにしたいだろ?
だけど、例えばグルーブ・エソテリカとか、 エメラルド・グルーブとかいうプリアンプは、 あえてオブジェクト指向を捨てて複数のアンプ機能が 混ぜん一体となった設計をすることで、超高品位な音質を引き出している。 これは、展開コーディング等で限界性能に挑戦するプログラム職人と共通するところじゃないかな。 要は、オブジェクト指向の方が楽ってことだ。
575 :
デフォルトの名無しさん :03/11/20 00:37
>>573 オブジェクト指向でなくてもCのライブラリなどと見え方は変わらない。
オブジェクト指向=内部隠蔽ってのは誤った考え方。
576 :
デフォルトの名無しさん :03/11/20 06:42
>>575 でたらめなこといわないでくれ、カプセル化こそがオブジェクト指向の肝だぞ。
577 :
デフォルトの名無しさん :03/11/20 06:44
>>572 生産性と保守性をあげるため。
・・・といわれているが、逆に無知な開発者によってまったく逆の状況に陥ることが多い。
>576 ライブラリも内部知らずに使えるが?
579 :
デフォルトの名無しさん :03/11/20 08:00
580 :
デフォルトの名無しさん :03/11/20 10:54
カプセル化はオブジェクト指向言語でなくても実現が出来ると。 つまりオブジェクト指向における利点ではない。
>>578 内部を知らずに使えるか、でなくて
内部に触れないようにできるか、がカプセル化なのでは?
>>575 C のライブラリって、構造体なんか使ってると中身全部見えちゃうんですが。
>>580 さあそこでだ。入出力端子だけでなく、
調整ツマミや機能ボタン、前回までの状態を保持する機能が
中に揃ってるとさらに便利だろう。
厨房は多態がわからないからカプセル化なんかに こだわっちまうんですよ。
オブジェクト指向:オブジェクトを処理や問題の組織化に適用すること オブジェクト:状態と振る舞いを持った単位
要は副作用をオブジェクト内部に留まらせるってことだろ。
589 :
デフォルトの名無しさん :03/11/20 23:16
あたりまえのことを再認識し、深く分析するのが
あたりまえのことを再認識し、深く分析するクセがついてしまってるから一部のプログラマは偏屈と言われるのかもしれない
592 :
デフォルトの名無しさん :03/11/21 00:30
まあ、おおーとか言っている香具師は ごく一部の分野しか知らない香具師が多い。 これは真実。
俺ってJavaでオオやってるんだぜ。 かっこいいだろ。
class Me extends >594 { }
596 :
デフォルトの名無しさん :03/11/21 04:57
くそすれ化してるな。
598 :
デフォルトの名無しさん :03/11/21 07:34
>>578 >ライブラリも内部知らずに使えるが?
あの、カプセル化ってプログラムコードだけでなくてデータも隠蔽できないとだめなんですが。
関数とか構造体ベースのセキュリティ属性を持たない処理系はカプセル化不可能です。
>>580 >カプセル化はオブジェクト指向言語でなくても実現が出来ると。
いったいどうやって?
>>598 セキュリティ属性?
すべてのオブジェクト指向言語が
privateみたいな修飾子を実装しているわけじゃないぞ。
600 :
デフォルトの名無しさん :03/11/21 10:20
>一体どうやって? Cのstatic変数も知らないJava房のかたですか? 無能の極みですね :)
ワラタ
>>580 Win32API の話だが。
// プロトタイプ宣言
LRESULT CALLBACK MyEditCallback( HWND, MSG, WPARAM, LPARAM );
HWND hDialog = CreateDialog( ); // ダイアログ作成
HWND hEditCtrl = GetDialogItem( hDialog, IDC_EDIT ); // EDITコントロール取得
// 属性取得
RECT rcBounds;
GetWindowRect( hDialog, &rcBounds );
// 多態
SetWindowText( hDialog, _T("Caption") ); // タイトルが変化
SetWindowText( hEditCtrl, _T("Text") ); // 中身のテキストが変化
SubclassWindow( hEditCtrl, MyEditCallback ); // サブクラス化
SendMessage( hDialog, WM_CLOSE, 0, 0 ); // 閉じろ。
十分カプセル化されているし、多態も実現している。
しかも継承までサポートしている。
これがオブジェクト指向でなければ何がオブジェクト指向?
Cでオブジェクト指向できるってやつは、自転車で東京から大阪まで行けるっていってるのと同じだな。 そりゃ行けるだろうが・・・。 新幹線のれよ、飛行機のれよと。
汗ですらOO実現してのけるのが神というものだが やっぱJAVAしか知らない似非OO厨は見ていて面白いな
漏れの股間も思わずextendsです
弘法筆を選ばず
弘法は歩いて東京から大阪まで行きます。はっきり言ってバカの所業です。
java使いは東京から大阪まで歩いてゆく体力がありません。 はっきり言って軟弱者の所業です。
java使いは東京から大阪まで速く移動する手段をひたすら待ち続きます。 だから言ったでしょ。ワガママばかり言っちゃ行けないって。
東京から大阪まで歩いたことを自慢するバカがいます。 大阪で何をするかが大事なのに。
612 :
デフォルトの名無しさん :03/11/22 00:51
つまり、おまいらラップだけしてろってこった。
>>613 ラップはもうやってあるから、それを使って、作るもの自体に注力するんだよ。
おれにはラップやりなおす時間はない。
615 :
デフォルトの名無しさん :03/11/22 07:12
>>600 オブジェクト一個しか存在できないじゃん。意味ないよ。
せっかくみんな放置していたのに(藁
>>615 ポインタと構造体、共用体が理解できないお馬鹿さんに多い意見である。
ってかいくつも定義したければ配列にするとか、構造体の配列にするとか
構造体のメンバにポインタ含ませるとか、移譲したくばコールバックにするとか
まあJava房の無能さがよく分かったよ。
>>617 例えばオブジェクト(?)ごとに管理番号でもつけるのか?
open,read,write,close,etcみたいに。
そしてそれを配列の添え字にするのか?
おいおい、Java房って構造体もろくに知らないのかよ。 あと、シリアライズされた機能の上っ面だけしか知らないから 排他制御についてまるで解っていない。 やれやれだぜ。
>>619 俺?Javaなんて使っていないけど。
構造体のメンバーとしてもたせるのが一般的だけど、そうしたらライブラリの使用者もアクセスできてしまうという話じゃないの?
だから
>>600 はstaticなグローバル変数を用意(ここでは構造体のメンバーに相当)すればいいと言ったんでしょ。
そうすれば他のファイルからはアクセスできなくなるから。
そしてそれを配列にすれば複数もてると
>>615 に反論したんでしょ。
>そうしたらライブラリの使用者もアクセスできてしまう そんな物環境によりけりだと思うが。 DLLならばstaticで無くてもグローバルな変数は明示的にexportしなければ使えないだろ。 そもそもヒープ領域に構造体を割り当てればstaticだろうが複数の変数を宣言できるだろうに。 ちょっと視野が狭いんじゃないの。
>>622 ??????
メンバーにしたら、メンバー名を調べればアクセスできてしまうってことだよ????
例えばFILE構造体というのがあるけど、あれってライブラリの使用者はメンバーにアクセスする必要はないよね。
でもメンバー名を調べればアクセスできるでしょ。
もうC厨はCOBOLerと一緒に絶滅してもいいよ
シリアライズされた機能の上っ面だけしか知らないから 排他制御についてまるで解っていない。 やれやれだぜ。
だれも排他制御の話なんてしてないよ。↑バカは死んでね。
どんどんアフォが増殖中。 これを英訳して公開したら日本にはOOを理解してるやつが ほとんどいないことがバレバレだな。
629 :
デフォルトの名無しさん :03/11/22 21:23
>>602 >GetWindowRect( hDialog, &rcBounds );
詳しくWin32APIは知らないがこの例だとGetWindowRect関数はどこに実装されていますか?
hDialogオブジェクトに実装していないといけないのでは?
しかもhDialogオブジェクトも名前を略していますね。
オブジェクト指向ならDialogHandleにしなければいけませんよね?
それらがC言語だけで実装できますか?
623はGTK+とか知らないんだろうな。
最後の一言が余計か・・・
>>631 もう少し考えて書き込める人間じゃないとオブジェクト指向は難しいんじゃないの
>>632 そうかもしれないが自分ももう少し考えてから書き込むようにしてくれ。
>>633 考えるってことは考えないことといっしょなんだよ。
635 :
デフォルトの名無しさん :03/11/22 22:45
636 :
デフォルトの名無しさん :03/11/22 22:47
これがオブジェクト指向を用いる考え方 1+1=2 これが用いない考え方 +(1,1)=2 どう見ても上のほうが直感的だろ。これがオブジェクト指向の利点。
>>629 なんかね。もうね。
自転車に例えてハンドルクラスでも作れと言いたい。
>>636 全く関係ない。
Smalltalkを見よ。
はっきり言おう。 オ ブ ジ ェ ク ト 指 向 は 死 滅 す る
オブジェクト指向の解説というと必ず現実の何かが出てくるけど、 馬やラバをプログラムするとか意味不明じゃない? プログラムの話なんだから、プログラムを例に挙げればいいと思う。 だいたい、オブジェクト指向ってプログラムが巨大になるにつれて 必要になってきたって言われてるじゃない? オブジェクト1つが、小さなアプリケーションプログラムだと考えれば良いんだよ。 コマンドラインから使うCUIアプリね。 こういうプログラムってコマンドラインに引数を書くだろ? その中にはプログラムの動作を決めるオプションや、データとなるファイルパスがある。 ほら、オプションはメソッド、ファイルパスはメソッドに渡す引数だ。 ファイルパスの代わりに、他のプログラムの実行結果を渡すこともできる。 これはオブジェクトにオブジェクトを渡すことに似ているだろう。 アプリケーションはバージョンアップしても使い方を似せる(互換性をとる)のが大事。 いちいち使い方が変わったんじゃバージョンアップしても使いにくい。 ただし、内部は変えてもいい。使い方を変えなければね。 これもオブジェクトと一緒。 ポリモーフィズム。これはほら-hでヘルプが見られるとか、大抵のアプリがパイプに対応しているとかあるでしょ。 カプセル化は言わずもがなだよな。 継承はちょっと分かり難いか。 バージョンアップというよりは別バージョン、亜種を作るわけだけど‥‥‥。 フロントエンドになるアプリを作るってところか? 既存バージョンには不具合があるが、そっちを直したくない場合、 新しいアプリを作り、不具合の原因になるデータを取り除いてから 既存バージョンを呼び出すといったような。 というわけで、オブジェクト指向は小さなアプリケーションプログラム指向と考えれば 実際のプログラミングに活かしやすいと思うよ。
>>636 お前ゼンゼン理解してねーよヤバイよ釣りとか言ったら張った押すぞこら
>>640 全部読んでないが、オブジェクト指向を何か勘違いしてるな。
考え直せ。 おまえら「オブジェクト指向」って言葉に騙されてるぞ。 いま一度、自分の心の中にある「オブジェクト指向」という言葉が 実際は何を意味しているのか洗い出せ。
おまえらもプログラマなら言葉の定義から始めたらどうだ? オブジェクト指向とは=????の集合である。 ????を埋めていくんだ。 簡単だろ。
反応が薄すぎるな。 あっちより薄い。
>>642 細かいオブジェクトとはうんぬんを抜きにして、
どのように設計すればいいかのレベルの話だとすれば、
言っていることは open-closed principle 的な内容だし間違いではないと思う。
>>ハッカ飴 邪魔だからどっかいけ
馬やラバをプログラムしてこそオブジェクト指向
ワラタ 確かに。
650 :
デフォルトの名無しさん :03/11/23 00:26
>>636 が大正解だろ。
動作(メッセージ)がデータに送られるのがOO
データが動作(手続き、関数)に対して送られるのが構造化アプローチ
+は足せという動作。1はデータ。
636=650 ワラタ (・∀・)イイヨイイヨー
抽象的に考えられないとオブジェクト指向の理解・説明なんて無理。 オブジェクト指向は実装(どうやって実現しているか)とは別だろ。
>>653 =ハッカ飴
だったらはじめからそう書け。
こいつもそうだけど、分からないことを分かるのが高度とか思い込んでる風潮があるよな。
たとえば国語の試験。「作者は何を考えてこの文章を書いたのか答えなさい」
こんなの読んで分からない文章書くこと自体が間違い。
人によって解釈がまちまちになるほど説明が下手な文章を書くほうが間違い。
にもかかわらず、この設問のように、気持ちを察することの方を勉強させようとする。
本来は著者にもっとわかりやすい文書に書き直させるのが正解。
こんな教育やってるから、文章(説明)の下手なやつが多くて、
わからないと「実はこういう意味なんだ」「行間を読め」とか、なら最初から
そう書けボケェ!というやからが増える。
上場企業には財務を説明しなければならないアカウンタビリティ(説明責任)という
のがあって欧米では常識なのだが、日本は聞かない方が悪いみたいな風潮があるからな。
特に仕事なんかそうだよな。ドキュメント一式渡して、あとわらかないところは聞いてくださいと。
しかし最初はわからないところもわからないんだから、わかるように説明するべきなんだが、
みんな先輩からもおなじ教育受けてきてるから、おんなじことを繰り返す。
とくにソフトなんて客と1次請け、1次請けと下請けと、階層が多いんだから、なおさら
説明は大事。にもかかわらず、説明の重要さがわかってないから生産性が低くなり、
なんで生産性が低いのかすら理解できないということになる。さらにみんなこんな
もんだとか「みんな」意識が芽生えちゃって、問題とも思わなくなる。おまいらの職場も
こんな感じだろ。ちなみにもれが引き継ぎすると、このあたりの説明資料および説明行動
するから、すげぇ早く引継ぎが出来る。だいたい最初に自分が教えてもらったときの
3倍くらいの早さで理解してもらえる。相手の気持ちになって、自分から説明しようという
気持ちを持つだけのことなのにな。
656 :
デフォルトの名無しさん :03/11/23 00:36
我々はある目的を達成したり、 ある物を作ったりするためにプロジェクトを立ち上げる。 そのプロジェクトにかかわる人は何らかの担当を引き受ける。 例えばゲーム作るんだったら シナリオ書く人がいたり、曲作る人がいたり、CG描く人がいたり。 各個人はその担当を遂行する責任がある。 作業途中には他の担当の人とメッセージを交換する。 やがて目的が達成される。 こういう普通にある例をコンピュータの中で実現してしまうのがオブジェクト指向。 だから非常に直感的。 しかもリアルな世界と違って同じ人(オブジェクト)をいつでも自由に生成できるし その人をパワーアップさせることも出来る。シミュレートも何回でも可能。
3倍って事では某紅い彗星の人だろう
さっきからageてる馬鹿は同一人物だな。 電波が強い。
僕は別人さ。
で、みんな
>>629 に対しては無視ですか?
スレ違いってだけでは>662
既にCなどの手続き型を知っている人に対する説明と 知らない人に対する説明ってそれぞれスレ分けるべきだよ〜 全然教え方変わるから。
そもそも説明なんてイラネ 馬鹿に何を教えても馬鹿。 終了。
>>655 使用言語も特定していないのに実装の話はありえないのでは?
話が進まないような気がする。
>>665 ここはある意味薀蓄垂れの隔離スレなので終了しなさんな
>>664 それはCを知っている人向けにする実装の話と
初心者にする概念の話に分けるということじゃないだろうか?
せめて一歩進めろ
このまま教える人物の具体像を出さない限りは不毛な議論が続くな。
672 :
デフォルトの名無しさん :03/11/23 00:54
つかageてまともな奴を呼べよ
673 :
デフォルトの名無しさん :03/11/23 00:54
結論は
>>636 で出たのでそれ以上の説明は不要でしょう。
じゃあ仮に、A君に対して説明するってことでどうだ? A君の設定: 業務暦0年(未経験) もちろんプログラミングなんてやったことない。 オブジェクト指向は名前だけ聞いたことがある。 若いので暇とやる気だけはある。 これから彼に何か仕事をしてもらうわけだが・・・
じゃあC言語を知ってる人向けの説明はB君ね。 B君の設定: 業務暦3年 C言語やアセンブラのプロジェクトをチームでいくつかこなした事がある。 オブジェクト指向はさんざん職場で聞いてるが、暇がなくて実践したことがない。 今後面白いことがなければ、そろそろ転職しようかなどと考えている。
こりゃ一歩前進したまま足踏みだな
じゃあD君ね。 D君の設定: 業務暦5年 Win32API、GTK+でGUIプログラミングの経験はある。 しかし、それらのサイトでJavaについての悪評をさんざん見てきた。 不景気の中で嫌々ながらもJavaの仕事を引き受けようと思っている。 これどうよ。
>679 GTK+使っているならオブジェクト指向を理解していると思われ。 って言うか、C君はどこいった。
681 :
デフォルトの名無しさん :03/11/23 02:54
OOってのはIDEやUMLやドキュメンテーションなどの周辺ツールを より高度かつ効果的に利用するための糊技術なんだよ。 それ自体のメリットが云々とか言ってる奴馬鹿丸出し。
そろそろ最強の敵コボちゃん登場の予感!
683 :
デフォルトの名無しさん :03/11/23 03:28
説明する対象とかどうとか具体的な事じゃなくって 全般的に説明できる概要みたいなのを考えたほうがいいんじゃないか
684 :
デフォルトの名無しさん :03/11/23 03:37
The C君: C++言語の創始者。 超人的な才能の持ち主ゆえに、 凡人の記憶力とタイピング能力を理解していない。
(゚д゚)ココマデヨミトバシタ
(゚д゚)ココマデリカイデキナカッタ
688 :
デフォルトの名無しさん :03/11/23 14:33
まじめな話オブジェクト指向って 具象化プログラミングと言い換えるのが一番いいと思う
>>636 オブジェクト指向を用いる考え方
1 . add (1) = 2
だろ
また新しい釣り人が…
書き方変えてもしょうがない。 「オブジェクトAがあるとする」なんてところから始まる説明も違うだろ。 プログラムの使い方なんて何指向だろうが製作者が決めて、それに従うものなんだから。 オブジェクト指向を説明するなら、オブジェクトを作るところから説明しないと。
>>690 の例だと
「足す」という機能を 1 という概念に持たせるか、
足すという概念を独立させるかということだろ?
お前らこのスレで何がしたいんだ? 意図がわからん
みんな一度でいいから釣ってみたいのさ
>693 + が 1から離れてしまったらもうオブジェクト指向じゃない データ抽象じゃない
1 -> + (1) = 2
誤解の大元 : "class" というキーワード objectのほうが良かったんじゃ? object unko { }; object unko : public manko { }; classより実に自然だ。
クラスのインスタンスがオブジェクトなんでないの?
それはそうだけど、クラスという言葉は日本人(初心者)にシックリこないと思うんだよ。
>>700 んなもん、日本人の都合なんか誰も考えてないだろ
じゃあファーストクラスでいいだろ。 なんかハイパーなイメージが漂っているだろ。
クラスを日本語に置きかえるとすればどんな言葉になるの?
ウィザードリーやってた人にはクラスでいいんだけど。
classやらobjectやら 普通に学校の英語で習うだろ
クラスつうとまず学校のクラスだろーよ。 次点で暮らす。
オブジェクトはいちどあるクラスのインスタンスとして生まれてしまったら もう二度と他のクラスになる事は出来ない (動的分類を実装した言語ってあった?) クラス(階級) は超えられない、いかにも毛唐っぽい
>>699 Smalltalkなんかじゃクラスでさえオブジェクトだが
じゃあ、フレンド関数はクラスメイト(級友)ということで。
>707 Smalltalkなら、やろうと思えばできるよそれ。 それが必要なほどのプログラムをしたことないけど。
>710 それは単なるStateパターンの延長なんじゃないのか。 NumberがPointになれるのか?
smalltalkとやらはwindowsのプログラム作れますか?
Smalltalk は中間コード生成して VM 上で動かします→Run Anywhere
つまり脳内でしか動かないわけね
>711 君はメソッドbecomeなんて知らないんだろうな。 あと、convertingプロトコルでなしに、 NumberがPointになれるわけないじゃん。 持ってるデータの個数が明らかに違うことくらいは 分かってるのか?なれる方が変だぜ、そんなの。
717 :
デフォルトの名無しさん :03/11/24 16:34
>>712-713 What's the Squeak
http://www.mars.dti.ne.jp/~umejava/smalltalk/squeak/ >SmalltalkでVMを書いておいて後にCに変換する方法を取ることにした。
>Cに変換されたVMのソースはさまざまなプラットフォームでコンパイルされ、
>Squeakのイメージを動作させることのできるプラットフォームはどんどんと増え続けています。
>・UNIX
>・Linux
>・MacOS 9, X
>・Windows-NT,2000,XP
>・Windows-95,98,Me
>・Windows-CE
>・Dos
>・OS/2
>・Acorn
>・BeOS
>・Zaurus
>>707 Self 言語などプロトタイプベースの言語では通常、できます。
もっとも Self などではクラスとは呼ばずにトレイト(trait)と呼んでいるので、
クラスじゃないじゃんと言われればそれまでですが…。
>715 クラスが変われるってのはそういうことなんだろう? 動的分類ってのは。
>718 アーマークラスは?
コードに言わせれば「人の役割」クラスを コンポジションで接続すればOK。
まあ、あれだ。転職できるという事だ。 遊び人でもがんばれば賢者になれると言う事だ。 ひさびさにドラクエやりてー。
士農工商
ここの住人は現代の農と言ったところか 議論はできても、士には繁栄されない。 中には工ぐらいもいるのかな
ドラクエの転職みたいなのってどうやって実現するの? 人間クラスから継承して遊び人クラスを作る ↓ インスタンス化 ↓ 転職 ↓ 賢者クラスを作ってインスタンス化したものへコピー ↓ 遊び人クラスを破棄 これはちょっとスマートじゃない気がするし・・・・
>>727 723にかいてるやん。ピーター・コードも
しらないの?
だいたい、そういう状況になるときに
継承を使わないのは常識です。
729 :
デフォルトの名無しさん :03/11/27 07:59
話が発散してるじゃん。ハッサン。
ゲーマクラスのインスタンスが多数生成されています。
>>728 何の言語を使っているのか知らないけど、少なくともC++、Javaではその方法は使えない。
ちょっと考えればすぐわかることだろ。
733 :
デフォルトの名無しさん :03/11/27 13:03
ピーター・コードって人物名だったのか てっきりピーターさんが提唱しているコ(ry
>735 少しは本くらい読んだほうがいいと思うよ
Javaおぶぜくとせっけいはむずかしいけどいい本だね。
738 :
デフォルトの名無しさん :03/11/28 01:52
人の役割をクラスにするなんて 現実的なイメージが湧かないから駄目だよ。
>>738 分析と設計の区別がついてないアフォがいるよ。
>>738 わろた。だったら喪前はデザパタを否定するわけだな?
何がオブジェクト指向だ。 グローバル宣言の定数大量に並べてんじゃねー。 描画時に色着けてんじゃねー。 やつらはコマンド指向であってオブジェクト指向ではない。
???
745 :
デフォルトの名無しさん :03/11/28 03:36
>>743 HSP厨にHSPはOOPLだとでも言い負かされましたか?
>>745 何が問題なのかもわからん馬鹿はゴミみたいなコードでも書いてデスマやっとけ。
748 :
デフォルトの名無しさん :03/11/28 13:17
>>731 は完全な勘違いだけどそれをすべて
>>723 の方法で解決するのもまた違う気がする
本来なら動的型変換をC++、Javaがサポートしなければいけないところを
>>723 の方法で逃げているだけだろ
749 :
デフォルトの名無しさん :03/11/28 14:51
HSPユーザ extends プログラマ // 不適切な継承 HSPユーザ extends DQN厨房 // 適切な継承
>>749 だから継承したらいつまでたってもDQN体質抜けねーっての
751 :
デフォルトの名無しさん :03/11/28 19:20
>>746 HSPはOOPLであるが手続き指向的性質が強すぎるというのが正しい解釈だろうな
何で class = 分類 という簡単な翻訳ができない人がいるみたいですね。
753 :
デフォルトの名無しさん :03/11/28 20:19
>>752 そういう君もオブジェクト指向わかってないだろ
classというものは単純な「分類」という意味だけではなく
「階級」といような階層的な性質を強く持っている。
>>752 「関東の一個残し」ってやつだな。板が全体的にsage率高いし。
おいらは住民というほどでないので遠慮しとくけど。
755 :
デフォルトの名無しさん :03/11/28 20:37
>>750 // 委譲を使ってみました。
public class HSPユーザ {
private static final State state = new DQN();
}
756 :
HSPユーザー :03/11/28 21:00
HSPをなめんじゃねえぞ
757 :
デフォルトの名無しさん :03/11/28 21:04
>>755 //それはオブジェクト指向ではない
public class HSPUser extends Programmer {
protected Constitution constitution=null;
public HSPUser(Constitution constitution)
{
this.constitution=constitution;
}
public HSPUser()
{
constitution= new DQN;
}
}
758 :
HSPユーザー :03/11/28 21:04
簡単だからって甘く見ないで
//それはオブジェクト指向ではない public class HSPUser extends Programmer { protected Constitution constitution=null; public HSPUser(Constitution constitution) { this.constitution=constitution; } public HSPUser() { constitution= new DQN(); } }
760 :
HSPユーザー :03/11/28 21:37
そんなに言うならCとHSPは何が違うのか言って御覧なさい
>>747 生まれて初めて「恥の上塗り」というものを
拝見いたしますた。
>>748 本来なら動的型変換をC++、Javaがサポートしなければいけないところを
>>723 の方法で逃げているだけだろ
ドラクエの転職をサポートするなら
Coadのパターンのようがいいんじゃないですか?
転職しても以前の職業の能力は保有
するわけですから、多重度が多のコンポジション
で「役割」クラスを持つほうが
よいと思います。動的な型変換で対応できる
問題ではないと思いました。
762 :
デフォルトの名無しさん :03/11/28 23:07
>>761 粒度が小さくなりすぎるのが問題なんだよ
763 :
デフォルトの名無しさん :03/11/28 23:15
>>760 比較対象を非OOPLであるC言語に限定するところに卑劣さを感じます
765 :
デフォルトの名無しさん :03/11/28 23:19
>>764 ではC言語とそのほかのOOPLで実際にOOPしたコードを
両方書き込んでください
768 :
デフォルトの名無しさん :03/11/28 23:30
話の流れと関係ないけど
>>1 たとえ話はCなどで沢山プログラムを書いてきた人へ向けたものであって、
ロクにコードを書いたことのない人は相手にしてないのです。
役割クラスをコンポジションで持つなんてマヌケな設計をする奴は氏んでいいよ。
770 :
デフォルトの名無しさん :03/11/29 00:21
C言語でOOPした例といえばgtk+ってのがあるね
またgtk+か(笑) そればっかり(笑)
>>693 そう思う。
1 + 1 の式で、1と+をまとめて定義するのがオブジェクト指向。
>>698 クラスはオブジェクトの集まりだろう。
共通点があるオブジェクトは集まってクラスになる。
というか、実際のところは1つのクラスから共通点を持つオブジェクトを複数作るといった感じだけど。
>>703 俺も、クラスは
>>706 が言っている「学校のクラス」がなじみやすいと思うよ。
外国産のゲームだと職業ってことになってるけど、これもなじみやすいだろ。
全部ひっくるめて「組」にでもしときゃあいい。○○組という言い方になる。
>>707 インスタンスになったあとでも自身を変えられるのは「エージェント指向」になるんじゃないか?
学習や成長をするオブジェクトってところか。
でも、何から何まで変われるわけじゃなく、機能追加ができるというものだったと思う。
776 :
デフォルトの名無しさん :03/11/29 01:48
>>768 どうやらもともとは入門書を問題にしてるようだが、
俺の持ってる林晴比古著「新VisualC++6.0入門スーパービギナー編」は
始めCとの違いの説明から入るが、「オブジェクト指向」なんて一言も出てこない。
索引を見ると「オブジェクト…9」と1頁だけにあり、そこを見ると
「このときyamadaは関数機能も内臓しているので、
もはや「変数」と呼ぶことには無理があります。
そこでこれを「オブジェクト」と呼んでいます。」
これだけだ。なにも悩んだり憤慨したりする必要はないのではないか。
キャツの本は右も左も知らない時に買って 今はもう本棚に入れるのも恥ずかしいから捨てたなぁ
779 :
デフォルトの名無しさん :03/11/29 03:40
>>773 ネタか?クラスは型の拡張。型だ。
新製品なので新しい言い方をしたかっただけだろ。
クラスもオブジェクトですが何か
クラス→オブジェクト形式の静的型付け言語って テンプレートないとどうしようもないね(ワラ
クラスの旨みって継承と多態だけだしゲハハ
グワッ
>>780 クラスがオブジェクトとして現れる言語なんて限られてるだろ(ゲラ
つーか、もうテンプレだけでいいよ(ブワッ
多態なんてテストで迷惑なだけだし(クックック
787 :
デフォルトの名無しさん :03/11/29 03:50
>>780 オブジェクトは変数だボケ。
人クラスのオブジェクトなら人型変数だボケ。
つーかおまえらが多態で表現したいオブジェクトなんて高が知れてるよ(ギャハ
>>787 つまりOOPL無しにオブジェクトの説明はできないと。
継承と多態は無駄にプログラムを複雑にする
だからといってコンポジションですべてが解決するわけではない。
792 :
デフォルトの名無しさん :03/11/29 04:15
>>790 継承と多態だけではなく
継承、多態、集約、委譲をつかいこなしてこそオブジェクト指向ってわけだね
逆に言うとこれらを何一つ使えないC言語はOOPLではないと。
なんでそこでC言語出てきますかハゲ
794 :
デフォルトの名無しさん :03/11/29 04:20
ん?C言語を引き合いに出したら悪いのか? その理由を説明してくれ
集約と委譲は使えるだろ。
796 :
デフォルトの名無しさん :03/11/29 04:36
>>795 実際使ってるやついるのか?
そこまでやるならC++使ってるだろ
798 :
デフォルトの名無しさん :03/11/29 05:26
>>795 ,797
グローバル関数の隠蔽方法についてとくと語ってもらいましょうか。
グローバル関数はパブリックメソッドだろ
800 :
デフォルトの名無しさん :03/11/29 05:50
そういやドラクエの転職ってパラメータは下がるけど 魔法とかは覚えたままだよな 委譲するにしても結局すべての職業を持たないとダメなのか でもその場合だと職業によってホイミとかベホイミの魔法が 重複してくるけどそれはどうやって解決したらいいの?
801 :
デフォルトの名無しさん :03/11/29 05:59
>>799 関数のカプセル化といったほうがいいかな?
802 :
デフォルトの名無しさん :03/11/29 06:04
803 :
デフォルトの名無しさん :03/11/29 06:07
でこれーた
>>802 すごいな。
ただ、トリッキーなコードになるから、他の人にはよめなそうだ。
ミスも多そう。なにかツールの助けが欲しいな。
とか言ってると、プリコンパイラ形式のC++/Objective-Cになるわけだな。
805 :
デフォルトの名無しさん :03/11/29 06:27
806 :
もとスレ1 :03/11/29 07:47
>>768 よく、想定対象読者のようなことが書いてあるけど、とてもそうは思えないよ。
おめえら俺達のことなんだと思ってんだよ
>>800 少しは知恵が働くようになったみたいだな。
もう少し考えてみろ。もっと根本的な問題があるから。
809 :
デフォルトの名無しさん :03/11/29 10:07
冒険者オブジェクトの職業プロパティに職業オブジェクトが与えられるが、 この職業オブジェクトに魔法メソッドはなく、習得できる魔法コレクションがあるのみ。 これに従って冒険者オブジェクトの魔法コレクションに魔法オブジェクトが追加される。 魔法コレクションは魔法名で一意なので弾かれるか上書きされる。 この魔法オブジェクト1つ1つがその魔法の実行メソッドを持つ。 「盗む」は盗賊固有のメソッドなので 冒険者A.職業プロパティ.盗む となるが、魔法を実行する時は 冒険者A.魔法コレクション("ホイミ").実行 こうなる。
810 :
デフォルトの名無しさん :03/11/29 10:17
>>802 グローバル関数の問題が解決されていない
オブジェクトをレシーバとして使ってない
用はカプセル化できてないじゃん
811 :
デフォルトの名無しさん :03/11/29 10:24
>>807 もしあんたがHSPだけしか使えないのなら
流行にのったおばかさんだと思っている
まあ俺くらいのテクニシャンになるとマシン語ですら オブジェクト指向ばりばりなコードを実装できるわけだが。
815 :
デフォルトの名無しさん :03/11/29 13:14
そりゃプリプロセッサ多用したらどんな言語でも オブジェクト指向になるはな。 言語仕様変えてるわけだから
816 :
デフォルトの名無しさん :03/11/29 13:28
>>802 関数ポインタ使わずにメソッド実装したつもりになっている点だけ見ても、
す ご く イ タ イ 系 の サ イ ト
↑多態のとこで使ってるみたいですが?
818 :
デフォルトの名無しさん :03/11/29 13:39
>>817 多態のとこまでわざわざ使わないでいる理由は何だ?
コンパイルすればOOも糸瓜もない
>>806 そうなんだ。
最初はやっぱり肥大化した構造体やら似たような構造体の乱立とアクセス関数の氾濫やら悩んだりして、
その上でフルーツの話を読んだほうがいいと思うんだけどねw
ともかく今のアプリケーションの規模を考えると、脊髄反射的にプログラムを書き始めようとすることは悪でしかない。
フルーツの話くらいまどろっこしくて丁度いいんです。
そういや漏れのサイトでサンプル重視のを書いてた。幼稚だけど。
ttp://www02.so-net.ne.jp/~kitaz/javatuto4.html 自分でさらすのって、どうなんだろ…。
僕 は 日 曜 プ ロ グ ラ マ ー だ か ら い い ん で す
いまどきアプレットなんてはやんねーんだよ
825 :
デフォルトの名無しさん :03/11/29 19:19
初めて来ました。 まるっきりOOがわかってない人が8割ぐらいですかね。 さよなら。
826 :
デフォルトの名無しさん :03/11/29 19:20
>>821 eneChara = new EneChara(50, 0, images[1], rand);
第4引数を外部から与えるならMyCharaクラスとEneCharaクラスを分ける必要ないんじゃないかな。
分けるなら第4引数をなしにできないのかな。
myChara.draw(offgraph, this);
この2つの引数は初期化の時点で与えて、myChara.draw();とか
myChara.visible(true);ではまずいのかな。隠す時はmyChara.visible(false);とか。
828 :
デフォルトの名無しさん :03/11/29 23:52
ようやくここまで読んだ、、、 ためになった気がする。
>>821 本筋とは関係ないことだけど突っ込んでいい?
>>827 クラス自体は分けざるを得ません。
コンストラクタの引数を同じにして、違いは引数オブジェクトの中身というか多態
によって吸収させるのがよいとは思います。でもいきなりそんなことはしません。
draw()の引数に関してはそうですね。でもいきなりそんな(ry
>>829 おながいします。
ほんとに全然関係ないけど、イラクで邦人が殺害され…
関係ないけど、6:15から記者会見か・・・。 2人殺害か。 小泉さんは、自衛隊派遣しない強い理由ができてよかったね。
>>830 あとせっかく隠蔽して代入用のメソッドがあるのに入力チェックしてないよね。
その値が別のメソッドで初めて利用されるならそこでチェックすればいいので、
代入時のチェックもいらないし。勉強用のサンプルってことで省略してるのかもしれないけど。
Cからの脱皮ということで、構造体との差別化を図りたいような気持ちも感じるんだけど、
一般的なオブジェクトもプロパティに関しては、代入時の入力チェックの必要がなければ
構造体と同じにしてると思うけど。その方が分かり易いし。
その上で、初期化用のメソッド等で一気に代入できるようにしてあるのはいいと思う。
それがあっても複数行使って代入する流儀の人もいるけどね。可読性を上げるためかな。
ばかか。おまえら。 構造体だと中身がみえるだと? 設計を見直せ。あほ。くず。
>>830 アクセサーがあるのにフィールドがprivateになってないですよ。
見たところprivateだとまずいってことはないのでなるべくprivateにするべき
そんでもって、スピードを気にするならアクセサーをfinalメソッドにすればいいです。
>>834 もっともですね。
ではまたいつかお会いしましょう。あー、最近リンゴ食べてないなあ。
次スレ オブジェクト指向の説明についてだYO!!
837 :
デフォルトの名無しさん :03/11/30 15:58
>>828 ここ議論はめちゃくちゃなので鵜呑みにしたら
ごみプログラムしかかけないよ。
>>834-835 なんだ?setXとかgetXとかあるのでprivateを忘れただけだと思ったんだけど、
意図的なの?じゃあなんでそんなメソッドあるの?
で、privateにするんじゃなくて逆にsetXとかgetXを廃止だよ。
特に入力チェックしてないし、Imageだけ取り替える場面もあるでしょう。
一般的な製品の設計に合わせようよ。
>>838 あなたは入力チェックのためだけにアクセサがあるとでもいうのか?
(´゚д゚`)
Pオツさわり隊
842 :
デフォルトの名無しさん :03/11/30 19:18
-- このスレは閉鎖の刑に処す! オブジェクト指向神より --
>>839 他には、代入時や取得時に何か演算が必要なもの。
(単純な例では違う数値単位で扱いたいもの。
複雑な例では行列で持ってると思いきや内部的には現在の1行分ずつしか
フィールドオブジェクトを持たないレコードセットのようなもの。)
代入時に他の値も同時に変える必要があるもの。など。
一言で言うと、チェックにしろ変換にしろ、代入・取得時に何か処理が必要なもの。
先の例の場合には得に変換の必要はなく、x、yの範囲や、
Imageの大きさなどに制限があり得るので入力チェックだけを取り上げた。
次スレ YO!!YO!!オブジェクト指向の説明についてだYO!!
カプセル化の意味って言うのはつぶしが利くってことが一番の恩恵だと思うんだけど そのために今は値の代入・取得にしか使ってないからってなくせってのは乱暴じゃない? それともカプセル化メインのサンプルじゃあないからそこまで考えちゃいけないのか?
>>838 ああもう!確かにprivate付けたほうがいいですよ付けたほうがね。
アクセサを使う意味の説明をして後のほうのサンプルには付けさせてもらいます。
いやほんと、喪前さんのseXを廃止してくれ。意味わからんけど。
847 :
デフォルトの名無しさん :03/12/01 14:43
そもそもこれからの時代はエージェント指向なのに いまさらオブジェクト指向なんて考えるのが駄目なんだよ。
これからの時代は、だとか、いまさら、 だとか言ってる時点でそいつの脳みその容積はだいたい知れてしまうな。
>>847 オブジェクト指向なしでエージェント指向ができるのならね。
851 :
デフォルトの名無しさん :03/12/01 23:19
えーじぇんと指向って何ですか??
最近comp.lang.functionalへのOO厨の殴り込みがないな
おまえらそんなに自身があるなら ドラクエくらいオブジェクト指向で表現してみろよ。
_, ._ ( ゚ Д゚) ( つ旦O と_)_)
まあドラクエは間違ってもJavaではない訳だが。
>>855 次期FOMAではiアプリでドラクエでるらしいぞ
オブジェクト指向の説明なのに、 必須要件でもないクラスとか継承とかの話をするのはおかしいだろ 継承がサポートされてないVB・JavaScriptとか、 インスタンスごとにメソッドを動的に追加できるSmallTalk・Rubyとか、 どう説明するんだ?
>857 どこで聞き齧ったのか知らんが、批判するなら 基本的な部分で間違えまくりなのはみっともないぞ。 非OO言語でもOOでできることができるから、何だ? あと、せめてSmalltalkのTは小文字で書けや。
お前ら新しい発見しちまったんだが、OOPの糞論議と同程度にXMLの風説が おかしいぜ。何かがまちがっている理解しているヤシがXMLの世界にもおる。
>>859 どんなん?
そういった理解するやつは「XMLでウハウハ」から入るからねぇ。
VBはOO言語です。
CPUに渡るころにはみな同じ
863 :
デフォルトの名無しさん :03/12/03 05:31
ばかちんぽなやつばっかり。
ばかちんぽ・・・ワロタ
CPUに渡す時に肥大でノロイ、ダメダメコードになるから オブジェクト指向やOOPL、もっと具体的に言えばC++やJavaを 非難してきたんじゃなかったのか?
すれ違い。
C++はまともに書けばCと変わらないコードを吐くだろ
次スレ YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!YO!!YO!! YO!! YO!! YO!! YO!!オブジェクト指向のYO!!説明についてだYO!! YO!! YO!! YO!! YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!
870 :
デフォルトの名無しさん :03/12/04 11:07
>CPUに渡るころにはみな同じ 前橋はカエレ!
前橋人気者だな(w オセロゲームの続き書いてくれないかな。
872 :
デフォルトの名無しさん :03/12/04 14:59
まえはしがいなければ日本のオブジェクト指向は さらにしんぽした。
>>869 1 ATL 相談室(591)
2 くだすれDelphi Part8 (超初心者向け)(718)
3 YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!YO!!YO!!(128)
4 YO!! YO!!(533)
5 YO!! YO!!オブジェクト指向のYO!!説明についてだYO!! YO!!(3)
6 YO!! YO!!(161)
7 YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!YO!!(921)
8 【初心者】Java質問・相談スレ37【大歓迎】(252)
9 Perlについての質問箱 7箱目(425)
お前ら2ch外のコテハン叩くのやめれ。 コテハンだからといって糞壁のような基地外ばかりではないんだから。
875 :
デフォルトの名無しさん :03/12/04 15:39
>>867 確かにクラスを静的メンバだけにすればCと変わらないコードになるかもしれませんね
オブジェクト指向プログラミングといえるのかどうかは知りませんが
876 :
デフォルトの名無しさん :03/12/04 15:40
>>873 肝心のスレにはレスが全然ついてないのにワラタ
877 :
デフォルトの名無しさん :03/12/04 23:50
>>874 いや彼もある種の基地外だろう。ていうか、なんで援護する奴がいるのか不思議。
>>875 別にメンバをヒープから取ろうがスタックから取ろうが
Cでも普通に出来ますが。
あなたのような人がいるからオブジェクト指向についての迷信が
生まれるのです。
>>878 お前のような馬鹿がいるからスレが無駄に伸びるんだよ。
自覚が無い馬鹿は手に負えないね。
>>880 論理的に反論できないと、バカ呼ばわりですか。
世間では逆ギレって言いますよ。そういうの。
>>882 反論できないのなら、それはそれで良いでしょう。
しかし、その場合君は思考を言葉で表す事が出来ない
無理で無能で低脳な、最新の流行にしか興味がない
低俗な人間だという事を自覚しなければいけません。
つまり、君こそが「バカ」なのです。
>>878 =883
>867 :デフォルトの名無しさん:03/12/03 19:09
>C++はまともに書けばCと変わらないコードを吐くだろ
>875 :デフォルトの名無しさん:03/12/04 15:39
>
>>867 >確かにクラスを静的メンバだけにすればCと変わらないコードになるかもしれませんね
>オブジェクト指向プログラミングといえるのかどうかは知りませんが
>878 :デフォルトの名無しさん:03/12/06 10:49
>
>>875 >別にメンバをヒープから取ろうがスタックから取ろうが
>Cでも普通に出来ますが。
>
>あなたのような人がいるからオブジェクト指向についての迷信が
>生まれるのです。
いったいどこに反論を期待しているのやら。
>>880-1000 お前のような馬鹿がいるからスレが無駄に伸びるんだよ。
自覚が無い馬鹿は手に負えないね。
バカじゃないのお前ら。 どんな物にも良書と悪書ってもんがあるんだよ。 お前らが言っている事なんて良書を読めば全て解決なんだよ。 いちいちスレ立ててグダグダくだらん事いってんじゃねぇぼけ。
>>883 正しい日本語を書けるようになってから出直してね。
君のような奴はたいてい「日本語以外に反論できないんだろう」などと
アフォなこといいだすからね。
もしくは半島へ帰れ。
>>正しい日本語を書けるようになってから出直してね。 >>アフォなこといいだすからね。
時々半島に帰れ!フレーズが出てくるが房総半島とか志摩半島だと笑うよな。 ユカタン半島でもあれだけどさ(w って、すれ違いすぎ。
Javaなんて死んでもやりたかないね。
895 :
デフォルトの名無しさん :03/12/09 15:53
じゃばでべろっぱみた。有期くんはやっぱオブゼクト 嗜好をよくわかってるね。
そういことをいうと、また前橋君が「コンチクショー」ってなるぞ。
897 :
デフォルトの名無しさん :03/12/10 10:14
おぶぜくと思考は実装オタには理解不可能
良書を読め 終 了
899 :
デフォルトの名無しさん :03/12/11 03:30
900 :
デフォルトの名無しさん :03/12/11 08:19
>>899 前橋発見!!!!!!!!!!!!!!!!!!!!
帰れ
>>899 プログラムよりの本でOOをうまく上手に説明
しているものはないように思います。
敢えてあげるなら上にもありますが、Javaディベロッパの
結城さんの連載がよいと思います。
憂オブ
>>902 それもいいね。でもバシ君は嫌いみたいですが。
やっぱDDJがなくなったから改訂版がでないんだろうか。
浅海さんの本でいいやん。
906 :
デフォルトの名無しさん :03/12/11 22:44
あるクラスAのオブジェクトaのメソッドを別のクラスBのオブジェクトbで使用したいんだけど、 こう言う場合はどうすればいいんだ? ポインターを介して継承とかオーバーライドしてなんとかするの?
>>906 ただ単にクラスをわたせばいんじゃないかい?
>>906 System.out.printlnもそうなってるだろ。
フレンド関数と友達になります。
でらげーと
ファビョーン
ばかじゃないのおまえらあ 氏ねぇぇぇぇぇ
>>913 つまらんやつめ
元々の話に戻ると、初心者向けの本で動物に例えるのは確かに安直な受け売りだと思うな。
でもアイコンとアプリの関係も昔からある単なる関連付けだし広がりが無いので適切とは思えない。
漏れはやっぱりアクションゲームあたりが最も適切だと思う。
>>914 いや、結局変に例えるのが良くないという話だ。
だめな奴は結局何に例えたところで理解できないし わかる奴は先人の書いたソース何本か眺めてりゃ理解できる
g/理解でき/理解させられ/
オレ様的でもいいのオブジェクト指向の説明 をつらつら書き連ねたほうがよいスレになるとおもわれ。
オブジェクト指向とは、女のケツのようなものだ。
オブジェクト指向とは、マルチプルインスタンスだ。
オブジェクト指向とは、SE・PGに技術格差をつけるためのものだ。
オブジェクト嗜好とはマルチだ。
オブジェクト指向プログラミングとは曼荼羅を読み解きながら新たに書き加えて行くようなものだ。
オブゼクト思考とは ( ´_ゝ`)フーン
オブジェクト指向とはイメージング世界のことだ。
救世主はあらわれますか?
でも預言者(Oracle)は違うって言った。
1,2のオラクルってどんな顔だったか思い出せないし、さっぱり変わったように見えない
934 :
デフォルトの名無しさん :03/12/20 13:39
ヘ_ヘ ミ ・ ・ ミ ( ° )〜
935 :
デフォルトの名無しさん :03/12/20 19:37
>Java謎+落とし穴徹底解明 この本のおかしな箇所をすべて指摘できれば OOPをマスターできたと判断できるわけですね。
もうこんなスレはどうでも良い。 ネタはマ板でやれ。
938 :
デフォルトの名無しさん :03/12/22 15:59
前橋くんってなんで叩かれるの? 人徳がないんだろうか?
940 :
デフォルトの名無しさん :03/12/23 01:02
>>939 初心じゃないんだけど、読む価値あるかな?
2)段階的詳細法/段階的詳細法によるプログラムの設計
ここらへんが気になるが、アットマークで読めるレベルだったら意味ないしな
次スレはマ板でお願いします。
943 :
デフォルトの名無しさん :03/12/23 18:44
「自動販売機.buy_button」の説明はなるほどオブジェクト指向だ、 現実にマッチした良いモデル化だ。 しかし、 「消しゴム.size」 で、消しゴムのサイズ(cm)がでるとすると、現実にマッチしない。 すなわち、オブジェクト指向というのは、現実世界をうまくモデル化 出来ない。
944 :
デフォルトの名無しさん :03/12/23 18:48
>>943 int cm = 定規.計測(消しゴム);
何で現実世界をモデル化しなきゃならんのだろうか。
「自動販売機.fly_to(moon)」 で、自動販売機が月に飛ぶとすると、現実にマッチしない。
うんこすれ
うんこでオブジェクト作りたい
949 :
デフォルトの名無しさん :03/12/24 00:04
>>945 それがオブジェクト指向の目的だからです。
ちがう??
>>944 それなら、単純に
cm = length(消しゴム)
の方が普通だし、簡潔&明瞭。
950 :
デフォルトの名無しさん :03/12/24 00:06
ってことで、950ゲットとなったわけですが、次擦れタイはどうしましょう? 【非現実的】オブジェクト指向の説明について 3ループ目【より複雑】 ぐらいでいかがでしょう?
もういらねーよ、このスレ。さすがに前橋ネタも飽きたし。
>>945 現実をシミュレートするのが、コンピュータの仕事の一つだから。
元々、オブジェクト指向って、シミュレーションあたりから
出てきたんじゃなかったっけ?
>>940 買ったけど、構造化プログラミングのところを
立ち読みすれば十分。
OOはいらね。
>>951 飽きてねえ。C厨でいりゃいいのにOO屋きどりだもんね。
956 :
デフォルトの名無しさん :03/12/24 16:58
オブジェクト指向でいう 責任とか責務ってのはなんだい?メソッドということ? 協調動作?とか言うのもよくわからん。 他のオブジェクトのフィールドやメソッドの引数に自分を渡してあげるってことかい?
うーんますます臭気が漂うスレですね。 Java男にうってつけの。
>>945 分かりやすいから、じゃないかなぁ
保守も、拡張も
959 :
デフォルトの名無しさん :03/12/26 22:38
手元の本にはユースケース毎に開発をすると良いと書いてある。 一つのユースケースには、大抵一つはバウンダリークラスがあると思う。 バウンダリークラスは、例えばWindowsだと適当なダイアログ&コモンコントロールで担いそうだ。 と、ここまで読んで思ったのですが、複数のユースケースが 同じダイアログやウィンドウを操作に使う場合も多々ありますよね。 これだとユースケース別に開発した場合、後で統合するのが 凄い面倒そうな気がするんですが、そんなもんなんでしょうか? ダイアログならまだ良いのですが、キー操作なんかだと更に…。
960 :
デフォルトの名無しさん :03/12/27 00:19
まぁ、最近思うことは はじめの内は、こりゃいいかも?などと言いつつのめり込みつつあった わけだが、 最近は、やはり普通の非OOの方がコンピュータには、マッチすると感じる ようになった。
>>960 それは良かったな。
まあ、コンピューターにはマッチしている
という理由で高級言語よりアセンブラで
プログラムしたがるような真似をしたいなら、
本人の勝手さな。それで仕事が貰えれば良いね。
漏れは楽をしたいからできればOOで行きたいけどな。
>>960 コンピュータがどこまでいってもデータプロセッサであり、
プロセスという概念を一般化するとどこまでいっても Source-Transform-Sink であるし。
システム境界の外側から眺めると、そりゃそうでしょうね。
でも、STSの手続きを幾重も多重にネストする手法でシステムを把握可能かどうかはまた別の話。
自分も
>>961 と同じく楽をしたいから、もう少しこの道をいくよ。
>>959 サブユースケースとか書いてない?>手元の本
ユーザーの登録、削除、情報の変更を一画面で行うような仕様があるとする。
たぶんユースケースは次のように構成されると思う。
UC [ユーザーを管理する]
SubUC [ユーザーを登録する]
SubUC [ユーザーを削除する]
SubUC [ユーザー情報を変更する]
バウンダリクラス「ユーザー管理画面」が出てくるのは[ユーザーを管理する]。
SubUC はそれぞれインタフェースを持っている。
おそらく「ユーザー管理画面」クラスのコントローラは、
SubUCのインタフェースに対して必要な情報をもつオブジェクトを渡して処理を依頼する。
処理が完了すれば、
「ユーザー管理画面」クラスが参照しているモデルが更新されており、
表示内容も更新されるはず。
964 :
デフォルトの名無しさん :03/12/27 05:31
>>959 ユースケースと画面は別物です。(かなり近いけど。)
ユースケースはユーザーが利益を得るためために行うシステムとのインタラクションを記述したものであり、
一対一でバウンダリクラスとマッピングされるものではありません。
なのでユースケース分析が終了した後にそれらのユースケースが効率よく達成されるような、
ユーザーインターフェースを設計するのが普通です。
おそらくその「手元の本」で言われているようなユースケース毎に開発するとよいというのは
ウォーターフォール的に複数のユースケースを並列開発するようなことを言っているのではなく、
イテレーションを行い各イテレーションのなかで一つ一つのユースケースを達成するように開発することを
薦めているのではないかと思います。
>>964 イテレーションなんて、手間かかるだけだよ。
ウォーターフォールまんせー。
何度も客先に納品なんてやっとれん。
>>961 ,962
まともなレスあんがとう。
いまどの言語つかってます?
私は言語オタというわけでは決してないんだけど、
必要に迫られてオブジェクト指向系だとPython/Rubyあたりを
使っています。(過去系ではないところが、説得力ないんだけど。)
で、出戻り先は古典Cです。w
***
おもうんだけど、古典Cは白紙に地図をかくような感じ。
オブジェクト指向は、方眼紙に地図をかくような感じ。
たしかに、桝目が描くものにマッチしていれば楽なんだけど、
そうでないケースも案外多かったりして。
ちょっと、憂鬱な毎日。
967 :
デフォルトの名無しさん :03/12/27 13:31
>さすがに前橋ネタも飽きたし。 OO関係のMLでの前橋の香ばしい書き込みを読むと楽しいぞ。 あれだけ専門家がいる前でどうどうと珍説を述べるのだから さすがは天然はひと味違うと確信する。
968 :
デフォルトの名無しさん :03/12/27 20:20
つまり、オブジェクト指向自体がアフォってことでよろしいですか?
969 :
デフォルトの名無しさん :03/12/27 20:29
>>968 お前はこれからアイコンをクリックしてプログラムを起動させるなよ。
970 :
デフォルトの名無しさん :03/12/27 20:53
971 :
デフォルトの名無しさん :03/12/27 21:12
ランチャーのことじゃないぜ。 ワードファイルクリックしてワードを起動させるなよという事だ。 設定ファイルクリックしてメモ帳も同様だ。
973 :
デフォルトの名無しさん :03/12/27 21:28
974 :
デフォルトの名無しさん :03/12/27 21:29
>>968 おまえは
ワードファイルクリックしてワードを起動させるな。
設定ファイルクリックしてメモ帳も同様だ。
そもそもwindowsを使ってないヤシも多いスレなわけだが
OOだめだとAlto - Lisa- Mac の流れのOSが使えなくなるなあ。 X ならまだ何とかいけるかも。
なんか必死な奴がいて笑える
978 :
デフォルトの名無しさん :03/12/27 23:54
>>968 のような奴は
この世に生きている意味がないだろ。
コンピュータの世界に逝った方が良い。
979 :
デフォルトの名無しさん :03/12/28 00:44
Windows使ってなかったらどうせLinuxだろ。
いまだにCUIの奴なんているの?
とにかくOOの重要性分かってないような
>>968 はGUIだろうな。
しらずにOOの恩恵を受けてるんだろうな。
オオでないとGUI書けないと思っているアフォが このスレでじゃれ合っているだけなんだな。 お前らラッパーだけ作ってろ。あふぉが。 クリエイティブな競争力がある物を想像する事 オオなんてじゃまなだけなんだよ。ばか。
>>979 gtk+もろくに知らないやつが偉そうに文章書くな。
アフォ。
糞スレ
>>980 ,981
お前がアホだろ。
俺は元スレ1だが、OOでGUIコーディングするなんて一言も言ってないぜぼけが。
GUIにおいて、ファイルのアイコンクリックしたらそれに関連するアプリケーションが立ち上がるというOOの概念を書いてるんだよ。
OOなんてじゃまなだけっていうアホが反論あるときは、自分のPCの環境書き込んでからにしろよな。 GTK+使ってるのならOOの恩恵受けまくりだろ。
List data = new Vector(); と書ける様になるまで2年かかりました.
一文字あたり約1ヶ月か・・・
>>963-364 詳細な解説、具体例、心から感謝です。
特に並列開発可能だと思っていた所が、大きな誤解だったようです。
ユースケースなら何でも良いわけではなく、SubUCに上位するユースケース毎に、
或いは、あくまでイテレーション(機能追加)していく形で開発するのですね。
となると複数のユースケース、またはサブユースケースに
またがるバウンダリクラスというのが、当たり前のように出てきそうですね。
これを手がかりに、もう少し勉強を進めてみます。お二人ともレスありがとうございました。