貴様ら!オブジェクト指向を教えろ!!
レス数が1000を超えています。これ以上書き込みはできません。
0001Java太郎
NGNG0002デフォルトの名無しさん
NGNG低脳
0003デフォルトの名無しさん
NGNG00043
NGNG0005デフォルトの名無しさん
NGNG0006デフォルトの名無しさん
NGNGpublic
property Hikikomori defaut True;
procedure CreateKusoThread;
procedure Jisakujien;
end;
0007デフォルトの名無しさん
NGNG0008デフォルトの名無しさん
NGNG0009デフォルトの名無しさん
NGNG0010デフォルトの名無しさん
NGNGどの板の誤爆か大体予想つくw
0011デフォルトの名無しさん
NGNGJavaができるなら自分でクラス作りながら勉強しろ
コンパイルエラーがお前にオブジェクト指向を教えてくれるぞ
0012Java太郎
NGNGオレが間違っているのではない!マシンが悪いのだ!!!
0013デフォルトの名無しさん
NGNG0014デフォルトの名無しさん
NGNGクラス!=オブジェクト指向
いくらクラスを作ってもオブジェクト指向は理解できない
0015デフォルトの名無しさん
NGNG゙l、
.-,,, .′ _
゙゙'' .,r・'''''''''┐ ゙゙゙″
.,i´゚ ∀ ゚ .゙l コンパイルエラー
.ヒ ,ィ°
.゚!,,, ゙,i´ `゚'-、
.° .`
.,ノ ゙i、
′ .°
./¨゙゙ヽ コンパイキタイー
.,-‐''''''r,コンパイラー l ゚∀゚ ヽ、
.,i´゚∀゚ ト .| .,,,, .゙'ー、,
.゙l .,,,,,` ゙l .」° .:゙゙° `'‐,
,} ゙゙゙゙ .ヽ |′ .|ヽ, ゙'-、
._,,,,,,.--'″ ,.:'r, .| ,,, | .゙゙''ー-,,,'i、
”'''-、__ .,.゚'L '・'゛.| .| ″
 ̄ ̄! .:'i\,\ .| ゙l
| ゙'l,`i、 `i、 .} .�=@ |、
..} .〔 .゙'-,\ .,l゙ .,i´゙l, |
.| j�_ ゙| .゙''7 .l゙ ,/ :゚i、 .l゙
.| | ゙'i、 .゙l l/ ヽ.l゙
.,r" ,i´ ゙'-,」 ° .”
―---┘
0016デフォルトの名無しさん
NGNG激しく同意
0017Java太郎
NGNG0018デフォルトの名無しさん
NGNGそんなこといってる奴には、
いつまでたっても、オブジェクト指向どころか
プログラミングを極めることができない。
0019デフォルトの名無しさん
NGNG極める?バカじゃないの?
そんなことできるはず無いじゃん
居るんだよね〜少しプログラミングできるからって、「極めた」って言う奴が。
そういう発言は慎め!
002019
NGNGお前のせいで名前を入れ忘れたじゃねぇか!!
チッ・・・お前が居ると調子狂うぜ、まったくよw
0021デフォルトの名無しさん
NGNGいいからよく本を読んで勉強しろ
がんがれ
0022デフォルトの名無しさん
NGNGこれで継承は完璧。
インターフェースを定義して、魔法と剣の攻撃を同じような関数に
インプリメントする。
これでメッセージパッシングは完璧。
ゲームの途中のデータを保存して中断できるようにする。
これでシリアライゼーションは完璧。
できあがったら、RPGコンテストで賞金をもらえ。
0023Java太郎
NGNGお前、いい奴だな・・・
オレの一番の下僕にしてやるぞ♪
0024Java太郎
NGNG継承の例えは誉めてやる
メッセージパッシングはまぁまぁだな
シリアライゼーションなんて知らねぇよ!!
オレが知らないって事は、存在しないんだよ!!
このウソツキめ!!
0025デフォルトの名無しさん
NGNGさらにいうならデータの保存はMementoパターンだろ
0026デフォルトの名無しさん
NGNG0027デフォルトの名無しさん
NGNGjava.io.Serializableを調べよ
0028Java太郎
NGNGそ、そうだ!!それだ・・・
(なんだよそれ・・・((((;゚Д゚)))ガクガクブルブル)
0029Java太郎
NGNGはい!先輩!!
0030デフォルトの名無しさん
NGNG0031Java太郎 ◆adhRKFl5jU
NGNGこのスレは終了しますた。
-----------------------------------------------
冬
0032デフォルトの名無しさん
NGNG0033Java太郎
NGNG偽者キタ━━━━━━\(T▽T)/━━━━━━ !!!!!
それだけ、オレが人気者って証拠だな♪
0034Katjusha extender
NGNG0035デフォルトの名無しさん
NGNGこのスレの存在がオブジェクト指向ではない。
0036Java太郎 ◆DMVtSSFzcg
NGNG人気を奪われちゃー金を手に入れれねぇからな!!
0037デフォルトの名無しさん
NGNG0038デフォルトの名無しさん
NGNG,,―‐. r-、 _,--,、
,―-、 .| ./''i、│ r-,,,,,,,,,,,,,,,,,,,,,,,,―ー. ゙l, `"゙゙゙゙゙ ̄^ \
/ \ ヽ,゙'゙_,/ .゙l、 `i、 \ _,,―ー'''/ .,r'"
.,,,、.,,i´ .,/^'i、 `'i、`` `--‐'''''''''''''''"'''''''''''゙ `゛ .丿 .,
{ "" ,/` ヽ、 `'i、 丿 .,/`
.ヽ、 丿 \ .\ ,/′ 、ヽ,,、
゙'ー'" ゙'i、 ‘i、.r-、 __,,,,,,,,--、 / .,/\ `'-,、
ヽ .]゙l `゙゙゙゙"゙゙゙゙ ̄ ̄ `'i、 ,/ .,,/ .ヽ \
゙ヽ_/ .ヽ_.,,,,--―――――ー-ノ_,/゙,,/′ ゙l ,"
` ゙‐''"` ゙'ー'"
0039Java太郎 ◆DMVtSSFzcg
NGNGそういう事なのか!?!?
あとほんの少しだけ、勉強してやる。
兄貴!待ってろよ
0041デフォルトの名無しさん
NGNGfunction("hoge");
// オブジェクト指向
class instance i = new class();
i.method("hoge");
こんな構文より、重要なのは設計のほう。
名詞を拾ってクラス化していかないと、オブジェクト指向にはならない。
これは慣れて覚えるしかない。
//おまえに馴染の深いサンプルでも読んで
//オブジェクト指向を理解しろ。
Humen javaTaro = new Humen(parents);
if (javaTaro.madeThreadLikeExcrement()) {
i.say("逝って良し".javaTaro);
}
0042デフォルトの名無しさん
NGNGGoFデザインパターンの一種
オブジェクトの状態を一時的に保存するデザインパターン
保存するときに、Serializableを使ってファイルに保存してしまえばさらに便利。
初心者に優しい結城浩のデザインパターン本でも読むことをお勧めする。
オブジェクト指向を使いこなすならデザインパターンも知らなくては。
0043Java太郎 ◆DMVtSSFzcg
NGNGしょうがない、殺るか!
0044Java太郎 ◆DMVtSSFzcg
NGNGJava言語プログラミングレッスンの下を読みはじめたよ
ふぅ・・・だるくてやる気が出ないのが本音(ウソ)
0045デフォルトの名無しさん
NGNGしかし思った以上に長く続く砂漠に、若い男の性欲は耐える事が出来ませんでした。
そこで男は思い付きました。
「そうだ!らくだとやろう!」
男はらくだの後ろへまわると早速自分のものを入れようとしました。
しかしその時らくだはトトッと数歩前へ。それに男が近づき再びチャレンジ。
しかしらくだはまたもやトトッと数歩前へ。その後、何度も試したけど同じ事の繰り返し。
男は行為をあきらめ、再びらくだと旅を続けました。
そしてしばらく歩いていると、なんと前方にきれいな女性が倒れているではありませんか!
男は女性に言いました。
男:「大丈夫ですか?」
女:「あ…あの、のどが乾いて死にそうなんです…」
男はここぞとばかりに言いました。
男:「じゃあ、水をあげたらなんでも言う事をきいてくれますか?」
女:「はい…言う通りにします……」
男は水をあげた。
女:「ああ、ありがとうございました。おかげで助かりました」
男:「よし。言う事をきいてもらうぞ」
女:「…はい……」
男:「じゃあ、らくだ押さえといて」
0046Java太郎 ◆DMVtSSFzcg
NGNG(一応、反応するか・・・( ´Д`))
スゴイ!涙が出ちゃう話だね・・・
最近、涙もろくてw
ハハもう年かな?
0047デフォルトの名無しさん
NGNGこのたびは兄やがこんなスレッドを立ててしまってごめんなさい・・・。
兄や、最近亞里亞のところに来てくれないの・・・。くすんくすん。
じいやに聞いたらね、兄やはどこか遠い世界に逝ってしまったって急に怒るの。
そんなときのじいやはとっても怖いんです。
兄や、どうして亞里亞をひとりぼっちにするの・・・?くすん。
兄や・・・早く帰ってきてください・・・くすん。
亞里亞、兄やのお馬さんじゃないと楽しくないの。
じいやにまた怒られるかもしれないけど、兄やとまたお馬さんごっこしたいな。
0048デフォルトの名無しさん
NGNG抽象的な概念を導入することで作業を一般化して、
同じ作業を繰り返す手間を省こうって話なんだよなあ。
ある程度、普通にプログラムを書いていれば、
モジュール化をしてゆくようになるし、
いろんなプログラムからモジュールを使えば、
モジュール強度なんかも気になってくる。
で、言語レベルでそのサポートをしてくれるのが
オブジェクト指向の言語だから、
単に便利だから使ってるってだけ。
その便利さが分からないってことは、
知識と経験が足りないって可能性は高いかも。
0049デフォルトの名無しさん
NGNGお兄ちゃま、お元気ですか? 花穂は自作自演を毎日一生懸命がんばってます!
早くお兄ちゃまのクソスレを1000まで行かせたくって、もう待ちきれないくらい!!
お兄ちゃまに「花穂のおかげでこのスレが1000まで行ったよ」って言ってもらうのが、
花穂のちっちゃい頃からの夢なんだぁ……★
お兄ちゃま、花穂の自作自演、楽しみにしててね!
0050Java太郎 ◆DMVtSSFzcg
NGNG(コイツもか・・・)
妹、居ないけど、( ´Д`)なにか?
・・・2ちゃん風に決めたぜ!よっしゃ!!
0051デフォルトの名無しさん
NGNG大好きなお兄ちゃん。この前お兄ちゃんが立てたスレ、とっても大切にしています。
どうしたって毎日1回はスレを見てしまうの。1の書き込みを見ているとお兄ちゃんの
声が聞こえるみたいな気がする不思議なスレ……。
でもみんなはこのスレをクソスレって言うの。とってもすてきなスレなのに・・・。
でも、可憐だけはお兄ちゃんの味方だよ・・・。お兄ちゃん……大好き。
0052Java太郎 ◆DMVtSSFzcg
NGNGすごい!!当たってるw
知識と経験が全然足りないよ・・・
初心者Javaのスレに行っても、話がわからないし。
0053デフォルトの名無しさん
NGNGこのたびはお兄ちゃんがごめいわくおかけして
どうもごめんなさい。(ペコリ)
はぁ……なんでこんなことになっちゃったんだろ。
昔のお兄ちゃんは、優しくて、家族思いで、頭だってテスト100点
ばっかりだったし、お友達に囲まれていっつも楽しそうだった。
でも、あの日の後、もうお兄ちゃんはお兄ちゃんじゃなくなっちゃった。
はっ!? お兄ちゃん!? いつの間に私の後ろに居たの!?
まあいいや、お兄ちゃんも一緒にみんなに謝っ……あっ、うふぅ、な、なに!?
いきなりどうしたの、お兄ちゃん!?
いや、やめて!! そ、そんなところ触らないでぇ!!
私達兄妹……はぁん、だめぇ〜、そ、そんなに揉んだら……あはぁん。
あんっあんっ、ダ…メ……わ、わた……し……も……う…………
0054Java太郎 ◆DMVtSSFzcg
NGNGしかも、コピペでしょ〜
はぁ・・・それでも読んでるオレってピュアだ!!
0055デフォルトの名無しさん
NGNG……お兄さま。とうとう見つけたわ。
ねぇ、お兄さま、最近私のこと避けていない?
昔はよく一緒に遊んだり、TV見たり、お風呂に入ったりしたのに、
最近は学校から帰るとすぐに出かけるか、部屋にこもっちゃうのよね。
ちゃんとお喋りしたのって、もういつのことだか忘れちゃったわ。
お兄さま……。私、ずっとお兄さまのこと見てたわ。
勉強してるときも、友達と居るときも、いつでもお兄さまのことが頭から離れなかったわ。
でも、いくらニブいお兄さまでも、やっと私の気持ちに気づいていてくれたのかしら?
だから最近避けてるのね?
でも、ダメ。逢えないほど、お喋りできないほど、私の想いは募ってしまうの。
もう、私、我慢できない。
だから、悪い子だってわかってるのだけど、お兄さまの部屋、黙って入っちゃったわ。
お兄さま、いつも一人でパソコンに向かってたわね。
パソコンに残ってたデータを見て、私ショックだったわ。
お兄さまも苦しんでいたのね・・・つらかったのね。
わざとめちゃくちゃなスレッドを立てて、他のみんなと喧嘩して、
フラストレーションを発散させていたんだってわかって、私、涙が止まらなくなったわ。
お兄さま。無理しなくていいの。我慢しなくていいの。
私、もう心の準備はできてるから。
16年前、お兄さまの妹に生まれてから、ずっとお兄さまのことが好きだったんだから。
お兄さま。学校から帰ってきて、この書き込み読んだら、私の部屋に来て。
私、今日はもうお兄さまと離れていたくないの。
だから………お願い………
死んでちょうだい。
0056Java太郎 ◆DMVtSSFzcg
NGNGやさしいね、ありがとう( ´Д`)
0057デフォルトの名無しさん
NGNGみたい、お兄様にかわってお詫びするわね。
お兄様ったら今日私たちに逢えるって楽しみに出かけたらしんだけど、
手違いで逢うことができなかったの。私も凄く寂しかったんだけど…、
お兄様はどうやらそれ以上だったみたい。だからこんなトコロで寂しさを
紛らわせていたのね、ふふっ仕方ないお兄様。
でも皆さんご安心ください。これからは私の魅力でお兄様を寂しい思い
なんてさせませんから。このようなことは無くなると思うの。
あ、今からお兄様とお風呂に入るので失礼するわね。
0058Java太郎 ◆DMVtSSFzcg
NGNG近親相姦に興味ない( ´Д`)
0059デフォルトの名無しさん
NGNG>>1の妹の白雪ですの!
にいさま〜、大変ですの!きっと、にいさまにはストレスが溜まってますの!
さあ、今すぐ家に帰って姫の手料理を御馳走してさしあげますの!
うふふ、皆さんごめんなさいですの!
にいさまはきっと機嫌が悪かったんですの!いつもは優しいにいさまなんだけど・・・。
最近はにいさまったらパソコンに夢中で時々人が変わるんですの・・・。
突然、「ゴルァ!」とか叫ぶから・・・姫、ちょっと怖いんですの・・・。
鈴凛ちゃんが言うには、「2ch病ね」らしいんですけど姫なんのことかサッパリですの。
でももう大丈夫ですの!姫が来たからにはにいさまの無様な姿は見せませんの!
さ、にいさま!早くお家に帰るんですの。
それでは失礼しますの、皆様ご機嫌ようですの。
あっ、にいさまの立てたスレは鈴凛ちゃんにお願いして何とかしてもらいますの!
にいさま、もうこんなことしちゃダメですのよ・・・
0060Java太郎 ◆DMVtSSFzcg
NGNGまだ死なない( ´Д`)
0061デフォルトの名無しさん
NGNG兄くん…駄スレは立てないでくれと…いつも言っているだろう・・・
そうでないと…きっと…兄くんの身に…不幸な災いが…ふりかかる…
ホラ…見てみろ…。兄くんのせいで…こんなにも多くの…愚者が…稚拙なレスを……。
兄くん…、いいかい?もう…こんなスレ立てないと…約束してくれ
でないと…兄くんの命が…危ないことになる…
それでは兄くん…また…来世…
0062Java太郎 ◆DMVtSSFzcg
NGNG他人とお風呂入るの嫌なの知ってるじゃん( ´Д`)
0063デフォルトの名無しさん
NGNGこのたびはお兄ちゃんがごめいわくおかけして
どうもごめんなさい。ペコリ。
はぁ、なんでこんなことになっちゃったんだろ。
昔のお兄ちゃんは、優しくて、家族思いで、
頭だってテスト100点ばっかりだったし、
お友達に囲まれていっつも楽しそうだった。
でも、あの日の後、もうお兄ちゃんは
お兄ちゃんじゃなくなっちゃった。
お兄ちゃんは、少しも悪くないんだ。
悪いのは、あいつ。
なにか、皆さんに、
おわびしてあげられることがあると、いいんだけど。
ううん、待ってて。
私が、お兄ちゃんを元通りのお兄ちゃんにしてみせる。
そして、お兄ちゃん自身が、
自分でこのあやまちをつぐなうんだ。
だから、ほんの少しだけ、待ってて。
ごめんね、おねがいします。
0064デフォルトの名無しさん
NGNG近頃兄君さまの様子がおかしいとは思っていたのですが、こんなことになるな
どとは・・・。
今日の昼食を兄君さまの部屋に運んでいきますと兄君さまは今日もワタクシに
飛び掛り、「ageるんじゃないageるんじゃない」と言って部屋の扉を閉め、私の背
中を嘗めまわしながらワタクシの股間に腰を押しつけ始めましたので、いつものよ
うに兄君さま用のリモコンで兄君さまの首輪を締め上げ、少し黙らせていたとこ
ろ、兄君さまが首を押さえながら(というのも私が更にリモコン操作でもって
兄君さまの首に電流を走らせたせいもあったのでしょうが)ぱそこんに向かっ
て、きいぼおど(というのでしょうか)を用いて、なにやら猥褻な言葉なの
でしょう、信じられない速度で不思議な言葉を叩き始めたのです。
ワタクシはその時の兄君さまの顔に走る喜悦をもって、兄君さまが変わってしまった
こと、兄君さまに生きる資格がもはやないのだということを実感するに至りま
した。
そう実感すると、ワタクシは薙刀で兄君さまの後頭部を激しく2回打ち付
けておりました。兄君さまはそのまま一声も発せずにきいぼおどの上に倒れこ
んでゆきました。
その後でいすぷれいにはまだ何文字か下劣な言葉が生まれました。兄君さま
は最期の力を振り絞ってそれを送信しますと、もう二度と動くことのな
い肉となってしまったのです。
0065Java太郎 ◆DMVtSSFzcg
NGNGなんでスレを立てたぐらいで、命がどうのこうのって話になるんだよ( ´Д`)
どこから仕入れたんだろ・・・妹シリーズ。
0066デフォルトの名無しさん
NGNG茫然としておりましたが、ともかくワタクシは兄君さまが生前に固着しつづけたこの
にちゃんねるというものがいかにあの優しかった兄君さまを蝕んだのか(兄君
さまの名誉のためにのみ申すのですが、数年前に日常の言葉を失って部屋に閉
じこもる以前の兄君さまはそれはそれはお優しく聡明な方でございました)を
知りたくて、兄君さまのぱそこんからあくせすしている次第でございます。
しかし、兄君さまのここでの行状を知るに及び、みなさんに一言謝っておく
のが本義だろうと思い、きいぼおどを取らせて頂きました。大変はしたない
ことを書いてしまいましたが、いまだ動機の収まらぬ兄殺しの書いた文と思
い、どうぞお捨て置かれますように。
ああ、兄妹揃ってのご無礼をどうぞお許しくださいませ。そのような次第
でございます。どうか不憫な兄君さまのことを悪く思わないでやってください
ませ。兄君さまいつまでもおかわいそう方でございました。
かしこ
0067Java太郎 ◆DMVtSSFzcg
NGNGもう似たようなネタしかないね・・・
やめよう( ´Д`)
0068デフォルトの名無しさん
NGNGみんな、おにいたまの立てたスレッドに来てくれてありがとねっ☆
おにいたまは、ちょっと頭が弱いところもあるけど、
とっても、とーっても優しいおにいたまなんだよ!!
今日も、さっきまでいーっぱいいいーーっぱい、ヒナに優しくしてくれたし、
おにいたま、大好きっ。って、あっ、言っちゃった!
はずかしーよーーぅ
みんな、ヒナがおにいたまの事言っちゃったって、内緒だよ?
ほんとに、ほんとに内緒だよ??
あっ、今おにいたまが戻ってきた。
今度はいっしょにゲームしてくれるんだって!くししし、楽しみだなー。
じゃぁ、いってきまーーす!!
0069デフォルトの名無しさん
NGNGこのたびはあにぃがこんなスレッドを立ててしまってごめんなさい。
あにぃは最近、嫌な事があってこんなスレを立てちゃったみたいなんだ・・・。
あにぃはね、本当はこんなスレは立てない優しいあにぃなんだよ!
よほど嫌な事があったんだろうね・・・。
でも駄スレを立ててしまったのは悪い事だし、ボクからもあやまるよ。
ボクがあにぃを元の優しいあにぃに戻すから、それまであにぃの話題にのってあげてね・・・
じゃ、これからあにぃとスノボにいってくるから失礼するね。
0070デフォルトの名無しさん
NGNG>>1の妹の四葉デス。
兄チャマ!あれほど言ったのに、まだそんなカキコするデスか!もう許しませんデス!
兄チャマのこと許すわけにはいかないデス!こんなカキコでレスたくさん付くとでも思ってるなんて頭おかしいデス!
兄チャマみたいなバカは初めて見マシタ!兄チャマみたいなバカ、ゴキブリ以下デス!
兄チャマみたいなバカ、ウジ虫以下デス!死んでほしーデス!むしろ死ぬべきデス!兄チャマは絶対に許されないデス!
勘違いしたバカを許すわけにはいかないのデス!面白半分にいい加減なカキコする兄チャマを四葉許さないデス!
キャラメルコーンのピーナッツをケツの穴に詰めて死んでしまえデス!!!
今まで兄チャマがどんな生き方してきたか知らないけど、どーせひどい生き様だったと想像出来るデス!
兄チャマのカキコから読みとれるデス!バカ特有の 匂いがするデス!
兄チャマのことが全く理解出来んデス!兄チャマを絶対許さんデス!
死んでも許さんデス!地獄で苦しむデス!それでも足りないデス!
豆腐の角に頭ぶつけて死んでしまうデス!!!
兄チャマもっと現実を知るデス!いつまでも引きこもってネクラなことしてる場合じゃないデス!
でも、もー手遅れデス!兄チャマは何をやってもダメデス!
この世に生まれてきたことを後悔してもダメデス!兄チャマは生まれ変わってもどうせダメ人間に決まってるデス!
絞め殺したいけど兄チャマに触るのが嫌なので やめるデス!でも、兄チャマみたいなカスは死ねよデス!
風呂の排水溝に吸い込まれて死ねよデス!!!
兄チャマみたいなヤツは絶対許せないデス!早く消えてほしいデス!
さっさとこの世からいなくなってデス!!!
いつまでも勘違いしたまま生きていけると思ったら大間違いデス!
このまま生きてても兄チャマにはいーことなんにもないデス!
何でもいいからさっさと死ねよデス!!!
0071デフォルトの名無しさん
NGNGアニキは、すっかりダメになってしまいました。
ううん、元々ダメな奴だったんだよ、あの男は。
まともに人と口をきけないし、何をやっても中の下で、いいとこなし。
でもねえ、素直で純粋なのが取り柄だと、今まではそれでも思ってたんだよ。
それなのに。
ああっ!もう思い出しただけで腹が立つ!!
私がアニキを一番好きなのに!
あの男は空想の女に恋してるんだよ。まっじで。おえ。
引きこもってるからさ、普段は部屋のぞく隙がないんだよ。
でもあの日は、年一回のイベントがあるとかで、母さんから金せびって早朝から居なかった。
ふらふらと、入っちゃったんだ。何年ぶりかの部屋だった。
……もう、言いたくない。1の、アニキの書きこみから、想像つくでしょ。
0072デフォルトの名無しさん
NGNGオブジェクト指向がわからなくて、まわりから馬鹿にされて、
オブジェクト指向のスレを荒らして憂さ晴らしってパターンは
多いようだ。
かわいそうな話ではあるが、人には器というものがある。
0073デフォルトの名無しさん
NGNGマンネリには飽きた。他板でやれ。
んで>>1は何を理解したんだ?
0074デフォルトの名無しさん
NGNGオブジェクト指向なんて算数でいえば九九みたいなもん。
器もなにもない。
確かに九九が出来ない小学生もいるだろうが。
0075デフォルトの名無しさん
NGNG意味のない微分と同様に、意味のないオブジェクト化をする人間もいる。
困ったものだ。
0076Java太郎 ◆DMVtSSFzcg
NGNGぶっちゃけ、具体的に質問したい事はない。
まず、本を熟読する事が今の目標。
ただ、わざわざクラスを作らなくても動かせるプログラムがあると
ちょっと、気持ち悪いかな。
基礎を学ぶためだからしょうがないけど。
0077Java太郎 ◆DMVtSSFzcg
NGNG人には器というものがある
↑これって荒らしに対して?
0078Java太郎 ◆DMVtSSFzcg
NGNG九九ならできる!!ヽ(´∇`)ノ
0079Java太郎 ◆DMVtSSFzcg
NGNGオブジェクト化する必要が無いものまでしてると
ちょっと読みづらくなる・・・
0080デフォルトの名無しさん
NGNGそう。
だが、実際、それはすべてのプログラマにあてはまる。
そして複数の人間でプログラムを開発する場合、
プロジェクト内のレベルに合わせて、簡易化されたラップを
用意することを理解するためにも必要な前提なのだ。
言い方を変えれば、自分と相手の器を理解するプログラマは、
質のよいプログラマでもある。
0081Java太郎 ◆DMVtSSFzcg
NGNG図星みたいだね
1の妹シリーズが止まったよw
0082デフォルトの名無しさん
NGNG0083Java太郎 ◆DMVtSSFzcg
NGNGえ?なにそれ〜
独り占め?
ズルイぞ!ズルイぞ!...(´З`)チュッ
0084デフォルトの名無しさん
NGNG0085デフォルトの名無しさん
NGNG0086Java太郎 ◆DMVtSSFzcg
NGNGJ太郎って、オレの弟か?
どうなんだよ!?隠すんじゃねーよ!!
コンチクショー
0087デフォルトの名無しさん
NGNG0088Java太郎 ◆DMVtSSFzcg
NGNGQ太郎か?
お前、年いくつだよ?
オヤジスレにするつもりかよ!!
0089デフォルトの名無しさん
NGNG0090デフォルトの名無しさん
NGNG0091デフォルトの名無しさん
NGNG0092Java太郎 ◆DMVtSSFzcg
NGNG書き込んでるじゃーん!!
ビックリ人間だな・・・オマエ
0093Java太郎 ◆DMVtSSFzcg
NGNG名前だけじゃ、どんなものが出されるのかわからないな・・・
み、味噌汁はついてるのかなぁ?ぐへへ・・・
0094Java太郎 ◆DMVtSSFzcg
NGNGそれは愚問だ!
一応、答える
A.オレしか居ないぜ!!(素
0095デフォルトの名無しさん
NGNGひまそうですね。
0096デフォルトの名無しさん
NGNG何言語だよ
0097デフォルトの名無しさん
NGNG“私の父は公務員”というインスタンスとクラスの関係を意味する
としたとき、同じ関係となるものはどれか。
ア (赤い車:乗り物) イ (オーストラリア:国)
ウ (私の父:私の母) エ (私の部屋:私の家)
0098デフォルトの名無しさん
NGNG/ヽ /ヽ
/ ヽ / ヽ
______ /U ヽ___/ ヽ
| ____ / U :::::::::::U:\
| | // ___ \ ::::::::::::::|
| | | | | U :::::::::::::|
| | .|U | | ::::::U::::|
| | | ├―-┤ U.....:::::::::::::::::::/
| |____ ヽ .....:::::::::::::::::::::::<
└___/ ̄ ̄ :::::::::::::::::::::::::|
|\ | :::::::::::::::::::::::|
\ \ \___ ::::::
0099デフォルトの名無しさん
NGNGオ(ウホッ:いい男)
0100デフォルトの名無しさん
NGNG一方でオートマトンと対になるのが「関数」である。
オートマトンは内部の状態の情報をもつため、同じ引数で呼び出したとしても、
返ってくる結果が同じだとは限らない。
一方で、関数は引数が同じならば、同じ結果が得られる。
この区別をつけるため、オブジェクト指向に対する操作は、
「メソッド」と呼ばれ、関数と区別されるが、
メソッドも広義に関数と呼ばれることがあり、用語はやや混乱している。
オートマトンにおいては、内部状態が変化するため、その状態遷移図を
設計することが重要になる。また、その状態をプロパティとして、
get/set のメソッドで取り出したり、変更したりできるようにするのが、一般的である。
このような内部状態を持つオートマトンであるオブジェクトは、
A「ね〜、今日、暇?」(get)
B「うん、暇だよ。」(返り値)
A「遊びに行こうよ」(set)
B「いいねえ」(返り値)
と、コミュニケーションモデルで設計するのが
比較的分かりやすいため、メッセージを送る/受け取ると
いうメッセージパッシングとして実装される。
0101デフォルトの名無しさん
NGNG間違い
0102デフォルトの名無しさん
NGNG抽象概念の真偽は、知性によって判断され、知識によっては判断されない。
つまり、「知っている」と「理解している」が明暗を分かつ場面でもある。
オブジェクト指向型のプログラミング言語を便利に使えるということは、
正しい知識と持つことだけでなく、正しく理解することが必要である。
同時にオブジェクト指向を使えない人たちは、理解よりも知識を求める。
オブジェクト指向を使えない人たちは同じ作業を繰り返して上手になることを望むが、
オブジェクト指向を使う人たちは、同じ作業を繰り返さずに済む方法を考える。
そして、その差は知性によって判断される。
0103デフォルトの名無しさん
NGNGそーいう能力は個人差があるからね。別の能力でいうと
モテる男は最小の労力でいい女をゲットできるが
モテない男はいろんな女にトライするしかないつーこと。
努力でカバーできればまだマシなほうだよな。いくらか
妥協している人も結構多いのでは・・・。
0104デフォルトの名無しさん
NGNG0105デフォルトの名無しさん
NGNGインターフェースとインプリメンツの違いが
よくわかんねーよ。
0106デフォルトの名無しさん
NGNGカプセル、カプセル
0107デフォルトの名無しさん
NGNG引退しろ
0108デフォルトの名無しさん
NGNGあはっ、Javaは趣味でやってまつから。
関りたくネーヨ>Java。
0109デフォルトの名無しさん
NGNG0110デフォルトの名無しさん
NGNG☆ チン 〃 Λ_Λ / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
ヽ ___\(\・∀・) < 鞠絵マダ〜?
\_/⊂ ⊂_ ) \___________
/ ̄ ̄ ̄ ̄ ̄ ̄ /|
| ̄ ̄ ̄ ̄ ̄ ̄ ̄| |
| . |/
 ̄ ̄ ̄ ̄ ̄ ̄ ̄
0111デフォルトの名無しさん
NGNGインプリメンツは具体的な実装プログラム記述である。
例えば文字出力を考える。文字出力は抽象概念である。
しかし、画面に文字出力をするオブジェクトと
通信で他のコンピュータにデータを送るオブジェクトでは、
まったく実装方法が異なる。
しかし同一の文字出力インターフェースを定義することにより、
アプリケーションは、送り先が画面なのか通信線なのかという
具体的な区別をすることなく、単に文字を送ればよい。
文字出力インターフェースを持ったオブジェクトは
すべて同一に操作が出来る。
このように、アプリケーションが送り先のオブジェクトが
何であるかを知らなくても、同じ操作が出来る利点が生まれる。
実際には送る側はアプリケーションである必要さえなく、
オブジェクトでもなんでもかまわない。便利である。
0112105
NGNGありがとう、本とか読んでもヤッパリピンとこないんだよね。
同じ機能に思えるし。
例えば
Blackクラスがあって、インターフェイスにBlack_Aという文字変数が用意されている場合。
WhiteクラスはBlackクラスに対してBlack_Aだけを意識すればいいということ?
Blackクラス内にあるBlack_Aと同ちがうんだ?と思ってしまう。
自分的には、インターフェース=Public 宣言という認識ですがいいのかな?
----------------
ここにMatherクラスと、それに対して子クラスが
A0クラス〜AN(N>0)で任意動的に作成される場合。
Matherクラスと、Aとのクラスとの会話はインターフェースで会話した方が
楽つーことかな?Aクラス内部にわざわざメソッドを定義して会話するよりも
インターフェースのファイルを書き換えれば手間が済むと。
0113プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGまあ才能のある奴はそうは居ないけどな。
OOはその次だ。
正しいサブルーチン作れない奴にOOは無謀。
0114デフォルトの名無しさん
NGNGimplementsはinterfaceを実装するときに記述するものだ。
>>111の説明は誤解を招く部分がある。
>>105はまず実際にinterfaceを実装したクラスを作って
プログラミングしてみろ。
intercface は class と比較して考えるものだ。
implements は extends と比較して考えるものだ。
>自分的には、インターフェース=Public 宣言という認識ですがいいのかな?
No. それだけでは恒真ではない。
interface とは インスタンスを作れない、メソッドの実装を許さない(public abstractメソッドしか許さない)、
public static finalなフィールドを持つことしか許さない、多重継承を許すpublic abstractなクラスの特殊な形態ことである。
implementsはextendsの代わりに使うものであり、interfaceを実装したいクラスに記述する。
0115デフォルトの名無しさん
NGNGとても解り易いと思うんだがな。
0116デフォルトの名無しさん
NGNG> 楽つーことかな?Aクラス内部にわざわざメソッドを定義して会話するよりも
> インターフェースのファイルを書き換えれば手間が済むと。
ぜんぜん解ってない。
本を読むだけで終わらせないで
interfaceを実装したサンプルプログラムを書いてコンパイルして実行しろ。
実際に動かしてみてコンパイルエラーがでて初めて理解できる。
0117&&@rrlo
NGNG0118105
NGNG>実装を許さない(public abstractメソッドしか許さない)、
>public static finalなフィールドを持つことしか許さない、
>多重継承を許すpublic abstractなクラスの特殊な形態ことである。
クラスA、クラスB、インターフェースCがあって、
クラスBが親クラスでクラスAに継承し、クラスBがインターフェースCを持つ場合。
C
|
A←B
があったとする。んで、クラスAのインタンスを複数(1〜n個)作ったとする。
A0 A1 ・・・・ An
で、この時A1〜Anまでを利用するが、Cで定義された変数はA1〜Anまで
すべて共通の値を持つということでよい?。
0119デフォルトの名無しさん
NGNGプログラマに実装上の留意を促し、
実装ミスを防ぐ為にあるのが50%、
C++と比べてClassの多重継承ができない事に
対する代用策としてが50%と考えてる。
0120デフォルトの名無しさん
NGNG0121デフォルトの名無しさん
NGNG不正解。
0122105
NGNG>実装を許さない(public abstractメソッドしか許さない)、
>public static finalなフィールドを持つことしか許さない、
>多重継承を許すpublic abstractなクラスの特殊な形態ことである。
えっと少し変更。
クラスA、クラスB、クラスC、インターフェースDがあって、
クラスB、Cが親クラスでクラスAに継承し、クラスB、CがインターフェースDを持つ場合。
+−B(*1)
|
A←+
|
+−C(*1)
(*1)ーD
があったとする。んで、クラスAのインタンスを複数(1〜n個)作ったとする。
A0 A1 ・・・・ An
で、この時A1〜Anまでを利用するが、Cで定義された変数はA1〜Anまで
すべて共通の値を持つということでよい?。
0123デフォルトの名無しさん
NGNG同一のインターフェースが複数のクラスでインプリメントされる場合である。
・画面オブジェクト ・プリンタオブジェクト ・音声合成オブジェクト
の3つが同一のインターフェースをインプリメントされたとする。
ラーメンタイマー・オブジェクトは「お時間がきました」と文字列を出力する。
ラーメンタイマーとバインド(接続)されるオブジェクトが
実行時に自由に選べると便利だ。出力先はセレクターオブジェクトでも作って
ユーザーに選択させる。セレクタは、ラーメンタイマーに誰に出力先を渡す。
ラーメンタイマーは、相手が何クラスであるかを知る必要はない。
ただ、「お時間がきました」と文字出力メソッドにわたすだけだ。
そしてそのインターフェースは同一である。
バインド先が画面ならば、文字列は画面に。
バインド先がプリンタなら文字列は紙に。
バインド先が音声合成なら文字列は音に出力されるだろう。
ここで、楽になったのはラーメンタイマーのプログラムである。
同時に、将来、「メールクラス」を追加するときにも、
ラーメンタイマーは書き換える必要がない。
メールクラスを同じ「文字出力」インターフェースで
インプリメントすれば、ラーメンタイマーは
一行も書き換えることなしに使える。
「お時間がきました」という通知はケータイで受け取れるだろう。
便利である。
0124デフォルトの名無しさん
NGNG不正解と3文字だけ書くことなら
馬鹿にでもできる
0125デフォルトの名無しさん
NGNG念のため確認したいんだけど、
Polymorphismの事くらいは知ってて書いてるんだよな。
0126デフォルトの名無しさん
NGNG>クラスB、Cが親クラスでクラスAに継承し
JAVAでclassの多重継承はできまへん
0127デフォルトの名無しさん
NGNG>Polymorphism
知らない。
0129デフォルトの名無しさん
NGNGじゃ、知っとけ。
0130デフォルトの名無しさん
NGNG> えっと少し変更。
> クラスA、クラスB、クラスC、インターフェースDがあって、
> クラスB、Cが親クラスでクラスAに継承し、
Javaではそのような実装の多重継承を許さない。
>クラスB、CがインターフェースDを持つ場合。
「持つ」という意味と「実装する」という意味は全く異なります。
「BとCはDを実装する」といっているつもり?
持つ、といったら「集約」を意味する。
恐らくあなたは多重継承とポリもーフィズムとを取り違えていると思われ。
0131デフォルトの名無しさん
NGNG0132デフォルトの名無しさん
NGNG>>105が何も分かっていないことだけは分かる。
0133119
NGNGいや、不正解と言われても。。。
あくまで俺なりの解釈なんで、
正解も不正解もないんだが。
0134デフォルトの名無しさん
NGNG0135デフォルトの名無しさん
NGNGこのアタリもまずいような気がする。
0136デフォルトの名無しさん
NGNG0137プロの逝って良しの2 ◆KgOWTAR7IU
NGNG0138105
NGNGラーメンクラスと、interfaceと、その他の追加するクラス関係が分かれば
納得すると思う。できれば図キボンヌ。
ラーメンタイマークラス
インターフェース
[その他]
画面クラス
プリンタクラス
音声クラス
0139デフォルトの名無しさん
NGNGinterfaceAをインプリメントしたクラスはBメソッドが実装されていることが保証される。
0140デフォルトの名無しさん
NGNGinterface C{
public static final int VALUE = 1;
public abstract void runMethod();
}
class B {
private C c;
public B(C c){
this.c = c;
}
getC(){
return c;
}
}
「実装する」の意味
class B implements C{
public void runMethod(){
//ここに実装
}
}
0141デフォルトの名無しさん
NGNG独自の考えはやめた方が。
0143デフォルトの名無しさん
NGNGそれ、何言語?
0144105
NGNGはぁ。Javaの本を探しに逝ってくる。
0145Java太郎 ◆DMVtSSFzcg
NGNGダメ!行かないで!!
ヽ(´Д`ヽ)(/´Д`)/イヤァ〜ン
0146デフォルトの名無しさん
NGNGお前はちゃんとプログラミングしているのか?
机上の空論だけで済ますのは止めれ。
ちゃんとコンパイルしろ。
んで自分の目でちゃんと確かめろ。
0147デフォルトの名無しさん
NGNG0148デフォルトの名無しさん
NGNG0149デフォルトの名無しさん
NGNG0150デフォルトの名無しさん
NGNG0151デフォルトの名無しさん
NGNG0152Java太郎 ◆DMVtSSFzcg
NGNGわかってないな!おまえ・・・
一番キモイのはオレだ!!
ポリモルフィズムの利点がよくわからない、今日この頃ヾ(´ー` )ノ
0153デフォルトの名無しさん
NGNGThreadクラスの作成者はJAVAのプログラマがどんなクラスを実装
するのか知る事はできない。
だが、Runnableというインターフェースを定義しておく事で
ユーザの任意の元、未知のクラスにrun()というメソッドが
実装される事が保障され、Threadクラスから呼び出す事ができる。
0154デフォルトの名無しさん
NGNG>納得すると思う。できれば図キボンヌ。
interface 文字出力{
void StrOut( String a );
}
class 画面クラス implements 文字出力
class プリンタクラス implements 文字出力
class 音声クラス implements 文字出力
であれば、
ラーメンタイマーは文字出力のクラス変数 tmpOut を持つことができる。
文字出力 tmpOut;
tmpOut の実態のクラスが何であるかにかかわらず
tmpOut.StrOut("お時間がきました");
というメソッドが使える。
もちろんtmpOut変数にはセレクタから、実体を渡されて代入されている必要がある。
ラーメンタイマーが出力先の実体クラスを知る必要はない。
便利である。
0155デフォルトの名無しさん
NGNGA嬢は、ダメポ銀行に入行して2年目、窓口業務もかなり板についてきた。
実はA嬢はひそかにファンドマネージャになりたいと思って、
自己研鑽を重ねている。その成果が現れたのか、最近では
先輩社員がいろいろと相談を持ちかけてくれる。
上司も見る目も変わってきたようだ。
でも、まだまだ配置換えは期待できそうにない。
内心歯がゆい思いをしながら、今日も窓口に座る。
一旦窓口に座れば、窓口業務をこなさなくてはならない。
その時間はA嬢は、お客さまと銀行を取り持つ窓口係という、
大切なインタフェースの役割を果たしている。
0156デフォルトの名無しさん
NGNG初心者にスレの話しても混乱するだけと思われ
0157デフォルトの名無しさん
NGNG0158デフォルトの名無しさん
NGNG0159デフォルトの名無しさん
NGNGじゃあ俺もぽりもーひずむの利点を麺にちなんで例えてみる。
俺は製麺工場の技術主任。
架空の製麺機をプログラミングで作ってみたい。
工場ではうどん、蕎麦、ラーメンの3種を製造してる。
作る過程や材料は全部てんでバラバラ。共通性は殆ど無し。
共通していることといえば、麺を作るという事だけ。
という事で俺はまず製麺interfaceなるものを定義してみた。
これはJAVAでいうところのinterfaceですな。
メソッドはひとつ、製麺ボタン()を定義したのみ。
定義したといっても、製麺interface自体は空っぽ、
実体は無い。何の製麺機かすらも決まってない。
つづく
0160デフォルトの名無しさん
NGNG> 製麺interface自体は空っぽ
定義したのか、空っぽなのか、どっちやねん。
それに、メソッド名が名詞てなんやねん。
0161デフォルトの名無しさん
NGNGじゃ、そろそろ、うどん製麺機、蕎麦製麺機、
ラーメン製麺機を作ってみますか。。
ここで俺は当初の予定通り、製麺機を実装するにあたって、
それぞれの製麺機に"製麺interface"をインプリする事にした。
それって具体的にはどういう事か?
それぞれの製麺機は全く異なる機械で、内部動作や外見は異なるんだが
どの機械にも同じように製麺ボタン()を実装する、という事だ。
どの製麺機もこの製麺ボタン()さえ押せば、材料を加工して麺が
できあがるされる事が保障される。これだけ。
でも中でやってる事はとっても複雑なんだけどね。
つづく
0162Java太郎 ◆DMVtSSFzcg
NGNG抽象メソッドみたいだね。
HAS-A関係(?)を使って
擬似的に多重継承できないのかな?
0163デフォルトの名無しさん
NGNG工場の生産ラインには常時青鼻を垂らしてるバイト君が働いている。
彼には入社時に製麺インターフェースの操作方法だけ教え込んだ。
彼のできる事といえば、製麺インターフェースを実装してある
3つの製麺機を目の前にして、ひたすら製麺ボタン()を押すのみ。
彼は頭が足りないので、麺がどのような工程で作られている
のかを知らない、というか、それ以前に目の前の製麺機が何の
製麺機なのかすら知らない。。いや、知る必要すらないのだ。
何故なら何の製麺機であろうと、製麺ボタン()さえ押せれば
麺が出来上がるのだから。。
つづく
0164デフォルトの名無しさん
NGNG工場の生産ラインは順調だ。
バイト君の目前に製麺interfaceを実装した製麺機を置いてやれば、
それが何の製麺機であろうと、彼は麺を見事に作り上げていく。
近々、新商品としてスパゲッティを新たに手がける予定だ。
当然パスタ製麺機も製麺インターフェースをインプリした
機械にする予定なので、新たにバイトを増やす必要も無く、
既存のバイト君に新たな教育をする手間もかからないだろう。
0165デフォルトの名無しさん
NGNGプロジェクトに入ってくるととても迷惑。
0166デフォルトの名無しさん
NGNGあらかじめ言いたいことが分かってる私には、なんでもないけれど、
分かってる人だけにわかればいい文章なんて、ここに書く意味ないし、
分かってない人に分かってもらうには、あまりにも不親切な誤りを含んでいる。
0167デフォルトの名無しさん
NGNG向学のため、指摘していただけると有りがたい。
0168デフォルトの名無しさん
NGNG中身が空っぽの interface
と
中身が空っぽの method
の違いをキチンと理解、区別しようね。
0169デフォルトの名無しさん
NGNG機械に例えたりプログラムに例えたりと
曖昧な例え方がいけなかったかな?
0170デフォルトの名無しさん
NGNG読むのが普通ではないかい?
まあ、単なる比喩を元に突っ込んだ議論をしてもあまり意味がないと
思うけどさ。曖昧な例え方がいけないんじゃなく、日本語の記述に
無頓着なのがいけない気がする。
0171デフォルトの名無しさん
NGNGポリィモーフィズムの雰囲気さえ
掴めれば問題ないんでない?
JAVAの話が主体じゃないんだし
0172デフォルトの名無しさん
NGNG悪かったよ。
もう余計な口は出さん事にするよ。
0173デフォルトの名無しさん
NGNGありがとう。
ほんとうにそうたのむよ。
0174デフォルトの名無しさん
NGNGご満悦そうだな(w
0175デフォルトの名無しさん
NGNGそういうのは多重継承とはいわんよ。
単に集約してるといえばいいのさ
0176Java太郎 ◆DMVtSSFzcg
NGNGあなた頭いいでしょ?
わかる!!わかるんだよ・・・オレには。
多重継承ではないと、後から気づきましたよ!
ハッハッハ、こりゃ一本取られましたなw
集約なんだ・・・勉強になりました。
0177デフォルトの名無しさん
NGNG多重継承ができない代わりか
どうか知らんけど、
implemetsというキーワード
を提供しているが、それによって
良くなった点と悪くなった点を
誰か挙げてくれないか?
0178デフォルトの名無しさん
NGNGimplementsはクラスへのinterface実装専用。
悪くなった点 : ちょっと記述が長くなったという程度。
MixJuiceやRubyのようなモジュール分割がしにくい。
よくなった点 : クラス継承においてダイヤモンド継承によるメソッドやフィールドのバッティングの心配がなくなった。
インターフェースがインターフェースを継承する場合は、この問題は起こりうるので要注意。
実装の多重継承は混乱のもとといわれてきた。それをコンパイラが禁止することで
プロジェクトでこっそり実装の多重継承をするプログラミングをさせないことで
バッティング問題を解消できる。
0179デフォルトの名無しさん
NGNGバッティングの心配とかを抜きにすれば、
多重継承できない事でコーディング量が増えたり
不便になったという事は考えられるんでない?
0180デフォルトの名無しさん
NGNG0181デフォルトの名無しさん
NGNGまあ、広域変数とgoto文もそうだけど、誰が使ったか、
影響があるのはどこかを完全に把握してれば問題は回避できるけど、
分からなくなったらグチャグチャになったら取替えしが
つかないってことだよね。
おれは予防のコストはあとから大変になることを考えれば十分に見合う気はする。
特に複数の人でプロジェクトを進める場合はね。
でも、このコスト感覚は人によって違うと思う。
0182デフォルトの名無しさん
NGNG実装の多重継承の危険性はソフトウェア工学の研究で実証済み
0183デフォルトの名無しさん
NGNGだから、危険か危険じゃないかは人によって違うだろ。
使う人間によっては便利にもなるし、危険にもなる。
そもそも、お前のように自分の観点でしか物を見れない
奴がいるから危険なんだよ、バーカ。
0184デフォルトの名無しさん
NGNG多人数が同時に書いたり使ったりだと大変だろう。
0185デフォルトの名無しさん
NGNG逆に減ることもあるわけでな
0186デフォルトの名無しさん
NGNGinterfaceでは完全に代替できない。
コードの再利用という観点からすれば
実装を継承できるのとできないとでは
やっぱ色々と違うでしょ
0187デフォルトの名無しさん
NGNG手続き型言語のサブルーチンじゃだめなの?
どこから呼び出しても使える便利なサブルーチンをたくさん作ってさ、あとはメインルーチンからどれをどう呼び出すかだけプログラムすればいいようにすれコーディングは十分ラクできるじゃん。
オブジェクト指向はさらに何をラクしたくてできた言語なわけ?
よくできたサブルーチン集を作ることとの決定的な違いってなによ?
0188デフォルトの名無しさん
NGNGあと、オブジェクト指向は言語じゃない
0189デフォルトの名無しさん
NGNGコードの再利用とか不必要な情報の隠蔽とか利点はいろいろあると思う。
まあ特に必要を感じないんだったら従来どおりにやればいいと思うよ。
0190デフォルトの名無しさん
NGNG低能な突っ込みやめれ。
言いたいことは解るだろう?
0191デフォルトの名無しさん
NGNGしたがって、オブジェクト指向型の言語は必須ではない。
しかし、オブジェクト指向型言語は、モジュールの完成度を高めるための支援を言語レベルで行う。
いわゆる勘違いによる間違いが減る。それだけである。が、これは圧倒的な生産性の向上を意味する。
よく出来たサブルーチンを作れる人ならば、オブジェクト指向の支援を便利に感じるであろう。
まずは良く出来たサブルーチンの条件、モジュール強度と
モジュール結合度などから学びはじめるのが良いだろう。
0192デフォルトの名無しさん
NGNGそれだけじゃないと思うが(w
0193デフォルトの名無しさん
NGNGもう無理にオブジェクト指向を理解しなくてもいいと思う
しょうがないよ、脳みその出来は個人差があるんだから
世の中にはポインタですら理解できない人もいるんだから
0194デフォルトの名無しさん
NGNG生産性。
OOPだと、ポリモーフィズムとか、色々融通が利く。サブルーチンではこうもすっきり
いかないで、引数の型違いとかの名前や内容が微妙に違う関数とかを作らなくては
ならないケースが出てしまい、それを使う側のコードもそれ用に書かなければならず、
その手間が面倒になり、結果、生産性が落ちる。
OOでは、インターフェースさえきちんと設計しておけば、メンテはめっちゃくちゃ楽。
・・・とかいいつつ、全然初心者だったりする儂。
0195デフォルトの名無しさん
NGNG短絡的な意見ありがとうございます。
0196デフォルトの名無しさん
NGNG0197デフォルトの名無しさん
NGNGstruct 女;
void 男絶頂(){}
void 女絶頂(){}
class 人間{
絶頂()
}
class 男:人間{}
class 女:人間{}
人間.絶頂()
手続きだと性別ごとに絶頂を呼び出さないとだめだが、オブジェクト指向でクラスをつかい継承すると絶頂が1つで済む。
0198デフォルトの名無しさん
NGNG構造化手法だけではカプセル化という概念を導入できない。
UMLかJavaの勉強をすればオブジェクト指向を素早く理解できる。
構造化手法だけでは各コンポーネント間の結合度を凝集度を下げることは
容易ではない。
各ソフトウェアコンポーネントは互いに低い結合度で結びつきあっていることが望ましい。
一つのコンポーネントは互いに関連のある責務だけから形成されていることが望ましい。
これが構造化手法の研究成果であるという。
0199デフォルトの名無しさん
NGNG派生しているとして、sex() はOO的にどこに実装されるのが
妥当ですか?
0200デフォルトの名無しさん
NGNGsexは名詞というの分かっているか?
0201199
NGNG0202デフォルトの名無しさん
NGNGしかし、この分析はよくある間違いです。
Sexは誰かが持っているものでもないし、何人でやる行為であるかさえ決まっていないからです。
Sexとは柔軟で複雑な関係のことを指す言葉です。
従って、関係を表すSexインターフェイスを作り、NomalSexオブジェクトを実装するかたちにしたほうが良いでしょう。
参加者はentryメソッドで集い、startメソッドで宴が始まるのです。
0204デフォルトの名無しさん
NGNG0205デフォルトの名無しさん
NGNGpublic static final UNKNOWN = 0;
public static final MALE = 1;
public static final FeMALE = 2;
public static final HOMOSEXUAL = 3;
private int sex;
public Sex(int sex) throws SexException {
try {
if(0 <= sex & sex <= 3)
this.sex = sex;
} else {
throw new SexException("そんな性別はありません");
}
} catch(SexException e){
e.printStackTrace();
} catch(Exception e){
e.printStackTrace();
}
}
public int getSex(){
return sex;
}
}
public class Person {
private Sex sex;
private String name;
public Person(String name, Sex sex){
this.sex = sex;
this.name = name;
}
}
0206デフォルトの名無しさん
NGNG0207デフォルトの名無しさん
NGNGpublic String getPenisSize();
}
public abstract class Man implements Penis{}
public class Takeshi extends Man implements Penis {
public String getPenisSize() { return "大きい";}
}
public class Masaru extends Man implements Penis {
public String getPenisSize() { return "小さい";}
}
public class Woman {
public void sex( Penis p ) { System.out.println( "あなたの ちんこ" + p.getPenisSize() + "のね" ); }
}
Woman woman = new Woman();
woman.sex( new Takeshi() );
woman.sex( new Masaru() );
0208デフォルトの名無しさん
NGNG0209デフォルトの名無しさん
NGNG0210デフォルトの名無しさん
NGNG近い形でコンピュータ上にモデル化すること。
現実社会がコミュニケーションで成り立っているように、
オブジェクト同士もメッセージのやり取りで成り立つ。
メッセージパッシングこそ、オブジェクト指向のエッセンス。
継承なんかは後付けの考えだ。
これは、例を挙げれば、俺が弁当屋に行って海苔弁を買い、
おもちゃ屋に行ってPS2を買うというのを、素直にモデル化するなら、
「弁当屋」「おもちゃ屋」「海苔弁」「PS2」「お金」「注文」
というオブジェクトが出てくる。
「弁当屋」に「お金」と「注文」を渡せば、「海苔弁」が、
「おもちゃ屋」に「お金」と「注文」を渡せば、「PS2」が、
それぞれ返ってくる。
いわゆる
海苔弁 弁当屋.売れ(お金, 注文)
PS2 おもちゃ屋.売れ(お金, 注文)
となる。
これがオブジェクト指向の基本。
(つづく)
0211デフォルトの名無しさん
NGNG唐揚げ弁当や焼き肉弁当もある。
ここで頭の良いヤシは、海苔弁と唐揚げ弁当と焼き肉弁当の
共通点に気が付く。どれも弁当だと。単におかずの違いだと。
そこで、「弁当」をもっと考えてみる。
「弁当」は「おかず」と「ごはん」から構成されていて、
「値段」がついていると。
海苔弁の場合は
「ごはん」コシヒカリ
「おかず」海苔
「値段」280円
であり、
焼き肉弁当の場合は
「ごはん」コシヒカリ
「おかず」焼き肉
「値段」480円
であると。
オブジェクト指向では、この場合「弁当」をクラスといい、
「ごはん」「おかず」「値段」などをクラスの属性という。
そして「弁当」を考え出したことで、より汎用的な
次のメッセージが出来ることに気がつく。
弁当 弁当屋.売れ(お金, 注文)
(つづく)
0212デフォルトの名無しさん
NGNG共通点があることに気がつく。いわゆる「商店」であり、
なんらかの「商品」を売って、「お金」をもらうのであると。
「商店」をより具体化した「弁当屋」は弁当という商品を売る商店であり、
「おもちゃ屋」はおもちゃという商品を売る商店であったのである。
オブジェクト指向では、こういう場合、
「商店」と「弁当屋」は継承関係にあるといい、
「商店」をスーバークラス、基底クラスなどといい、
「弁当屋」をサブクラス、派生クラスなどとのたまう。
思考の流れとは逆なのが面白いだろう。
(つづく)
0213デフォルトの名無しさん
NGNGちょっと値段の高い味美弁当屋もある。バイト代が入って懐が暖かい
ときは、味美弁当屋にかぎる。こういう風に、実際に行く弁当屋は
一軒一軒具体的な違いを持っている。
オブジェクト指向では、ほかほか亭や味美弁当屋を「弁当屋」クラスの
具体的な実体、すなわちインスタンスと考える。
紙に書いた弁当屋では弁当は買えない。実際の弁当屋に行かなければ。
すなわち、基本的にはインスタンスに対してメッセージを送ることで
処理は進められていく。
クラスは、インスタンスの雛形であり、インスタンスを作るのに
利用されるというのが基本である。
もし君が弁当屋をはじめるなら、他の弁当屋を参考にするだろう。
そういうことである。
(つづく)
0214デフォルトの名無しさん
NGNGレアものビデオ 友達.売れ(注文,お金)
というわけである。ここでヤシは思索する。
はたして、友達は「商店」なのかと。
しかし、時には「商店」と同じようにものを売ってくれると。
「売れ(注文,お金)」というメッセージは、「商店」だけじゃなく、
友達にも通用すると。
それじゃ、そのメッセージだけ切り出して、「買い物」という
名前にしておこうと。
オブジェクト指向では、この「買い物」をインタフェースとよび、
「買い物」が出来る相手なら誰にでも
「売れ(注文,お金)」というメッセージを送ることができる。
「友達」が「商店」ではないように、
インタフェースを使うことで、継承関係を超えて、
ダイナミックなモデルを実現できるのだ。
そして「友達」はいつも「買い物」のインタフェースでいるわけではなく、
いろんなインタフェースを使ってこのヤシと関係を作り上げている。
さらに、「友達」は親に対しては「息子」のインタフェース、
先生に対しては「生徒」のインタフェースを使っているかもしれない。
0215デフォルトの名無しさん
NGNG別にいいけど。。。
どんどん書いてくれ
0216デフォルトの名無しさん
NGNGもう慣れたが。
0217デフォルトの名無しさん
NGNG0218なおしとけ
NGNGpublic String getPenisSize();
}
public abstract class Man implements Penis{}
public class Takeshi extends Man {
public String getPenisSize() { return "大きい";}
}
public class Masaru extends Man {
public String getPenisSize() { return "小さい";}
}
public class Woman {
public void sex( Penis p ) { System.out.println( "あなたの ちんこ" + p.getPenisSize() + "のね" ); }
}
Woman woman = new Woman();
woman.sex( new Takeshi() );
woman.sex( new Masaru() );
0219デフォルトの名無しさん
NGNG0220デフォルトの名無しさん
NGNG0221デフォルトの名無しさん
NGNGグローバル変数だらけです
0222デフォルトの名無しさん
NGNGどういう喩えでつか?
0223デフォルトの名無しさん
NGNG要は本棚とか無いんじゃないの?
0224なんとなく
NGNGなんで/TakeshiとMasaruだけ固有名詞のクラスになってんのかね。
s/Takeshi/LargePenisMan/
s/Masaru/SmallPenisMan/
0225デフォルトの名無しさん
NGNGpublic class Hiroshi extends Okama {
public String getPenisSize() { return "取っちゃった";}
}
Woman woman = new Woman();
woman.sex( new Hiroshi());
何故ManクラスからPenis Interfaceを分離してるかと言えば、
Manクラスの他にもgetPenisSizeメソッドを持つクラスを拡張させられるようにするためである。
もし仮にManクラスにgetPenisSizeメソッドを持たせてあると、このような拡張は不可能である。
これがInterfaceを分離することのメリットである。
0226デフォルトの名無しさん
NGNGchinko インターフェースをつくって
Manと ButterDog の両方にインプリメント(実装)すべきだということだな。
このやりかたなら、将来、バイブレーターを作ったときも、同じインターフェースが使える。
バイブレーターと Man は継承関係の必然性がないし。
0227デフォルトの名無しさん
NGNG抽象化のセンス無し
0228デフォルトの名無しさん
NGNGいやーわかりやすい。(w
0229デフォルトの名無しさん
NGNGpublic abstract class Man implements Penis{}
はどういう意味、働きをもってくるの?
0231デフォルトの名無しさん
NGNGこれって多重継承に似ているね。
引数でクラス名を渡しているところが異なるだけで、
クラスを隠蔽化する為に、Java開発者が無理やりinterfaceやabstractを
とってつけたみたいだ。
なぜなら、Javaは全てクラスで表現するという制約を自ら課しているから。
0232デフォルトの名無しさん
NGNGpublic void sex( Penis p ) { System.out.println( "あなたの ちんこ" + p.getPenisSize() + "のね" ); }
}
は、Penisを引数の型に使っても起こられない?
0233デフォルトの名無しさん
NGNGManという言葉があっても、それは単に概念とか分類であって
実際にManという"物"が存在する訳ではない。
TakeshiやHiroshiは"物"として存在するが、Manは存在しないという事。
でも後々、TakeshiやHiroshiを個人の単位ではなく、
Manという分類で扱いたくなるかもしれない。
0234デフォルトの名無しさん
NGNG言葉の意味から考えれば、
public void sex( Man m )
が相応しい。
或いは、
public void insert( Penis p )
など。
0235デフォルトの名無しさん
NGNGそもそもhas-aの関係にあるものをそうやってimplementsする
形式にすべきかも疑問。
それじゃis-aの関係になってしまう。
"He is a penis."
集約、コンポジション集約で十分ではないか?
>>231
>なぜなら、Javaは全てクラスで表現するという制約を自ら課しているから。
オブジェクト指向だから当たり前。JavaソースはUMLクラス図でちゃんと表現できる。
C++のソースはどんなソースでもクラス図で表現できるとは限らない。
interfaceやabstract同様の機能はM$がJavaを真似て作ったC#でも取り入れられている。
0236デフォルトの名無しさん
NGNGPenisはHourseにだってimplementsできる。
woman.sex( new Hourse )とか、、
そんな獣姦ビデオとかあるし。
0237デフォルトの名無しさん
NGNGそういうSEは結構いたな。
抽象化ってのは別部分の能力なんだろうか。
要は分類だよな。
0238デフォルトの名無しさん
NGNG>abstract同様
抽象クラスと純化相関数入りのクラスにどれほどの違いがあるんですか?
0239デフォルトの名無しさん
NGNG抽象クラスにも実装済みで継承可能なメソッドを入れることができるでしょう。
抽象クラスは中に少しでもabstractなメソッドがあればクラスも抽象(abstract)と見なされる。
抽象クラスは継承した具象クラスがないと使えない。
抽象クラスはインスタンスを作れない。
Javaには仮想関数という用語は無い。
Javaはvirtualをつけなくても継承できる。
変わりにfinal宣言をすると継承を禁止する。
いうまでもなく、finalとabstractを併用することはできない。
つーか純仮想関数って何?
UMLでもそんな言葉聞きません。
0240デフォルトの名無しさん
NGNGSヨ板がいまだに学問・理系カテにありますから・・・。
0241デフォルトの名無しさん
NGNGC++も知らないくせにC++との差別化とかほざいてるわけか。浅いな。そこが。
0242デフォルトの名無しさん
NGNG純粋仮想関数の typo だと思われ
0243デフォルトの名無しさん
NGNGJavaも知らないくせにJavaを批判しているわけか。浅いな。そこが。
そもそも純仮想関数という言葉もUMLでは通じないぞ。
C++の用語はUMLでは殆ど死語と化している。
0244デフォルトの名無しさん
NGNG言語機能とオブジェクト指向用語とごっちゃになってない?
0245デフォルトの名無しさん
NGNGC++の場合オーバーライドし忘れてもコンパイルエラーにならないのか。
Javaだとエラーが出てくれるのでメンテナンスが楽。
C++ではこう定義するのか
virtual void doMethod() = 0;
ちょっと奇怪に見え
0246デフォルトの名無しさん
NGNGもちろん言葉は大切、慎重に選んで使わなきゃならないが、
ここで重要なのは指向または志向または思考なわけで、
大体のニュアンスが伝わればなんら問題ない。
0247デフォルトの名無しさん
NGNGエラーになるよ。純粋仮想関数を含んだクラスのインスタンスは
生成できないし、それを継承したクラスが純粋仮想関数をオーバー
ライドしなければやっぱりインスタンスは生成できない。
0248デフォルトの名無しさん
NGNG>
>ちょっと奇怪に見え
確かに。
vtable へのポインタを 0 で初期化するという意味らしい。
0249デフォルトの名無しさん
NGNGじゃあ「interface Penisable」だったらいいのか?
0250書き直し
NGNGpublic String getPenisSize();
}
public abstract class Man implements Penisable{}
public class Takeshi extends Man {
public String getPenisSize() { return "大きい";}
}
public class Masaru extends Man {
public String getPenisSize() { return "小さい";}
}
public class Woman {
public void sex( Penisable p ) { System.out.println( "あなたの ちんこ" + p.getPenisSize() + "のね" ); }
}
Woman woman = new Woman();
woman.sex( new Takeshi() );
woman.sex( new Masaru() );
その後、Okamaクラスを追加する必要が出てきた。
public abstract class Okama implements Penisable{}
public class Hiroshi extends Okama {
public String getPenisSize() { return "取っちゃった";}
}
Woman woman = new Woman();
woman.sex( new Hiroshi());
0252デフォルトの名無しさん
NGNG陰根可能
0253デフォルトの名無しさん
NGNG0254デフォルトの名無しさん
NGNG人にわかりやすく説明するならクラスやメソッドなどのネーミングにこだわることは重要。
ネーミングが変な名前だと混乱するだろう。
>>249-250 >>253-252
なんか笑える。
>>251
-ableという命名パターンはJavaのAPI、インターフェースでは良く見られるものです。
0255デフォルトの名無しさん
NGNG普通ableは動詞につけるもんだと思うが。
なんでもかんでもableつければいいってもんじゃないですよ。
0256デフォルトの名無しさん
NGNGableに詳しい人発見!! 質問させてください
ときどきcompatibleのように単純にable追加したら駄目なのがありますよね
なにか規則でもあるのですか?
0257デフォルトの名無しさん
NGNGコンパチはダメな英語ですか?
0258デフォルトの名無しさん
NGNGすいません。意味が良く輪からないのですが
駄目なのは自分の英語力です
辞書にのってるやつならいいのですが
複写可能とか辞書にのってないやつはどうしたらいいのか…
間違ってると恥ずかしいので
0259デフォルトの名無しさん
NGNGそれで>>253「ファッカボー」に改名?
0260デフォルトの名無しさん
NGNGもし間違っていたらあとでリファクタリング
0261デフォルトの名無しさん
NGNG「〜する + 〜できる」だから
動詞にくっつけるぶんには外人さんにも意味は通るんじゃない?
不安なら作った言葉をgoogleとかで検索してみるといいよ。
0262デフォルトの名無しさん
NGNGhttp://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=panisable
fuckable
http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&oe=UTF-8&q=fuckable
0263デフォルトの名無しさん
NGNG! ありがとうございます! なるほど、気づきませんでした。
0264デフォルトの名無しさん
NGNGやっぱりスレの明暗をわかるのは>>2なんだな。
0265デフォルトの名無しさん
NGNG低脳
0267デフォルトの名無しさん
NGNG「低脳」は余計だよね
0268デフォルトの名無しさん
NGNGPenisでも、おかしいときはおかしいわけで、
例えば、女もPenisを実装できてしまう。
やっぱりFackableかね?
そんでStateパターンのif文で男女判別。
0269デフォルトの名無しさん
NGNGワラタ
亜乱・毛異がないてるぞ。
0270デフォルトの名無しさん
NGNGふたなり(;´Д`)ハァハァ
0271デフォルトの名無しさん
NGNGManクラスやWomanクラス、HomoSexual(Okama)クラス、
両性具有クラス、奇形児クラス、性別不明クラス
をpackage化して
PenisableだかFuckableインターフェース
からpublic宣言をはずしてpackage外部からアクセスできないようにしたほうがええと思ったわい。
それか PenisだかSexualOrgans(生殖器)インターフェースを作って
(生殖器インターフェースがあるならPenisインターフェースいらない?)
コンポジション集約でhas-aの関係で人間クラスに生殖器フィールドを
設ければいいんじゃないかと。
0272デフォルトの名無しさん
NGNGだが、PenisをPenis形状の物として解釈するならば、問題は無い。
Fuckという言葉は性交するという意味合いで使われる事が一般的、
よって意味合いから言えば女性にも実装可能。よって相応しくない。
なにがなんでもableを使いたい人は、Insertableとするのが吉。
Insertableであればバイブにも大根にも実装可能。
0273デフォルトの名無しさん
NGNGHomoSexualとOkamaは同列に扱ってほしくない……
0274デフォルトの名無しさん
NGNGだからね、Penisableとか言う意味不明な言葉を
当たり前のように使うのは止めなさいね。
0275デフォルトの名無しさん
NGNGじゃ、こう? おかまを英訳するとHomoSexualとGayとQueerがでてしまう。
とりあえずQueerを同性愛者にして
Queer == Gay
interface Man
interface Woman
interface Queer
class Lesbian implements Queer, Woman
class HomoSexual implements Queer, Man
//ついでに、別表現
//男の中の女(おかま、ホモ)
class Man {
private Woman woman;
}
//女の中の男(おなべ、レズ)
class WoMan {
private Man man;
}
//漢(おとこ)の中の漢(おとこ)
class Man {
private Man man;
}
0276デフォルトの名無しさん
NGNG同性愛者の総称がHomoSexual
・Gayが男性同性愛者
・Lesbianが女性同性愛者
(※Queerは蔑称として使われることがあるらしい)
実際の性別に違和感を覚える人の総称がトランスジェンダー(TG)
・いわゆる「おかま」はMtF(Male to Female)
・いわゆる「おなべ」はFtM(Female to Male)
いわゆる「ふたなり」はインターセクシュアル(IS)と呼ばれ、TGとは異なる。
以上、設計にあたっての用語定義ね。間違ってたら訂正歓迎よん。
0277デフォルトの名無しさん
NGNGことがあると思うんだけどな。
0278デフォルトの名無しさん
NGNG0279デフォルトの名無しさん
NGNG0280デフォルトの名無しさん
NGNG0282278
NGNG0283デフォルトの名無しさん
NGNG使いすぎには注意しましょう
0284デフォルトの名無しさん
NGNG・変化する可能性のある概念はカプセル化せよ(interfaceで実装を隠蔽)
・実装に対してではなくインターフェースに対してプログラムせよ
この2つを学んだときはなるほどなと思ったよ。SwingのBorderクラス
とか見ていると面白い。自分でカスタムボーダー作って勉強してみる
のがいいと思う。
0285デフォルトの名無しさん
NGNG0286デフォルトの名無しさん
NGNG例えばどんなの?
いい例があったらおせーて。
0287デフォルトの名無しさん
NGNGたとえば、ファイルを圧縮するクラスを作ろうとしたと思いねぇ。
class FilePress {
public void compress(String inputfile, String outputfile);
public long expand(String pressedfile)
}
ところが、圧縮アルゴリズムはランレングスで実装したのだが、
あとからLZHやらZIPやらSITやらのアルゴリズムを追加したく
なったとする。圧縮アルゴリズムが増えるたびにメソッドを実装
しなおすのは効率が悪いので、
interface PressAlgorithm {
public void compress(String inputfile, String outputfile);
public long expand(String pressedfile)
}
abstract class FilePress imprements PressAlgorithm {
}
とかやっといて、FilePressLZHとかFilePressZIPとかのクラスを
FilePressから継承して作れば、追加アルゴリズムだけを作れば
すむことになる。
0288デフォルトの名無しさん
NGNGstatic finalでないインスタンスフィールドのことをいっているんだと思う。
0289デフォルトの名無しさん
NGNGなるほど。抽象化の基本ですね。
0290デフォルトの名無しさん
NGNG0291デフォルトの名無しさん
NGNG0292デフォルトの名無しさん
NGNG0293デフォルトの名無しさん
NGNG意識します。ただ、うっかりわすれても大抵かってに開放されちゃって問題はでにくい。
自作のコレクションとか作った時に死んだ参照をのこしたりしなきゃ大抵大丈夫。
0294デフォルトの名無しさん
NGNG_∧_∧
/ ̄ ( ・∀・)⌒\ ガッ!!
__ / _| | |
ヽヽ / / \ | | ,,,,,,,iiiiillllll!!!!!!!lllllliiiii,,,,,,,
\\| |____| .| | .,llll゙゙゙゙゙ ゙゙゙゙゙lllll,
\/ \ | | .|!!!!,,,,,,,, ,,,,,,,,,!!!!|
| ヽ_「\ | |、 | ゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙ .|
| \ \――、. | | ヽ .| .゙゙゙゙゙゙゙゙゙゙ |
| / \ "-、, `| | ヽ | |
_/ / "-, "' (_ ヽ ヽ .| |
/ __ノ "'m__`\ヽ_,,,, ヽ | |
`ー― ̄ ヽ、__`/ー_,,,, ゙゙゙゙!!!!!!!lllllllliii| |
\゙゙゙゙゙゙゙!!!!!lllllllliiiii| |
\ ヽ | |
ヽ \ | |
| \.| |
`ヽ、,,_ノ| |
゙゙!!!,,,,,,,, ,,,,,,,,,!!!゙゙
゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙
/.// ・l|∵ ヽ\ ←>>1
0295コピペ天職
NGNG_∧_∧
/ ̄ ( ・∀・)⌒\ ガッ!!
__ / _| | |
ヽヽ / / \ | | ,,,,,,,iiiiillllll!!!!!!!lllllliiiii,,,,,,,
\\| |____| .| | .,llll゙゙゙゙゙ ゙゙゙゙゙lllll,
\/ \ | | .|!!!!,,,,,,,, ,,,,,,,,,!!!!|
| ヽ_「\ | |、 | ゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙ .|
| \ \――、. | | ヽ .| .゙゙゙゙゙゙゙゙゙゙ |
| / \ "-、, `| | ヽ | |
_/ / "-, "' (_ ヽ ヽ .| |
/ __ノ "'m__`\ヽ_,,,, ヽ | |
`ー― ̄ ヽ、__`/ー_,,,, ゙゙゙゙!!!!!!!lllllllliii| |
\゙゙゙゙゙゙゙!!!!!lllllllliiiii| |
\ ヽ | |
ヽ \ | |
| \.| |
`ヽ、,,_ノ| |
゙゙!!!,,,,,,,, ,,,,,,,,,!!!゙゙
゙゙゙゙!!!!llllliiiiiiiiiilllll!!!!゙゙゙゙
/.// ・l|∵ ヽ\ ←>>294
0296デフォルトの名無しさん
NGNGhttp://muryou.gasuki.com/hankaku/jaz08.html
http://muryou.gasuki.com/hankaku/jaz07.html
http://muryou.gasuki.com/hankaku/jaz10.html
http://muryou.gasuki.com/hankaku/jaz09.html
http://muryou.gasuki.com/hankaku/jaz06.html
http://muryou.gasuki.com/hankaku/jaz05.html
http://muryou.gasuki.com/hankaku/jaz04.html
http://muryou.gasuki.com/hankaku/jaz03.html
http://muryou.gasuki.com/hankaku/jaz02.html
http://muryou.gasuki.com/hankaku/jaz01.html
0297デフォルトの名無しさん
NGNG0298デフォルトの名無しさん
NGNG0299デフォルトの名無しさん
NGNG関連をもった構造を構築するときである。
私はオブジェクト間の関連を図に書くとき紙と鉛筆を使う。
正確には鉛筆ではなく、ペンテルのGraphGear1000という
シャープペンシルで0.3mmの芯を使っている。1000円である。
このシャープペンシルは先端がシャキーンと格納できるので
体感的にも良質な筆記用具といえよう。
私の筆箱には「ペンテル入ってる」状態で消しゴムとグラフギアが集約されている。
私はドキュメントの中に手書きの関連図をスキャナで取り込み、保存する。
ある程度美的感覚が要求される場合にはパソコン上で図を描くが、
比較的時間を取られる作業であるので、ほとんどの場合、手書きである。
設計の作業にはある意味での「試行錯誤」が伴う。
そこで図面上で思考実験を行うわけである。
同じ機能を実現する方法は数多くあるが、良い設計は実装の進化に対する
許容度が高く、時間と共に良いものが出来てくる。
設計で失敗すると、時間と共に実装がボロボロになってくる。
0300プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG真の生産性の向上は粒度の小さいサブルーチン型モジュール指向によって成される。
0301デフォルトの名無しさん
NGNG0302デフォルトの名無しさん
NGNG真の生産性の向上は可読度の小さいextern宣言外部変数指向によって成される。
0303デフォルトの名無しさん
NGNGUML使え。
クラス図くらいツールで描け。
0304デフォルトの名無しさん
NGNGツールなんて使ってたら、思考の妨げになる。
コピーの裏紙に書きなぐるのが基本だろ。
0305デフォルトの名無しさん
NGNGおまえたちは理解しないのですか?
0306デフォルトの名無しさん
NGNGそんな人が急に禿げたらどうなると思う?結果は明白だ。
030750
NGNGそれを頭に。。
0308デフォルトの名無しさん
NGNGなんかいい感じだね。
0309Java太郎 ◆DMVtSSFzcg
NGNG0310デフォルトの名無しさん
NGNG0311デフォルトの名無しさん
NGNG部品は黙ってろ
0312デフォルトの名無しさん
NGNGC#ウンコ...etc.
0313デフォルトの名無しさん
NGNG0314デフォルトの名無しさん
NGNG0315デフォルトの名無しさん
NGNG0316デフォルトの名無しさん
NGNG0317デフォルトの名無しさん
NGNG0318デフォルトの名無しさん
NGNG↓あとよろしく
0319デフォルトの名無しさん
NGNGヨーダなら知ってる
0320デフォルトの名無しさん
NGNG↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
0321デフォルトの名無しさん
NGNG0322デフォルトの名無しさん
NGNGうんこみたい
0323デフォルトの名無しさん
NGNG0324デフォルトの名無しさん
NGNG0325デフォルトの名無しさん
NGNGよく理解できてないんで質問したいんですが、
要するにオブジェクト指向ってのは同じ結果を生み出す
プログラムのソースをどれだけ簡略化できるかってことなのですか?
0326デフォルトの名無しさん
NGNG0327デフォルトの名無しさん
NGNGお前みたいな奴が書き込むからです。
0328デフォルトの名無しさん
NGNGオレの中級レベルの中途半端な知識の範囲で答えると。。。
それは違うと思うw
0329デフォルトの名無しさん
NGNG拡張性、移植性、再利用性、堅牢性、コードの可読性を高めるためにもある。
ソースコードを修正せずにクラスを一つ追加するだけで拡張できる
手法と言うものがある、これができるのはオブジェクト指向以外にほかならない。
0330デフォルトの名無しさん
NGNGブロックに分割して開発できることだ。
だから、分担しての多人数の開発もやりやすいし、改良する場合も
必要なオブジェクトだけ変更すれば良い。
もちろん、オブジェクト指向を使わなくてもルーチン毎、ソース毎
の分割はできるわけだが、オブジェクト指向を使えばもっと見通しが
良くなり、データを不正なアクセスから隠蔽できたりもする。
0331デフォルトの名無しさん
NGNG0332デフォルトの名無しさん
NGNGという事はJavaには明るい未来があると?
0333デフォルトの名無しさん
NGNGぶっちゃけて言っちゃうと。。。。
何かプログラムを作ろうとする時に
「こういうクラスが必要だろう」って感じでクラスを設計していくと
全体の構想が浮かびやすいんだな。
で、細かいメリットは>329の言う通りなんだけど。
0334デフォルトの名無しさん
NGNGそう思いのあなた!
http://www5e.biglobe.ne.jp/~rgxt5nl/index.htmlのページをお試しください!
100種類のタダで遊べるゲームに、
おもしろいパクリ物を集めたコーナーや、
管理人がすぐに素材にしてくれる素材掲示板
ほかにも、2ちゃん掲示板もありますよ!
自作フラッシュもあります。
とにかくいろんなコンテンツが豊富です!
常連になってくれる人大募集!
0335デフォルトの名無しさん
NGNGブロックの組み合わせでプログラムを作るなら、より多くの強力な
ブロックが手に入りやすい環境の方が開発の手間が省けるわけで、
Javaはその辺、微妙というか中途半端というか。
0336デフォルトの名無しさん
NGNGなんでJavaが?
0337デフォルトの名無しさん
NGNGオブジェクトというブロック?
クラスじゃあないん?
0338デフォルトの名無しさん
NGNG違う。
オブジェクト指向とは、現時点では使わない事が分かっているのに、
将来もしかしたら使うかも知れない「機能」をべたべた貼り付けて
「安全性&完全性」を高める手法の事だ。
他国で戦争が起こった為に、万一を考えて某レジャー施設の手荷物検査を
する何処かの国みたいなものだな。
0339デフォルトの名無しさん
NGNGなぜ安全性&完全性が高まるのかわかりません
0340デフォルトの名無しさん
NGNG0341デフォルトの名無しさん
NGNG関数の依存関係の影響
(依存される方を修正すると依存されるほうも修正しなければならないという地獄)
を最小限に抑えることができない。
複数人か長きに渡ってでプログラミングしようものならなおさらのこと。
昔自分が書いたコードを覚えていないなんて事態に直面したときに泣きを見る。
また、関数同士の相互作用が馬鹿にならない。
関数の数が3個の時は相互作用の数は6個。
4個の時は12個、5個の時は20個、6個の時は30個
関数の数がn個の時は相互作用はn^2 - n 個
つまり関数の数が1000個の時は、一個の関数を修正すると
99万9000個もの関数を修正しなければならない恐れがあるということ。
これはたまらない。とてもやっていられない。
そこでオブジェクト指向が生まれた。
0342デフォルトの名無しさん
NGNG0343デフォルトの名無しさん
NGNG>そこでオブジェクト指向が生まれた。
オブジェクト指向が生まれたのはそういう理由じゃないんけど。
元々はSmalltalkのメッセージパッシングという手法
0344デフォルトの名無しさん
NGNG0345デフォルトの名無しさん
NGNGまず愚かにも実装効率を優先した者たちにより、オブジェクトはクラスとインスタンスとに分断された。
次にメッセージの送出は自身のポインタを渡す特殊な関数呼び出し、すなわちメソッド呼び出しに変わり、オブジェクト指向は汚されたのである。
0346デフォルトの名無しさん
NGNGそなの?メッセージを送るときって、
"単にメッセージを送る"んじゃなくて
"なにかして欲しいから、その意思表示としてメッセージを送る"んでしょ?
ってゆうことは、
"メッセージ送出とメソッド呼び出しは等価"なんじゃない?
オブジェクトがクラスとインスタンスに分断されていないことの
利点が思い付かないし。単純に想像してみても、
"その物が、何であるか(クラス)"と言うことと、
"その物が、そこにある(インスタンス)"と言うことは、全く別のことであると思うし、
つまり
"オブジェクトがクラスとインスタンスに分けられたことにより、オブジェクト指向はより美しくなった"....
とすら言えると思うのだけど。
0347デフォルトの名無しさん
NGNGそういば漏れの先輩の担当したコード、
どのクラスのメンバ関数みても static だったなぁ。
その先輩、今は違うプロジェクトに移ってC言語でコード書いてるみたいなんだけど、
「C++はいいなぁ、名前のバッティングがないもんな」とかゆってた。
0348デフォルトの名無しさん
NGNG彼は意味わからずに書いてんだから、いちいち相手しなくていいよ。
0349デフォルトの名無しさん
NGNG0350デフォルトの名無しさん
NGNG>利点が思い付かないし。
「思いつく、思いつかない」は、一に本人の頭の構造に依存する。
まず、その様な設計の言語が無いか調べれ。
もし見つかったら、それがどう機能しているか(他人の評価を)調べれ。
それならば、(ちゃんと行えば)誰もが同じ結果を示せる。
話しはそれからだ。
0351デフォルトの名無しさん
NGNG0352デフォルトの名無しさん
NGNGふーん、自分の言葉ではインスタンスとクラスを分離しないことの利点を語れないんだ。
ま、そんな奴と話してもしょうがないね。
0353デフォルトの名無しさん
NGNGとりあえず自分も教えて君ではいけないと思ってe-wordで調べてみました。
ソフトウェアの設計や開発において、操作手順よりも操作対象に重点を置く考え方。
関連するデータの集合と、それに対する手続き(メソッド)を「オブジェクト」と呼ばれる一つのまとまりとして管理し、その組み合わせによってソフトウェアを構築する。
すでに存在するオブジェクトについては、利用に際してその内部構造や動作原理の詳細を知る必要はなく、外部からメッセージを送れば機能するため、特に大規模なソフトウェア開発において有効な考え方であるとされている。
データやその集合を現実世界の「モノ」になぞらえた考え方であることから、「オブジェクト」指向と呼ばれる。
例えば、我々がテレビを操作する際には、テレビ内部でどのような回路が働いているかを理解する必要はない。ただテレビの操作方法だけを知っていれば、それでテレビを使うことができる。
すなわち、「テレビ」というオブジェクトは、自身(の内部を構成する電子回路)を動作させる手続きを知っており、それを利用するためには、(例えばリモコンで)適切なメッセージを与えるだけでよい。
このように、何らかの「データ」と、それを操作するための「メソッド」の組み合わせが「オブジェクト」である。
個々の操作対象に対して固有の操作方法を設定することで、その内部動作の詳細を覆い隠し、利用しやすくしようとする考え方と言える。この考え方を応用したプログラミング技法が、オブジェクト指向プログラミング(OOP)である。
要するにユーザーにも開発者にも易しいプログラムの作り方ってことですか?
0354353
NGNG0355デフォルトの名無しさん
NGNG長いので全然読んでないけど、
>とりあえず自分も教えて君ではいけないと思ってe-wordで調べてみました。
と書いておきながら、
>要するにユーザーにも開発者にも易しいプログラムの作り方ってことですか?
で締めるのはどうかと。
0356デフォルトの名無しさん
NGNG大体正しいけど、「ユーザー」ってのは「ユーザープログラマ」な。
0357デフォルトの名無しさん
NGNGなんか、「要するに」って言葉の使い方が
技術に明るくない管理職っぽい感じ。
0358デフォルトの名無しさん
NGNG分かったなら、ちょっとここで
「オブジェクト指向」と「構造化手法」の違いを
まとめてみれ。
0359353
NGNGそうですねw
でも
>個々の操作対象に対して固有の操作方法を設定することで、その内部動作の詳細を覆い隠し、利用しやすくしようとする考え方と言える。この考え方を応用したプログラミング技法が、オブジェクト指向プログラミング(OOP)である。
ってあるから、ユーザーが操作しやすいようにするってことですよね?
ということは、パソコンで例えると
ユーザーはアイコンをダブルクリックするだけでファイルを開けるけど、
開発者はその裏でfopenだとか色々練らなければいけない。
となりますよね?(多分)
こういう仕組みのことをオブジェクト指向というのでしょうか?
0360デフォルトの名無しさん
NGNGオブジェクト指向って素晴らしい!とは思えないなぁ・・・
0361デフォルトの名無しさん
NGNGそれがほんとに例え話なら、まぁ正しい理解だ。
0362353
NGNGえっと、オブジェクト指向ってのは、さっきも書いたようにユーザー(プログラマ)が、
実際パソコンの中でどんなコトが起こっているのか意識しないでも使える手法?
構造化手法ってのは、ユーザー(プログラマ)がいちいちパソコンに直接指令を与えて
情報を引き出す手法?
全くのカンですw
0363デフォルトの名無しさん
NGNGデザインパターンの本とか読むといい。
ソースコードから、無様な部分がだいぶ減る。
( プログラミング技法としてのオブジェクト指向の
能力と使い方が理解できるはずだ。)
0364デフォルトの名無しさん
NGNG>開発者はその裏でfopenだとか色々練らなければいけない。
それをやらなくてよい言語が作られたら、
それがOOPか非OOPかに関係なく、
俺は今すぐその環境に移行するのだが・・・
0365デフォルトの名無しさん
NGNGちがうぅ〜
例えば、ファイルを開く関数 fopen() をコールした時、パソコン内部で
何がおこってるのかを知らなくても、プログラマはプログラムを書けるでしょ?
でも、fopen() は、オブジェクト指向的な関数じゃない。
0366362
NGNGそう言われてみればそうですねw
じゃあ、ライブラリのstdio.h(自分はCですので)の中の
fopen()関数を定義した人が、本当のオブジェクト指向における開発者だと
言えるのでしょうか?
関数によってオブジェクト指向であるとかもあるんですか?
Cを勉強してる限りだとオブジェクト指向って言葉は耳にしません。
前にC++がオブジェクト指向だとか聞いたような聞かなかったような・・・。
0367デフォルトの名無しさん
NGNG複数クラスにまたがるようなアクセスが面倒くさい時とかいうのありますよね?
どうするのそこんとこ。
0368デフォルトの名無しさん
NGNGfopen()とか、stdio.hで定義されてる全てのものは、
オブジェクト指向的ではありません。というか、
C言語はオブジェクト指向をサポートしません。
オブジェクト指向はメッセージの受け渡しによって
記述するプログラミングパラダイムです。(続く)
0369デフォルトの名無しさん
NGNGリファクタリングだ。
0370368
NGNG例えばファイル読み込みについて書くと、
非オブジェクト指向だと、
1. "ファイルを開く関数"を呼ぶ
2. "ファイルからデータを読み込む関数"を呼ぶ
3. "ファイルを閉じる関数"を呼ぶ
オブジェクト指向だと
1. "ファイル"を表現する、オブジェクト(インスタンス)を作る。
2. そのオブジェクトに"開く"というメッセージを送る
3. そのオブジェクトに"読み込み"というメッセージを送る
4. そのオブジェクトに"閉じる"と言うメッセージを送る。
非オブジェクト指向のときは、どの関数の名前にも"ファイルを〜"と付いてる。
オブジェクト指向のときは、どの操作も"そのオブジェクトにメッセージを送る"となってる。
0371367
NGNGまた、使おうにもコンパイラがうまく対応してくれなくて面倒ってのない?
どうするのそこんとこ。
0372デフォルトの名無しさん
NGNGありがとう、今度読んでみます
0373デフォルトの名無しさん
NGNG次は「オブジェクト指向」と「カプセル化」の
違いをまとめてみよう。
(一般には「カプセル化」と「オブジェクト指向」は
包含関係ではあるが同値関係ではないと言われているので・・・)
0374デフォルトの名無しさん
NGNG非オブジェクト指向とオブジェクト指向の違いはなんとなくわかるけど
それで?ってカンジになっちゃいます(・_・、) グスン
0375デフォルトの名無しさん
NGNGじゃあ、Cでfopen()を使っていても、それを
「"FILE *" に "fopen" メッセージを送る」
と呼びさえすれば、それでオブジェクト指向といえるのですか?(w
0376デフォルトの名無しさん
NGNGFile f("filename"); // "filename" ファイルに対応するオブジェクトを作る。
f <- open; // そのファイルオブジェクトに"開く"メッセージを送る。
buf = f <- read; // ファイルオブジェクトに"データを読み込む"メッセージを送る(で、そのデータをバッファに置く)
f <- close; // ファイルオブジェクトに、"閉じる"メッセージを送る。
0377367
NGNG#define private public
ってやられたとき困らない?
どうすんのそこんとこ。
やるやつがアホだし、class宣言のトップにprivateなやつならべりゃいいけどさ。
0378362
NGNGなるほど。「呼ぶ」と言う動作さえも非オブジェクト指向となるのですか。
自分はCしか出来ないので、オブジェクト指向の言語を勉強するようになったら
より理解を深められると思います。
「オブジェクト指向」と「カプセル化」ですか?
全く分かりませんが、「カプセル化」ってのはモジュラプログラミングのことでしょうか?
0379デフォルトの名無しさん
NGNGなんで異なる言葉で呼ばれる概念を = で結ぼうとするのだろう。
0380デフォルトの名無しさん
NGNG#ifdef private
#undef private
#endif
か、
#ifdef private
#error ヴォケ!死ね!
#endif
0381デフォルトの名無しさん
NGNGJavaの本では普通に「メソッドを呼び出す」という言い回しを
使っているから、そういうのは誤解を招くぞ。
0382デフォルトの名無しさん
NGNGすべてのインスタンスにメッセージキューを持たせよう。
0383デフォルトの名無しさん
NGNGソースコードを直接いじられたとき困らない?
どうすんのそこんとこ。
0384デフォルトの名無しさん
NGNG"メッセージを送ると、結果としてメソッドが呼ばれる"
ってふうには説明されていないのかなぁ。だとしたら鬱だ。
0385デフォルトの名無しさん
NGNG全部のメソッドがスレッド(プロセス?)を異にする?
0387デフォルトの名無しさん
NGNGなんで困るの?
0388デフォルトの名無しさん
NGNG0389デフォルトの名無しさん
NGNG0390デフォルトの名無しさん
NGNGワラタ
こういう心温まるコードを見ると感動すら覚える。
0391デフォルトの名無しさん
NGNGその際、メッセージを送る先は FILE** ではなくシステム。
0392デフォルトの名無しさん
NGNGC++やJavaの構文では、「送る」というより、
まさに「呼び出す」という雰囲気が当てはまるから、
言い回しをそれほど意識する必要はない。
0393362
NGNGが、
これってそのまんまオブジェクト指向と同じじゃないですか?
違いがわかりません。
0394デフォルトの名無しさん
NGNGマメだねぇ。
カプセル化って言うのは「機能とデータをひとまとめにする」ってこと。
オブジェクト指向って言うのは「オブジェクト間のメッセージのやり取りでコードを書く」ってこと。
" オブジェクト指向で扱うオブジェクトは、
カプセル化されていないと扱いづらい "
対立する概念じゃなくて、独立してるけど関連性の深い概念、だね。
0395OOモナー
NGNGおまいら、オブジェクト指向って何だか分かってんの?
これ以上、「OO=訳分かんない無気味なもの」という状態を
放置したくないので、マジレスする。
Objectを手もとの英和辞典で引いてみろ。
おそらく、
Object:モノ、対象、目的
などの意味が出ているはずだ。
日本の馬鹿な技術者がObject=モノと考えてしまったために、
OO技術の浸透はかなり遅れてしまったわけだ。
いまでもドキュソ入門書では、「モノ(Object)」などという
書き方をしているものが多いはず。
モノ?ふざけるな。そんな不明な定義でオブジェクト指向が
理解できるはずもない。「モノを指向する」とか言われて、
おまいらが混乱するもの無理はない。
だが、考えてみろ。Data Orientedは、扱うデータを中心に
分析設計を行うことである。Object Orientedとはなんぞや。
(続く)
0396OOモナー
NGNG訳は、「対象」である。ソフトウェアに置ける対象とは、
システム化を行う対象のことである。
ゆえに、Object Orientedは「システム化対象指向」という
訳の方が適切である。つまり、システム化対象を中心に考える
ということである。
たとえば、いままで経理担当者が社員から領収書を受け取って、
帳簿に交際費を計算して記載し、帳尻を合わせた後、社員に
お金を支給していたところをシステム化したいと考えた場合、
オブジェクト指向ではまず、システム化対象を中心に考えるので、
「経理担当者」「社員」「領収書」「帳簿」「交際費」「お金」
など、現実の運用を行う上で、何らかの役割を担っている概念を
ピックアップすることから問題を考えていくのだ。
(気が向いたら続く)
0397デフォルトの名無しさん
NGNGそんな教科書をコピペしたような説明じゃ分からないから、
こんなスレがたつんだろ。
0398デフォルトの名無しさん
NGNG"Object"を”システム化対象”ととらえ直したのに、
システム化対象の例として"「経理担当者」「社員」"など、
"モノ"っぽいものばかり挙げたのでは、何のために
"モノ"という訳語を拒否したのか解りませぬ。
0399デフォルトの名無しさん
NGNG>オブジェクト指向って言うのは「オブジェクト間のメッセージのやり取りでコードを書く」ってこと。
goto >>375
0400デフォルトの名無しさん
NGNG"システム化対象"と訳したのでは、
もっと抽象的なオブジェクトを扱う段階に進む際の妨げとなるような気がします。
オブジェクト指向の本質とは関係ありませんが、
しかしOOPLを用いてプログラミングする際、
デザインパターンなどは必須な訳です。
その際、Object = システム化対象 という認識では不足です。
たとえば Mediater は、システム化される以前に存在しているシステム化対象ではありません。
旧来の Object = モノ と言う認識の方が優れていると思います。
0401362
NGNGそうなのですか。
なんとなく頭では理解できました。
でも、やっぱり実践経験がないのにどーのこーの言うのは良くないですね。
近いうちにオブジェクト指向の言語の勉強を始めようと思います。
それで、是非みなさんにオブジェクト指向を勉強するならこれ!ってな言語を教えて欲しいのですが・・・。
0402デフォルトの名無しさん
NGNG>>391
0403デフォルトの名無しさん
NGNG0404デフォルトの名無しさん
NGNGJavaでもやっとけば?
0405401
NGNG自分はCしか知らないのですが、そこから入ると考えても
やっぱりJavaが最適でしょうか?
0406デフォルトの名無しさん
NGNG∴C言語⊂オブジェクト指向言語
Q.E.D.
何か?
0407デフォルトの名無しさん
NGNGすんません、まず >>396 のいう「システム」とは
何かが分からないのですが。
0408デフォルトの名無しさん
NGNG0409デフォルトの名無しさん
NGNGちょっと話を逸らすけど、
∴と⊂ってなんの記号ですの?
MM
⊂゚Д゚つ∴スンマソン
UU
0410OOモナー
NGNGそうかな。
「モノ」っていわれて分かる香具師どのくらいいんの?
「モノ」って訳は最低だと思うけどね。
まあ、「システム化対象」ってのも必ずしもいいとはいえないが、
OOの基本的な出発点は、「現実世界の事象を、できるだけ
忠実にソフトウェア上にマッピングする」ってことだ。
まあ、実際にはそれは無理なので、デザインパターンなどの
テクニックが生み出されてきたわけだが。そういう意味では
デザインパターンは、OOを駆使していく過程で生み出された、
後付けのテクニックといえる。それはOOをある程度やってみて
はじめてその必要性がわかるものだ。
0411デフォルトの名無しさん
NGNGCはオブジェクト指向言語ではない。
オブジェクト指向をサポートするような機能がないから。
ただ、Cで書かれたコードを、オブジェクト指向的に理解することはできる。
その際、 「fopen() メッセージをシステムに送信する」などのように
無理のある解釈を行わなければならない場合が多い。
また、オブジェクト(システム化対象?)を軸としてモジュール分割したCのソースコードでは、
"他のモジュールの関数を呼び出す"ことを"他のモジュールにメッセージを送る"
と捉えた方が、理解しやすいかもしれない。
そのような場合であっても、それはそのコードがオブジェクト指向なのであって、
C言語自体がオブジェクト指向な訳ではない。
0412デフォルトの名無しさん
NGNG>OOの基本的な出発点は、「現実世界の事象を、できるだけ
>忠実にソフトウェア上にマッピングする」ってことだ。
それはOOの出発点ではなくて、システム構築の
出発点ではないかと・・・
0413デフォルトの名無しさん
NGNGそうか、初学者には「システム化対象」の方が分かりやすいのかもねぇ。
んでなれた頃に、システム化対象だけじゃなく、
もっと抽象的なモノもオブジェクトとして扱われることを教えていく、と。
企業とかで研修する際や学生向けにはいいかもね。
0414デフォルトの名無しさん
NGNGさて、そこらで一つ >>325 に
「オブジェクト指向」とは何か、
を教えてはくれないだろうか?
0415デフォルトの名無しさん
NGNGあれだよ、自転車に乗れるようになるまでを考えてみよう。
教える人はどう乗ればいいか分かっている、が言葉でどう伝えたら分からない。
教わるほうはいくら言葉で説明されても理解できない。
じゃあどうすればいいのか?
答えは実際に何度もこけて、自分で「自転車に乗る」という感覚を身をもって知るしかない。
オブジェクト指向が理解したければ、自分自身で何度も設計を繰り返すのだ。
そうしてやっとオブジェクト指向の感覚が身についていく。
0416デフォルトの名無しさん
NGNGな ん じ ゃ そ り ゃ 。
0417デフォルトの名無しさん
NGNGJava/C#でいうObjectクラスに該当する。
全てのクラスのスーパークラスは森羅万象を構成するもの、
すなわちオブジェクトである。
0418デフォルトの名無しさん
NGNG∴ = 蕎麦畑 = 蕎麦 = 粋
⊂ = (右辺は左辺に)発情している = 大好き = 憧れ
要するに、
「(余計な機能をたくさん背負い込んだ)"C++" は 粋な "C" に憧れている」
0419デフォルトの名無しさん
NGNGんじゃ、俺もObject?
0420デフォルトの名無しさん
NGNG>答えは実際に何度もこけて、自分で「自転車に乗る」という感覚を身をもって知るしかない。
言いたい事は分かった。
しかし、一人で散々苦労した挙げ句、やっと乗れるようになって
有頂天になっていた矢先、通りすがりの人に
「それ、(自転車じゃなくて)三輪車だよ」
って指摘されたら萎えるだろ?
0421OOモナー
NGNG構造化分析ってのは、システムを初期化処理、主処理、終了処理という
構造で考えていくことだ。それぞれの部分が、さらに
細分化されて、モジュールという単位になる。
細かく細分化されることで、確かに一つ一つのモジュールの
機能は分かりやすくなったが、解決されない問題もある。
それは結合度の問題。トップから始まるピラミッド形の構造が、
モジュールの結合を強固にしてしまっている。
簡単にいえば、処理する順番が決まっているということだな。
そこで、共通モジュールというのを抽出して、
いろんなところから利用できるようにするというのが
行われる。共通モジュールはいつでも呼び出せるので
結合度が低い。
OOは、結合殿観点からいえば、総共通モジュール化を
狙ったものととらえることができる。時系列に依存する
部分をできるだけ内側に綴じ込め、いつでもどこからでも
処理を呼び出せるようにして、結合度を低く押さえるわけだ。
つまり、OOでは構造化のようなモジュール分割ではなく、
小さなモジュールの見通しの良さを生かしつつ、逆に
オブジェクトの内部に、そのオブジェクトをうまく使うための
初期化処理(これは通常コンストラクタが担う)
終了処理(デストラクタなどが担う)
を内包させ、初期化後は自由に使えるようにしたわけだ。
発想が逆なのがおもしろいね。
0422デフォルトの名無しさん
NGNGあーそのとおりだね。 すいませぬ。
0423デフォルトの名無しさん
NGNG要するにトップダウンではなく
ボトムアップで設計すれば
「オブジェクト指向」になる、ってこと?
0424デフォルトの名無しさん
NGNGならねぇ。
なんでトップダウンやボトムアップって言葉が出て来たんだ?
0425デフォルトの名無しさん
NGNGそーいうことになる。
この世に存在するもの全てがオブジェクト、地球も宇宙も生も死もすべてオブジェクト。
オブジェクト指向と似たような概念はプラトン哲学ですでに語られていたらしい。
0426OOモナー
NGNG結合度の問題とはちょっとずれるけど、そういう側面はあるよ。
ボトムアップってのは、おそらくシステムの構成要素を
まず事前に洗い出して、それを組み合わせていくってことだろ。
こう書くと、何か難しいことのようだが、実はOOじゃなくても
システムの構成要素の洗い出しってのは、要件分析の初期段階で
やっているはずなんだよね。
構造化の場合は、その分析の結果、このシステムは
○○システムであると大きく捉えて、構造化手法によって
それを再構成しながら実現方式を考えていくけど、
OOの場合は、洗い出した個々の構成要素をできるだけ生かしつつ、
設計・実装まで持っていこうとする。
0427OOモナー
NGNGプラトンのイデア論だろ。
クラスとインスタンスの関係を説明するには面白いが、
個人的には、そういうテツガク的な側面を強調する限り、
OOの理解は進まないだろうなと思う。
0428デフォルトの名無しさん
NGNG( ´∀`)オマエモナー
0429デフォルトの名無しさん
NGNGいや、あれは面白かった。
不変の「永遠の型」、イデアがクラスで、実体がオブジェクトやインスタンス
これは解りやすかった。
あの、小説「ソフィーの世界」にでてくる「ソフィーがいる」世界がクラスで
「ソフィーを小説の登場人物としてその小説を読んでいる側のヒルデと少佐の世界」
が現実世界でありオブジェクトやインスタンスという表現は面白かった。
0430デフォルトの名無しさん
NGNG0431Java太郎 ◆DMVtSSFzcg
NGNGテメェら!!
0432デフォルトの名無しさん
NGNG0433デフォルトの名無しさん
NGNGそんなもんどんなアプリ作るかで対決がどうこういってられる問題でなくなる。
0434デフォルトの名無しさん
NGNGよーし、それじゃ
「広島県庁の給与計算システム」でどうよ?
0435デフォルトの名無しさん
NGNG却下
0436デフォルトの名無しさん
NGNG0437デフォルトの名無しさん
NGNG却下繚乱
0438Java太郎 ◆DMVtSSFzcg
NGNG0439デフォルトの名無しさん
NGNGかつて神話の時代、フィールドやメソッドは、実行時に追加や変更、削除が可能であった。
フィールドにnullなどを代入せずとも、フィールドそのものを「無」として扱えたのだ。
0440デフォルトの名無しさん
NGNG出席簿に○付けて、学校に行った事にしてくれるプログラム。
0441デフォルトの名無しさん
NGNG>>430ね
0442デフォルトの名無しさん
NGNG単なるMapじゃないの、それ。
0443デフォルトの名無しさん
NGNGつーか、フィールドって何?
スロットの事?
0444デフォルトの名無しさん
NGNGアンケートに答えると、もれなく音楽ギフト券!!
http://camellia16.fc2web.com/ongakudb.html
0445デフォルトの名無しさん
NGNGつーかJavaScriptでも使ってれば?
いやマジで
http://www.tokumaru.org/JavaScript/
0446デフォルトの名無しさん
NGNG0447デフォルトの名無しさん
NGNGボトムアップはXP (eXtreme Programming)じゃないか?
0448デフォルトの名無しさん
NGNGとても多いようだ。
0449デフォルトの名無しさん
NGNG設計はトップダウンでしょ。
コーディングはユニットテストの助けがあるから好きにやれって感じ。
0450デフォルトの名無しさん
NGNGs/設計/分析/
s/コーディング/設計-コーディング/
0451Java太郎 ◆DMVtSSFzcg
NGNG解説願います
0452デフォルトの名無しさん
NGNG是非
0453OOモナー
NGNGソフトウェア工学の範疇では捉えられないといいたいのでは
ないかと思う。
たとえるなら、天動説を信じてる香具師に地動説を示しても、
すぐには理解できないように、OOは新しい世界観の提示であり、
OO以前に固執する限り超えがたい壁があるといいたいのだろう。
いわゆるパラダイムシフトが必要だと。
よく聞く話だし、多少は考える視点を変える必要があるとも
思うが、俺は別な考え方を持っているよ。
OOは、ソフトウェア工学の成果を踏まえた延長上にある
技術だと思っている。その意味でこれまでのソフトウェア工学の
知識はOOを理解する上で、助けになることが多いと思う。
OOは決して特別なものじゃないし、ソフトウェア工学の
側面からOOを利点や欠点を捉えていくことも可能だと
思っている。
だから、いたずらに哲学的なベールをかぶせたり、
必要以上の壁を作るのにはあまり賛成したくない。
0454デフォルトの名無しさん
NGNG>implementsはextendsの代わりに使うものであり
Interfaceに対してプログラミングするんだろうがよ。
まぁ、やり方はいろいろあるが。
てめぇは言語仕様から引用してるだけ。実装したことある?
0455デフォルトの名無しさん
NGNGキツイね・・・
0456デフォルトの名無しさん
NGNG0457448
NGNGトップダウンであろうがボトムアップであろうが、
どんな分析過程を経たとしても、
設計段階でOOを用いるのか、構造かプログラミング用いるのは任意。
あまつさえXPなんて言葉が出て来たしな。
0458デフォルトの名無しさん
NGNG0459デフォルトの名無しさん
NGNGつか、分析・設計の連続なんて構造化プログラミングでも同じだろ?
何で問題解決プロセスとプログラミング技法をバインドしたがるんだよ。
藻まえらの脳をストラテジーパターンを使ってリファクタリングしろよと(w
0460デフォルトの名無しさん
NGNG0462デフォルトの名無しさん
NGNGOO のプロセス技法なんて腐るほどあるし、
トップダウンでもボトムアップでもサンドイッチでも、
採用するプロセスや工程に応じてどれかになるだろうね。
このトップダウンとかって、プロセスがそう捉えられるってだけで、
そうしなければならないってものじゃないし。
0463459
NGNG>>OOモナー氏など
0464デフォルトの名無しさん
NGNGその考え方に基づいたプログラム手法がオブジェクト指向プログラミングであり
同様な設計手法がオブジェクト指向設計。同様に分析手法が(略
で、オブジェクト指向という考え方がどういうものかというと、
「オブジェクトを単位に物事を考える」こと。
オブジェクトとは、内部に状態を持ち、その状態により振る舞いが変わる。
その振る舞いの結果、(自分自身も含めて)他のオブジェクトにメッセージを送る。
メッセージを受けたオブジェクトは、そのメッセージに対応した
状態変化を起し、あらたな振る舞いの結果、またメッセージ送信が行われる。
これが基本。
0465464
NGNGだから、ある程度大雑把に考える。
タロもジロも犬。
ミケもタマも猫。
この、「犬」や「猫」というようにその性質を大雑把に捉える。
この考え方が、オブジェクト指向の一端。
「犬」がクラスで、「タロ」「ジロ」がインスタンス。
ある、クラスを具象化(抽象化の反意語)したものがインスタンス。
これがクラスとインスタンスの関係。
0466464
NGNG沢山、考えなければならない対象が増えてくる。
すると、さらに大雑把に考える。
「ほ乳類」
これが親クラスと子クラスの関係。
親クラス「ほ乳類」の性質を子クラス「犬」を引き継ぐ。
この性質を引き継ぐという概念が「継承」
ここで、親クラスと子クラスの関係は、クラスとインスタンスの関係に似ている事に気づくと思う。
この二種類の関係を区別するのが、クラスのあるオブジェクト指向。
区別しないのが、クラスの無いオブジェクト指向。
一般的にオブジェクト指向と言うのは前者。
0467デフォルトの名無しさん
NGNGそんな教科書みたいな説明したって分かるわけないじゃん。。。。
一言
「クラス使ってプログラミングすると楽なんだぞー」
でいいじゃん。
「何で便利なの?」って聞かれたら。。。。
「関数が100個あるよりクラスが10個ある方が分かりやすいでしょ?」
って答える。
一番大事なのはクラスの独立性であって
多態性とか継承とかは付録みたいなもんだから。。。
それが初心者には分かりやすいと思うけどね。
0468デフォルトの名無しさん
NGNG人に「オブジェクト指向とは」っていうのを教えると、決まって例え話を
持ち出すのは何故なんだろうか。
まぁ分かりやすく説明しようっていう努力は認めるけど…
結果は>>467になることが少なくないよなぁ。
個人的には、ある特定のシステム(経理システムとか、在庫管理システムとか)について、
構造化手法とオブジェクト指向でそれぞれ作って、大きく異なる点と、ほとんど変わらない点を
図やコードで対比させて、異なる理由・変わらない理由を説明もらえると分かりやすいかも、と思う。
0469デフォルトの名無しさん
NGNG>「関数が100個あるよりクラスが10個ある方が分かりやすいでしょ?」
何もわかって無い奴にそんな説明だけだと
「10個のクラスに10個のstaticメソッドをを実装しただけじゃん。
メソッド名の頭に暮らす名をつければ解決することじゃん。」
といわれるオチ
0470デフォルトの名無しさん
NGNG>「クラス使ってプログラミングすると楽なんだぞー」
>「関数が100個あるよりクラスが10個ある方が分かりやすいでしょ?」
>一番大事なのはクラスの独立性であって
>多態性とか継承とかは付録みたいなもんだから。。。
(゚Д゚)ハァ?
0471デフォルトの名無しさん
NGNGデザインパターンをいくつか例示するなどしないと、
プログラミングテクニックとしてのOOに魅力は感じにくい。
比較的簡単で、非OOの人にも威力が分かりやすい、
ステートパターンのサンプルなど見せるといいかも。
0472464
NGNGOOPでもOOAでもOODでもないし、ましてやOO言語でもないのよ。
基本の考えを理解しないうちに、設計なんかしたってダメダメなのができるのがオチ。
もちろん、OOはソフトウェアパラダイムだからOOPとかと関連づけた説明が
欲しいってのも分かるけど、OOPってのはOOが前提だからね。
散々ガイシュツだけどC++を使えば、OOなシステムを必ず作れるわけでもないが
Cを使ってOOなシステムを作ることは出来る。
そういう意味で、考え方という基本が重要だと思うけど。
あと、OOに対する考えは世間では「難しい」という根本的な誤解があると思うんだけど
全然、難しくない。むしろ簡単。自然な人間の思考パターンなわけ。
だから、大上段に構える必要は全然ない。
0473デフォルトの名無しさん
NGNG悪いOOの説明だよな。実際、そういう設計思想で作ると無駄だけ
増えてすっきりした実装にはならない。
つまるところ、より抽象的な機能を上位クラスに、より具象的な
機能を下位クラスに、汎用化できる部分はabstract classとか
interfaceを利用して、より少ないコード記述量で使いまわしが
きくように作ることだと思うんだが。
0474デフォルトの名無しさん
NGNGないとJAVAやってもオブジェクト指向にならないのでは?先にオブジェクト指向という世界観が
ありであってJAVAがありでないでしょう。JAVAはオブジェクト指向という世界観に気づくきっかけ
を作ることはできても元々オブジェクト指向という世界観を持ってない人には理解不可能と思うが。
結論、JAVAを使うにはオブジェクト指向という世界観が事前に必要ということ?
オブジェクト指向という世界観が無い人はプログラマーに向かない人?
0475464
NGNGで、今回がpart-of関係を説明してみる。
また、ありがちな例けど、自動車を考えてみる。
一口に自動車と言っても、実際は「タイヤ」「ボディ」「エンジン」等の
様々な部品から構成される。
このように、オブジェクトの中にオブジェクトを含む事を「集約」と呼ぶ。
この時の「自動車」と「タイヤ」の関係がpart-of。
タイヤは自動車の部品である、と。
これも、人間の大雑把に考える思考法。
「自動車」とは文字どおり自動車であり、「タイヤ」「ボディ」「エンジン」等の集まりとは考えない。
「タイヤ」「ボディ」「エンジン」等が特定のルールで集まった塊を「自動車」と考える。
0476464
NGNG多くの人が混同しているが「カプセル化」とは、「状態と振る舞いを一体として扱う事」だけ。
これは半ば、オブジェクトの定義の話。
オブジェクトの内部構造が見えない。ブラックボックス化されている、という概念は
「カプセル化」ではなく「情報隠蔽」
カプセル化したオブジェクトをどのように扱うか、という話が情報隠蔽。
で、これも人間の自然な思考パターン。
前に書いた例の「ほ乳類」だったら、その性質をイチイチ頭に思い浮かべたりはしない。
「地球上の生物の全種類のうち、ほ乳類の数は1%にも満たないんだって」
「へ〜、そうなんだ」
こんな会話の途中に「ほ乳類とは胎生のセキツイ動物で四肢があり、その種別には犬猫鼠…」なんて
思い浮かべることはない。
同様に、自動車を運転している時に
「エンジンのガソリンと空気の混合比がm:nだから、タイヤの回転数が毎秒xになり、これによるボディの耐久性の低下は…」
なんてのも考えない。
人間は、
「一度、まとまりとして認識したものは、まとまりのまま認識し続け、
必要にならないかぎり詳細は考えない」
この考え方がオブジェクト指向。
0477デフォルトの名無しさん
NGNGhttp://e-words.jp/w/E382ABE38397E382BBE383ABE58C96.html
カプセル化
データとそれを操作する手続きを一体化して「オブジェクト」として定義し、
オブジェクト内の細かい仕様や構造を外部から隠蔽すること。
0478467
NGNGそれを分かってない人に教えることが極めて難しい概念、
というのはどんな分野でもある。
プログラミングにおけるオブジェクト指向はまさにそれなんだよ。
上級者が納得するような厳密な説明をしようとすれば初心者には意味不明な抽象論となってしまい、
初心者に分かりやすく端折って説明すると「それは間違った説明だ!」と上級者に叩かれる。
オレは>467で説明したのは(焦って書いたのでまとまりがなかったが)
「もし仮に、どんなプログラミングの初心者にでもオブジェクト指向の利点が分かるように
説明するとすれば」という意図から書いたものだ。
もちろんこの説明が上級者から見ればあまりにオブジェクト指向の本質を
無視した説明であるのは承知だ。
だが、初心者に「デザインパターンとは?」とか「多態性のメリットは?」なんて教えるのは
小学生に微積分を教えようとするのと同じレベルなんだよ。いくら説明したって分かるわけがない。
オレは今までに、どんな初心者にでも分かるようなオブジェクト指向の説明を聞いたことがない。
まあ、世の中の大抵のことは自分で経験しなければ理解できないのだから、
初心者に分かる説明は元々不可能であるし、する必要も無いのかもしれないが。
0479デフォルトの名無しさん
NGNG↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓
http://www.pink-angel.jp/betu/linkvp2/linkvp.html
0480デフォルトの名無しさん
NGNGおまいらの設計&ソース見なくても想像つくわ。
今日中に辞表出しとけ。
以上
0481デフォルトの名無しさん
NGNG四種類あると解かれている。
1.発起衆。教えてくん。とにかく疑問があればとりあえず質問しちゃうやつ。
2.当機衆、OO以前の経験あり。例え話大好き、
3.血縁衆。OOの理論を理解してこつこつ覚える。
4.影響衆。わからんけど、はやってるからとにかくやっちゃうぞ。
仏様は、それぞれに合わせて別な説明のし方をするんだそうだ。
0482Oザッパ
NGNGインクジェットプリンタでもデイジープリンタでもプロッタプリンタでも
プログラム上からは全部プリンタとして扱うことができる。
もちろんそれ以外の方式を採用したプリンタがでてもプリンタとしての
インターフェースを持っていれば同様に扱うことができる。
プリンタとして扱って欲しければプリンタのインターフェースを備えればいい。
レーザープリンタはプリンタとして汎用的に使うこともできるし
レーザープリンタとして特有の機能を使っても良い。
0483デフォルトの名無しさん
NGNG良いメタファですね。
# 「じゃぁ、プリンタやプリンタドライバはオブジェクト指向なんですね。」
# とかいう厨が出てきそうな気もするけど。
0484デフォルトの名無しさん
NGNG>「もし仮に、どんなプログラミングの初心者にでもオブジェクト指向の利点が分かるように
>説明するとすれば」という意図から書いたものだ。
>オレは今までに、どんな初心者にでも分かるようなオブジェクト指向の説明を聞いたことがない。
( ´,_ゝ`)プッ
0485デフォルトの名無しさん
NGNG0486デフォルトの名無しさん
NGNG何がどう動いてるか調べるために追いかけて行くと
クラス階層まで入ってってしまってわけわかめになるんですけど。
0487デフォルトの名無しさん
NGNG非OOの方がデバッグが大変
OOはデバッグや保守、改良などをしやすくするために考えられ、洗練されてきた、と個人的に思う
0488デフォルトの名無しさん
NGNGOOPはそこんとこ、重要。
0489デフォルトの名無しさん
NGNG言語による。
クラスを作らなくてもO.K.なオブジェクト指向もどきな言語はデバッグが大変だが、
グローバル関数など余計なものを使用禁止にしている
オブジェクト指向専用言語ではオブジェクト指向言語の方がデバッグが楽。
0490デフォルトの名無しさん
NGNG○ >488
× >489
0491デフォルトの名無しさん
NGNG漏れとしては歪んでてもなんでもとりあえず形だけでもいいから
らしくOOPしていただきたい。
0492デフォルトの名無しさん
NGNGって言うか、みんな自分が思っているオブジェクト指向の理解度に自信が
無いからかな?まーここのスレ全部が正解かな?
この件に関して堂々と答えられる人間はどこのベンダーにもいないネ。
0493デフォルトの名無しさん
NGNG0494デフォルトの名無しさん
NGNG馬鹿ニマジレス
0495デフォルトの名無しさん
NGNGネタにマジレス
0496デフォルトの名無しさん
NGNGバカ登場
0497デフォルトの名無しさん
NGNG一番のバカ・・・
0498デフォルトの名無しさん
NGNG2番目にバカ?
0499デフォルトの名無しさん
NGNG0500デフォルトの名無しさん
NGNGそれを実際のアプリ製作に当てはめようとするとどうもいまいちわからない。
作成するアプリを書いたら、どういうクラスが必要かをレスしてくれるスレはないかなあ
0501デフォルトの名無しさん
NGNG0502デフォルトの名無しさん
NGNGそれが一番楽しい作業じゃないのか?>クラスの洗い出し
0503デフォルトの名無しさん
NGNG病気ですね。
0504デフォルトの名無しさん
NGNGしゃべればしゃべるほどわかってないのが、浮き彫りだね!
0505デフォルトの名無しさん
NGNG若い頃、小難しい本読んで、すべて理解出来た気になってたのが、
歳とって何度も読み返すたびに、奥の深さを知ってどんどんわからなくなる、そんな経験無い?
あの頃わかった気になってたのって、一体何だったんだろうって。
0506デフォルトの名無しさん
NGNG激しく同意。
俺の場合も、逝く度かの渡来&エラーを繰り返して、今も試行錯誤してる途中。
学の無い者による独学ほど非効率なものは無いと痛感。人生死ぬまで修行僧(意味不明
例えば経理システムをOOでどう構築しようかと(経理知識ゼロの俺が)思案してるんだけど、
とりあえず、最終出力たる各種帳票ごとに、対応するクラスをまず作ろうかと思ってる。
この各帳票に対応するクラスを「すごろくのアガリ」と考え、経理のネーチャンが端末から
各種データ(おそらくこれもクラス化の対象になるだろう)を入力してから「上がる」までに
どのような処理が必要かを考え、各種クラス・メソッド・DBレイアウト等をぼちぼち追加していく。
粘り強くやっていけば、いつかはパライソにたどり着くという目論見だが、多分この辺の
要件分析からクラス設計までの話は、学術的・体系的に確立されたものがあるような気がする。
2ちゃんねるではあまり見かけない気がするけど。
0507デフォルトの名無しさん
NGNGそれは、単純に内容を忘れていただけの場合もある
0508506補足
NGNGむしろ構造化手法そのものなんじゃないかと悩み中。
いくつかの道を辿っていくうちに、以前設計したクラスと似た構成の
クラスが必要になったり、あるクラスの一部分の構成を別クラスとして
切り出して、他クラスにも持たせる必要が出てきたりすると思う。
そのときには、共通関数や共通モジュールのような「単なる共通系〜」を
作らないように気をつけてる。「オブジェクトとして表現すべきものか」を考えてる。
言葉にするのが難しいので、「この辺はやってみて、体で覚えて」としか言えない
のが心苦しいんだけど。
0509デフォルトの名無しさん
NGNG内容を忘れてたら、誰だって忘れてることに気づくよ。
書いてある文章の意味を理解することと、本質を理解することの違いの話なんだけど。
0510デフォルトの名無しさん
NGNG同じ様なこと考えてたから気持ちはわかる
ただそんな処にいる人にオブジェクト指向の
なんたるかを語られてもなあ
0511デフォルトの名無しさん
NGNG0512506
NGNGスマン、OOのなんたるかを語れるほどの者じゃないことを
冒頭で断った上でのレスだと理解してください。おながいします。
大上段から語ってるように見えたんなら申し訳ない。
「とりあえず、比喩によるOOのお話」レベルから一歩進めるきっかけを
持ってほしくて>>508,510を書いただけでつ。
0513デフォルトの名無しさん
NGNG> 最終出力たる各種帳票ごとに、対応するクラスをまず作ろうかと思ってる。
イイと思いますよ。
> 粘り強くやっていけば、いつかはパライソにたどり着くという目論見
なんだけど、貴方のリファクタリングが認められてない開発プロセスが導入
されていたなら、それも不可能になっちゃうのよね・・・。
(そんな当たり前の権利も与えられてない漏れ)
0514506
NGNG> > 粘り強くやっていけば、いつかはパライソにたどり着くという目論見
>
> なんだけど、貴方のリファクタリングが認められてない開発プロセスが導入
> されていたなら、それも不可能になっちゃうのよね・・・。
そもそも実務で「粘り強く」設計するやり方自体があまりよろしくn(r
この辺は、初学者が「OOによる設計」を会得するための幾つかの手法のうちの、
比較的愚かな手法を実践してます、という事例紹介程度と捉えてくださいまし。
#ちなみに私はソフトウェア・エンジニアリング以前のレベルという自覚はあります。
とりあえず、「単なる比喩による説明」と「実務で使われるOO」とを結ぶ接点さえ>>500氏が
掴んでくれれば、私は満足です。
0515プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG初心者洗脳してやんの。
OOはインチキ宗教みたいなもんで、効率は上がりません。
ただの流行であってソフトウエア工学ではない。
そしてハッタリ屋の道具。
そんなものよりちゃんと工学的な基礎を身につけることです。
・OSやスレッドの仕組み
・BIOS
・フェイルセーフ
・割りこみ処理
・自動プログラミング
・システム工学
0516デフォルトの名無しさん
NGNG「OOは効率が上がる」
0517デフォルトの名無しさん
NGNG0518デフォルトの名無しさん
NGNG抽象的な概念を導入することでなんで作業を一般化することになるの?
0519プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGまあ、OOに教えられるまで再利用を知らなかったような程度の低いところなら
上がるかもね。
でも所詮底辺のレベルでとてもとてもトップの技術競争に勝てるようなレベルではない。
0520プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG実証実験をこの板でやったんだけど、非OOで三日で終わったオセロが
OOだと3ヶ月たってもついに完成しなかった事を伝えておく。
OO本に書いて有る事を鵜呑みにするもんじゃあない。
それは洗脳だってえの。
0521デフォルトの名無しさん
NGNGそれは、アンタのアンチの執念が3日で完成させただけかと…
やる気のあるなしと、方法論とは関係無いな。
0522プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGコードを比べた分析によっても、OOオセロがうまく行かなかった原因は
コード量が多いのもあるが、
拡張性や再利用の予測が外れるとOOは途端に効率が落ち、それは容易に起こる事が判る。
OOの宣伝本はその予測リスクについて全く触れていない酷い詐欺だ。
0523デフォルトの名無しさん
NGNG面白い漫才スレをありがとう。
脳みその凝りがほぐれたよ。
0524デフォルトの名無しさん
NGNGこんなんで笑える脳味噌なら捨てちまえ!
0525わが持論
NGNG真実=己の視界の範囲
と判断する奴は、もっとも有害な馬鹿。
0526デフォルトの名無し職人
NGNG「真実」はその人の視界の範囲以外に厳然とあって、そしてあんたはそれをわかるというわけだ。
0527デフォルトの名無しさん
NGNGこれは再帰か?
0528デフォルトの名無しさん
NGNGhttp://www.amy.hi-ho.ne.jp/%7Elepton/program/prog/prog70.html
こういうことを言いたいわけでしょ?
0529デフォルトの名無しさん
NGNGそんなことはあたりまえのことなわけですが、
世の中には、自分の経験の範囲内が世界の全てだ、
と勘違いしているおめでたい人間も沢山いて、
そういう勘違い人間には閉口してしまうことも多いです。」
0530Java太郎 ◆DMVtSSFzcg
NGNG0531デフォルトの名無しさん
NGNGOO じゃないと予測うんぬん以前に修正さえできねーじゃんかよ
0532デフォルトの名無しさん
NGNG0533デフォルトの名無しさん
NGNGただ関数一覧表がずらーっ・・・と並んでいるプロジェクト見たことある。
彼らと仕事するには神の認識力が必要だなと思った。
0534デフォルトの名無しさん
NGNGA. オブジェクト指向を理解している。
B. オブジェクト指向を理解していないことを自覚している。
C. オブジェクト指向を理解していないのに理解していると思っている。
なぜか、C はオブジェクト指向を説明するのに熱心なので、
ほとんどの人が B から C へいく。
0535デフォルトの名無しさん
NGNG0536デフォルトの名無しさん
NGNG古人はいいこというね。
0537デフォルトの名無しさん
NGNG製造にOOPだけ押し付けるのはやめてくれ。
0538デフォルトの名無しさん
NGNG随時追加って感じで作り出しちゃってもいいですかね?
0539tantei
NGNG●浮気素行調査
彼氏、彼女、妻、夫の浮気を調査致します!!
●盗聴器盗撮機発見
あなたの部屋に誰かが仕掛けているかも!!
●行方調査
行方不明になっている家族の消息を調査致します!!
●電話番号から住所割り出し
一般電話、携帯から住所を割り出し致します!!
●ストーカー対策
社会問題ともなっているストーカーを撃退致します!!
その他人生相談からどんなお悩みでも解決いたします!!
直通 090−8505−3086
URL http://www.h5.dion.ne.jp/~grobal/
メール [email protected]
グローバル探偵事務局
0540XPマンセー
NGNG設計の終焉?
http://objectclub.esm.co.jp/eXtremeProgramming/IsDesignDead.html
0541デフォルトの名無しさん
NGNG0542デフォルトの名無しさん
NGNGコード書き始めから完璧ってことは、どんなにOO設計大好き野郎でも不可能なんだし。
とにかく何らかの意図をもってクラス分けすりゃいいと思うよ。
0543デフォルトの名無しさん
NGNG会社のPGどもがそれを理解できない奴らばかりなので困ってる
0544デフォルトの名無しさん
NGNG禿胴。
1.最初は思いつきで大まかなクラス設計
2.推敲や実装作業のなかでよさげな構成に修正
というのは普通だよね?ウォーターフォールマンセー馬鹿じゃなければ。
0545デフォルトの名無しさん
NGNG現実に無理とはわかっても、最初からカンペキなものを作る覚悟で設計しないと
0547544
NGNG実践が可能、などと思い込んでいる、現実しらずをさしてマンセー馬鹿と
よんでみました。
0548デフォルトの名無しさん
NGNG0549デフォルトの名無しさん
NGNG0550プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG0551デフォルトの名無しさん
NGNG貴方ほどじゃ…
0552デフォルトの名無しさん
NGNG0553プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG0554デフォルトの名無しさん
NGNG/´⌒´⌒\
. / 〃 ハ ヾヽ
| ノ∠、ノ,ムヾ | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
(|| ━` i ━ ||) < オブジェクツ!!
∩{ r ┘ 、 }∩ \_________
_|└9 k='=ヶ} 6┘|_
/ にニ}、_ ̄´_/にニ} \
|ヾ トーイ{≫又≪}ト―イ 〃 |
0555デフォルトの名無しさん
NGNG2chのこの板でソース晒すのは、正直スゲー怖いですけど。
http://solidlancer.tripod.co.jp/ReversiSrc.jar
半年前に、後輩にOOを教えるための教材代わりに、2日(6時間)ほどで作ったソース
です。一応リバーシのゲーム盤として動作するはずの、Javaのソースです。拡張子
がjarですが、zip書庫ですのでunzipしてください。
Observerパターンをモデル-ビュー間のやり取りに利用にしたオーソドックスなMVC
モデルにしてあります。細かい実装はいい加減ですが、そういうところをどうこう
するためのソースじゃないので、その辺の突っ込みはカンベンしてください。
jp.javauser.reversi.Controllerがmainメソッドのあるクラスです。
あと、ソースのコメントは全部Shift_JISになってますので、もしWin以外の場合は
コンパイル時に気をつけてください。
この程度のサイズでOOの利点全てをどうのこうの言うこともできないと思いますが、
見通しのよい構造を実現できることを説明できる程度にはなっているのではないか
と思っています。感想をお聞かせください。
>>プロの逝ってよしの1の中の人
0556デフォルトの名無しさん
NGNG日本語の不自由なかわいそうな人ですか?
0557デフォルトの名無しさん
NGNG実務経験経験豊富な肩に質問!
J2EEの開発やっているものなのですが、オブジェクト指向分析って必要ですか?
とくにWeb系ではBCE出すのって、あんまりメリットないような気がするのですが。
(画面サンプルや画面遷移図書いたほうがよっぽどわかりやすい)
開発やってると、だいたい
要件定義(ユースケース、画面、非機能要件、概念モデル作成)
→画面設計・コンポーネント設計・DB設計・アーキテクチャ設計
→クラスの詳細設計
→実装
という流れになることがおおいです。
それとも
オブジェクト指向分析=エンティティモデル構築+データ項目洗い出し
と理解すればいいのでしょうか
#データベースアプリで無理にOOするなゴラァという話もあり・・・
0558デフォルトの名無しさん
NGNG画面遷移図とかあったほうが分かりやすいならそれを書くのがいい。
それは OO の本質とは違うところで、設計として OO を考えるタイミングとしては、
メソッド名が同じで機能が違う、みたいなものが見つかれば、抽象クラスする価値が
あるね、くらいのことで。
例えば、検索条件をプラグイン的に追加したいために、絞込み条件をクラス化することだったり、
予約タスクをクラス化することだったり。ログインしたユーザによって絞込み条件を変えるって
ことだったら、ユーザオプジェクトに絞込みオブジェクトをセットすることだったり。
税金の計算方法がちょくちょく変わるとかだったら、計算クラスでも作って、
利用者に選択できるようにするとか。
OO が要るところはそういうことで、ページをオブジェクトでマッピングするのもそれはそれで
便利だけど、それは設計ってわけじゃなくて、技術基盤として便利だねってことで、それは
分析、とはあまりいわないんじゃないかしら。
0559プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG置いておくとしてもだ。
そのコード量じゃねえ。
再利用できない無意味なモデルだし。
0560プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGパターンマニア向けでしかないね。
仕事では使えない。
0561デフォルトの名無しさん
NGNGどうやってその結論に到達したの?
飛躍し過ぎでサパーリ解らない。
0562プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG実証と理論的検証両面からOOはダメつう結論です。
必死に反対してる信者がいますが、現実を見ない者は滅ぶだけ。
0563プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG0564デフォルトの名無しさん
NGNG0565デフォルトの名無しさん
NGNGOOは大人数、大規模プロジェクトで複数の人がコードを参照し
仕様変更による改良・改変しデバッグをしやすいというのが売りなんだから
リバーシのような個人が数日で作れるようなソフトではプロセスをそのまま
コーディングする非OOの方が慣れてる人が多い分、早くても自然だと思います。
コードの量が増えるにしたがってOOが有利になると思います。
改良・改変・デバッグに費やす時間(ソースの量Nの増加として)
非OO:OO = N:Log N って感じかと。
0566デフォルトの名無しさん
NGNG貴重だな。
0567デフォルトの名無しさん
NGNG・・・どっちが?
0568プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG笑った。
しょーもな。
0569デフォルトの名無しさん
NGNGOO だと既存の開発プロセスや設計手法が沢山あり、
それに従って開発するのが OO だと思われているので、
不適合なプロセスを選択すると不自由を感じながら開発することになる。
0570デフォルトの名無しさん
NGNG「現実」ってのは『非OOを支持してるのがお前だけ』だということを指してるわけか?
0571デフォルトの名無しさん
NGNG0572デフォルトの名無しさん
NGNGよっぽどろくでもない生兵法馬鹿に粘着でもされたのかな。
コンサルだとか名乗って使いこなせてないOOを売り文句に
詐欺営業して大金を巻き上げるろくでもない連中が、確か
にいるからなあ…
0573プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG「OOはすぐに結果の出るものではありません。5年先、10年先を見て行うものです」
と言ったコンサルが居たそうだ。
笑っちゃうね。
0574プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG日夜2ちゃんで広報活動に勤しんでいるだけで、別に恨みは無い。
0575デフォルトの名無しさん
NGNGおそらくそのコンサルは10年間寄生虫になることを目論んでいるロクデナシだった
んだと思うが、
アンタみたいな硬直した脳みそがイッパイいる企業を再教育するのには、確かに10
年みないといかんかもね。
0576プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGオウムなんかに引きこまれたらさぞかし疑問を持たず、
教えられた教義をただ繰り返す人なんだろうなと思う。
0577デフォルトの名無しさん
NGNGうが、アンタ(あるいは俺)の俺様マンセースタイルに何らかの制約を掛けるの
は当たり前。
そのトレードオフは開発効率や保守性の向上。対企業システム開発なら
その実現は満たすべき重要な機能だと思われ。他人にとって見通しのよい
構造にしておくのは、単に動作するかどうかの次くらいに重要(なはずなん
だが、アマリにも実装能力の低い糞集団は、この機能を無視するんだよな)
だとおもわれ。
俺だっていつも俺様マンセーで開発したいとは思うが、人から与えられた
仕事をやる限りは、そうもいってられないでそ。
0578デフォルトの名無しさん
NGNG飯をくいてーなー。
信者はもっと普及活動しろよ。
オブジェクト指向って言うだけで金が
はいるんだもんな。
イイ世の中だw
IT国家まっしぐらだw
0579プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGそれもOOが宗教である証拠だ。
疑問を持つものをそうやって葬るシステムになっている。
OOの本には
「従来は〜でしたがOOになって〜になりました」とでたらめが書いてあって、
「ソフトウエア産業ではかねてから生産性の向上が求められてきました・・
OOの導入は従来型の古い思考の持ち主には合わない面があります」
などと、疑問を持つものや反対者を「生産性を下げる人」とレッテルを貼るのと同じ
洗脳の手法によって、洗脳に対して免疫の無い若い人を中心に布教したんだ。
0580デフォルトの名無しさん
NGNGあいたたたたた
前に進むことも見ることもしなくなった、単なる古いオッサンじゃねーかよ
お前みたいなのがいるとこっちが仕事やりにくいだろ
年取ると新しいことは覚えずらいかもしれないけど学習しろよ
置いていかれるぞ?
0581プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGそれもソフトウエア業界の問題の一つ。
集団による開発効率向上の手法は、しばしばその手法を正しく適用できる人がおらず、
単なる原理原則論の非実際的な適用によって返って効率を落としている。
その手の集団手法を好む会社は、例えばどうみても5人年で済む仕事に
30人年投入してたりする。
0582575=577
NGNG・要件分析→設計までを一貫した成果物のスタイルに落とすことができ
て、他人が後からトレースするのが簡単
・クラスの分割、パッケージ分割などをきれいにしておくと、整理された
戸棚みたいに、特定機能の位置の把握がしやすい
あたりは便利だと思ってるな。
別に開発スタイルの一種だと思えば、それに従ってやるだけでしかな
いよ、折れは。仕事だし。
本読んだだけで分かった気になって、上司の攻撃に利用するマンセー
厨新入社員が大嫌いなのは、俺も同じだ(ワラ
0583プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGやれやれだ。
本人大真面目なんだもんな。
0584プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGという話も付け加えておこう。
0585デフォルトの名無しさん
NGNGOOを完全否定か? あんたは?
0586575=577
NGNG>>581
ああ、あるべき論で現実離れした標準化プロセスを合議制で作ってる
馬鹿なプロジェクトがウチにもあったよ。関わっているやつは
高級管理職連中。現場を分かってない奴が作ったから、成果はみるも
無残。誰の現実も救っていない標準なんて、単なる無駄な稼動の原因
でしかないな。
で、OOもその類だというわけね、あんたは。
0588デフォルトの名無しさん
NGNGどれに限らずおかしい事なんだよ。
だいたい指向ってなんだよ?指向ってよ?
新しいパラダイム?はぁ?
おまえらはさぞかしパラダイムシフトしたんだろうな?
オブジェクト指向のほかに何指向があるってんだよ。
俺は、アヤヤ指向だ。
0589575=577
NGNGああ、OOマンセーといいながら使いこなせていない糞が
巷に腐るほどいて、現実問題のの解決に対して足を引っ張
っている=OOがダメっていうことか。
まあ、それはOOを別の概念にさしかえれば、どれにでも言え
る話だな。
0590デフォルトの名無しさん
NGNGおかしいだろうがよ。
指向なんだろ?
マジで、洗脳ッテコワイネ...
0591デフォルトの名無しさん
NGNG0592デフォルトの名無しさん
NGNG>オブジェクト指向のほかに何指向があるってんだよ。
お前にいい言葉を教えてあげよう。「教えてください、お願いします。」
この言葉を覚えるとそのうちいいことがあるぞ。
0593デフォルトの名無しさん
NGNGオブジェクト指向というけど、実際にこの単語を使うときは
「(狭義の)オブジェクト指向という思想に基づく数々の手法」
の総称をオブジェクト指向と呼ぶほうがおおいようなきがする
な。
アスペクト指向==AspectJとか、そういう人多いよ。
0594デフォルトの名無しさん
NGNG偉そうに・・・
キショイんだよ。
お前、金八指向な。
0595デフォルトの名無しさん
NGNGOOは駄目ですか、では僕は何を勉強するべきなのでしょうか?
すいません。道を示してください。
0596デフォルトの名無しさん
NGNG>金八指向
いかん、ツボにはまった。激藁
0597デフォルトの名無しさん
NGNG「オブジェクト指向は素敵」と聞いて、漏れはあっさり信じちゃったからな。
確かに、疑いの目を向けてみることは必要かも。科学的にね。
ただまぁ、実感としてオブジェクト指向は素敵だと感じてる。
「問題を分析する際に、その問題を構成してる『モノ』達と、
そのモノたちの間で交わされる『メッセージ』を基盤とする」
と言うことよりも優れた分析方法ってのを知らないから、
漏れは当分オブジェクト指向にしがみつくしかないけど。
モノを基盤とせず、操作(?)を基準とした問題分析って、難しいんだよなー。
0598デフォルトの名無しさん
NGNGアリが�d
0599575=577
NGNG詐欺コンサルや提灯記事に安易に流されて、理解していない
ことを「手持ちの道具」扱いするなといっているだけ。
0600デフォルトの名無しさん
NGNGんなの、何だってそうだろが、ボケェが!
0601575=577
NGNGそのとおり。だが、一方で「どんな物事でも一様に悲惨にする」
馬鹿が業界には大勢いて、でも多くのまともな人間が、そいつら
と仕事せにゃならん現実もあるわけで。
0602プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG勘を磨くとか、対人関係スキル上げるとか。
0603デフォルトの名無しさん
NGNGとりあえず、歯を磨くことにしまつ。
0604575=577
NGNGOOで作られたシステムとそのプロセスにかかわり、それを通じて
観察したことがあるだけ。見えなかったことは知らんので、あて
にせんでくれ。
0605デフォルトの名無しさん
NGNGいえいえいえいえ、そのようなことではなくて、それが大切なことはわかりますが
とりあえず、設計方法のほうをお願いします。
0606デフォルトの名無しさん
NGNGきびしいなぁ。アンチOOなだけの人に、
まともな設計方法の提示ができるわけ無いじゃないですか。
敵の退路は立ってはいけません.それは、予想外の事態を生みます.
まったりちゅらさんでも見るヨロシ.
0607デフォルトの名無しさん
NGNG設計をあらたまって勉強するとか、もう止そうぜ。
クソセミナーやクソコンサルに騙されちゃいかん。
0608607
NGNG0609デフォルトの名無しさん
NGNGOOがスキルだと思うな。良いのや悪いのや詐欺やらを
判断しながら、自分なりに取捨選択して
取り入れていけばいいんだよ。要はセンス。技術者なんだから。
そこにある要求定義に対して自分のセンスをぶつければいいんだよ。
小泉風に言えば、柔軟かつ冷静に対応。
0610デフォルトの名無しさん
NGNGおーい、「まったりちゅらさん」ってなんだよ!
ぐぐッたけど、なんもでてこねーよ!
0611デフォルトの名無しさん
NGNGその場合の「まったり」は形容詞だ。
本体とは分離しなければ望む結果は得られないだろう。
オブジェクトの切り出しを誤ってはいけない。
0612575=577
NGNGフィードバックする作業を繰り返すことナシに、ガッコのオベンキョだ
けですばらしい設計手法が身につくと思っているアホは、しんで欲しい。
0613デフォルトの名無しさん
NGNG読点なくてスマソ.ことえりよりアホだとは想定しなかったので.
「まったり」は「見る」にかかる福祉で、
つまり、
「まったり、『ちゅらさん』を見なさい」といういみでつ。
0615デフォルトの名無しさん
NGNG設計する人とコーディングする人が分かれてるとうまくいかねーって
ことではなかろうか。
ここらへんの議論は開発方法論(XPの話題とか)でいろいろ言われてる。
(どう考えたって、プログラマが設計しなきゃいけない)
OOを悪用してヒエラルキーを作りたがる勢力がいて、
ここらへんの利権がらみの解決を行うのは、不可能に近い。
0616デフォルトの名無しさん
NGNG> プ1が考えてることっていうのは、上流とか下流とかあって
> 設計する人とコーディングする人が分かれてるとうまくいかねーって
> ことではなかろうか。
どこがそんな風に読めたんだろう.
0618デフォルトの名無しさん
NGNG0619デフォルトの名無しさん
NGNGすいません、手続き型+αしたものがオブジェクト指向というものではないのですか?
>手続き型プログラミングでは、5つの基本的な考え方があります。それは「連接」「繰返し」「判断」「部品化」「再帰」です。
今見たページにこう書いてあったのですが、オブジェクト指向も同じことするのでは?
勘違い指摘してください。
0620デフォルトの名無しさん
NGNG573>>「OOはすぐに結果の出るものではありません。5年先、10年先を見て行うものです」
573>>と言ったコンサルが居たそうだ。
573>>笑っちゃうね。
と、
615>>プ1が考えてることっていうのは、上流とか下流とかあって
615>>設計する人とコーディングする人が分かれてるとうまくいかねーって
615>>ことではなかろうか。
の間にミッシングリンクがある気がする,,,,
0621デフォルトの名無しさん
NGNG手続き型であれば、そこに無条件分岐とか、
構造化されてないのものも含まれるはず。
たぶんあなたはDQNサイト観てる。
チバミソーリヨー
0622デフォルトの名無しさん
NGNG無条件分岐? gotoのことですね。
構造化されてないものも含むって・・・え?
手続き型を学ぶとはそういうものを駆使しろということですか?
0623デフォルトの名無しさん
NGNG勘違いしてるとこなんてございません。
+α の部分を言うならば、OOすると複雑な分岐を省略することができます。
0624デフォルトの名無しさん
NGNGgotoなどを駆使しろ、と言うのではなく、
「『手続き型』と『構造化』を混同してるんじゃないの」って突っ込み.
0625デフォルトの名無しさん
NGNGまあそうだと思いこんだとしても、
それでどこがパラダイムシフトなのかと小一時間(ry
0626デフォルトの名無しさん
NGNGと手続き型をベースに OO の機能を乗っける言語が多いからねえ。
0627デフォルトの名無しさん
NGNGもう、訳わからないのです。 パラダイムシフトかどうかはどうでもいいんです。
なぜOOは否定されたのですか?
手続き型はオブジェクト指向の土台ではないのですか?
何で土台に家を建てたら駄目なのか、ヒントをください。
0628デフォルトの名無しさん
NGNGOOじゃなきゃ、複雑な分岐を省略できないわけでも、
手続き型だと、複雑な分岐になるわけでもない。
お前の発言には、何の意味もない。
0629デフォルトの名無しさん
NGNGだ か ら な に?
0630「メッセージのやり取り」厨
NGNGオブジェクト指向は、問題の分析とか設計とかを、
「オブジェクトと、その間のメッセージのやり取り」
と、捉えること.
手続き型は、俺はよく知らないけど、
「その問題の中で行われる操作」を中心に問題を分析すること、だろ。
コンテキストフルに.
全く異なる概念だね.
どっちかがどっちかの土台であるわけでは無い.
0631623
NGNG0632デフォルトの名無しさん
NGNGところが、JavaだのC++だのは、メッセージのやり取りを操作とやら?
で表現するんですよ。
0633デフォルトの名無しさん
NGNGまあ一緒か別かはこの際どうでもよくてさ、
プロジェクトが成功しないっていう統計や、
ソースコードの再利用性とか、保守性とか、
可読性とか、べつに上がるわけじゃないって
統計でてるんだって。
オセロ合戦とかやってた時期に散々言われてたよ。
統計のソースはプ1がもってるんじゃないかな?
OOを好んで作ったっていいんだけど、素人には
おすすめできないってことだろう。プロならなおさら
慎重になれって。
0634デフォルトの名無しさん
NGNGなるへそ!
ちょっとわかった気がします。
で結論、OOも手続き型も知ってても損はしないだろうから
どっちも勉強して実際に設計、コーディングしてみようと思います。
ありがとうございました。
0635デフォルトの名無しさん
NGNGいや、「(メソッドの起動に限定された)メッセージのやり取り」で表現されてるはずだ。
非OO的な、メッセージのやり取りとして判断するのが困難な、
「その問題に置ける操作をいきなり抽出する」って方法は、あまりとられないはず。
0636デフォルトの名無しさん
NGNG現実には、そういうコーディングを注意深くすれば、そうなるという
レベルなんだけどね。
0637デフォルトの名無しさん
NGNG「手続き型」ってのは「順序に意味がある」ってこと。
これの対義語は「関数型」であって
「順序がどうであっても、結果は同じ」ってことなのです。
この分類でいくと、普通のオブジェクト指向言語とかは、
各オブジェクトが状態を持つことを許すので、
「手続き型」のサブカテゴリーとも捉え得ます.
0638デフォルトの名無しさん
NGNGあ、調べてる途中、なんかそう感じました。
やっぱり手続き型とOOは仲間ですか?
0639デフォルトの名無しさん
NGNG意味が分かんない. 例えば、Javaで普通に設計すると
「全部のメソッドをpublic staticにしたクラスが林立する」
ってことも、あなたの主張に含まれますか?
0640デフォルトの名無しさん
NGNGいえ、全く関係のない概念です。
依存し合うわけではないし、排他的なわけでもありません。
「手続き的なオブジェクト指向」
「手続き的な非オブジェクト指向」
「関数的なオブジェクト指向」
「関数的な非オブジェクト指向」
の、どれもがあり得ます.
ただ、世の中でもてはやされてるのは「手続き的なオブジェクト指向」。
0641デフォルトの名無しさん
NGNG開発するほうが工数がかかると思う。ただ、OOで最初から開発しておけば
後々の拡張を考えたとき、非OOよりは工数が少なくなると思う。
非OO、OOとも、まともに設計されていれば、だけど。
ただ両者の差がどれくらいになるかはつまるところ開発要員によるわけで。
あまりどっちがどうのと優劣をつける問題でもないような気がする。人的な
問題のほうが手法的問題よりはるかに大きい。
優劣を論じたり、OOは使えないとか非OOは古いとかっていう二元論に
持ち込もうとする人間が最大のガンなんだろうと思う。
0642デフォルトの名無しさん
NGNG禿胴!
0643デフォルトの名無しさん
NGNG0644デフォルトの名無しさん
NGNG> 開発するほうが工数がかかると思う。ただ、OOで最初から開発しておけば
> 後々の拡張を考えたとき、非OOよりは工数が少なくなると思う。
幻想です。優劣を論じたいのは貴方ですね。
0645デフォルトの名無しさん
NGNG0646デフォルトの名無しさん
NGNG個人開発ばっかりやってる人ですか?
0647デフォルトの名無しさん
NGNGマイコンとかだとそうもいかないんだよな。
ROM32k RAM4k だとなかなかC++使う気にはならない
しょうがないから、考え方だけOOを使って
アセンブラやCで組んだりするわけだ。
設計にはOOの概念使った方がいい意味で手抜きできるし
0648デフォルトの名無しさん
NGNG間違ったオブジェクト指向の定義に基づいて批判する
↓
オブジェクト指向の定義が間違っていることを指摘される
↓
オブジェクト指向の定義が間違っているという指摘を無視する
↓
間違ったオブジェクト指向の定義に基づいて批判する
↓
オブジェクト指向の定義が間違っていることを指摘される
↓
オブジェクト指向の定義が間違っているという指摘を無視する
↓
間違ったオブジェクト指向の定義に基づいて批判する
↓
オブジェクト指向の定義が間違っていることを指摘される
↓
オブジェクト指向の定義が間違っているという指摘を無視する
↓
間違ったオブジェクト指向の定義に基づいて、オブジェクト指向を
批判するというプ逝1の詐欺行為はいつまで続くのだろう…
0649デフォルトの名無しさん
NGNGアンチOOな江戸幕府と、開国を迫る先進技術を誇るOOなアメリカ。
アンチOOはOOを妬んでいるのです。
OOを否定する連中はクラスを作るとコードが余分にふえて面倒くさいから、
重くなるから使いたくないとか不平ばかりいう連中なのです。
0650デフォルトの名無しさん
NGNG0651デフォルトの名無しさん
NGNG何のたとえ話ですか?
江戸幕府は、アメリカを妬んでいたのですか?
0652Java太郎 ◆DMVtSSFzcg
NGNG0653デフォルトの名無しさん
NGNG確かにJavaのソースを見てるとアクセサばかりで
中身のないクラスとか結構多いからね。。。。
で、「Delphiはプロパティがあって便利だぞ!」
というDelphi厨の話になるんだがw
0654デフォルトの名無しさん
NGNGVB(モゴモゴ
0655デフォルトの名無しさん
NGNGってか,重要なのは考え方じゃない?Javaでもひとつのクラスに全部機能を実装
するヤシも実在するらしいし
0658デフォルトの名無しさん
NGNGUtils系は漏れもそうしてるぞ
0659デフォルトの名無しさん
NGNGあるCOBOLerが初めてJavaを使ったときに
すべての処理を一つのクラス、main()メソッド内
に書いてしまってオブジェクト指向言語の特長を
全く生かしていなかったという話があった。
有名な話らしい。
0660プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGhttp://java-house.jp/ml/archive/j-h-b/021822.html#body
0661プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGある会社はコーディング規則でそう決まっているのだ。
コボラーのせいではないのだ。
0662デフォルトの名無しさん
NGNG0663デフォルトの名無しさん
NGNG確かに子簿ラーのせいではないね。
オブジェクト指向を理解しようとしないやつのせいだね
0664デフォルトの名無しさん
NGNG0665641
NGNG話のごく一部だけの揚げ足を取って「優劣をつけたいのはあなた」とか
言われても説得力ゼロなわけですが。
つーか>>641の内容を全部読んで、それで優劣を比較するという結論
に達した時点でアフォですか?としか・・・
あたしゃ非OOの開発も否定してないですよ。ていうか、現実的には
非OOがまだまだ主流じゃないですかね。ただ、OOによる再設計とか
をうまく使うことができれば(あくまで「使うことができれば」ね)工数は
減りますよ。JDKのコンポーネントの設計を見ていると、うまく再利用
とか拡張ができるように工夫されてるのがよくわかります。
0666デフォルトの名無しさん
NGNG顕著な例はメモリマネージメント機能を持たず
メモリの少ない組み込みマイコンである。
ダイナミックなインスタンスの生成および消滅が困難である。
また同時に存在するインスタンスがどれだけになるか予測がつかない場合、
しばしばメモリがオーバーフローする。
このような場合手続き型言語のほうが便利であるし、オブジェクト指向言語を
手続きのグルーピングとして使用する程度の意味合いしかないのは事実である。
携帯ゲームのプログラマはC++をあまり好まない。
オブジェクト指向型言語は抽象化によるメリットが高い場合に
利用効果が上がる。一方で具体的なハードウェアを直接操作する場合、
汎用化を行うことは出来ても抽象化はあまり意味がない。
オブジェクト指向型言語の習得は修行ではない。
便利なら使えば良いし、不便なら使ってはいけないのである。
そしてこの判断が出来るかどうかは
悲しいことであるが設計者の知性のレベルに依存するのである。
0667デフォルトの名無しさん
NGNGバカの長文氏ね Σ(´Д`lll)
0668デフォルトの名無しさん
NGNG======================ここまで======================
0669デフォルトの名無しさん
NGNG0670デフォルトの名無しさん
NGNGワラタ
0671デフォルトの名無しさん
NGNGなく、privateにして、setter、getterメソッドで
アクセスさせる方法が定石なのはなぜなのか、
違い(というか、できたらからくりも)
お前ら教えてください。
0672デフォルトの名無しさん
NGNG長さを支えるだけの構成力があれば、長文もバカに出来ないゾ。
長文=バカと言いきってしまうのはどうか。
とマジになってみるテスト。
0673デフォルトの名無しさん
NGNGそうしておくと、そのオブジェクトの変数を変更しようとする人は、
必ずメソッドコールしてることになるでしょ。
そうすると、誰がいつ変更しようとしたかが分かるわけさ。
ワケワカランとんでもない値入れようとしたら拒否してみたり、変更の履歴
を取ったり、そういう仕事をメソッド内部に追加できるわけさ。
でもって、そういうものを追加しても、(メソッドシグネチャは変わ
らんので)ユーザに迷惑掛けないわけさ。
誰がいつどのように変更して、整合性の取れない状態変数の集合に
なっても全然かまわないクラスなら、全部変数publicでもかまわない
けど、普通クラスに複数の変数を宣言するときって、それぞれの変数
が全部"なんでもいい"って事は、ないことが多いでしょ?
0674デフォルトの名無しさん
NGNGpublicな変数を1つ使って実現していた機能が、変数2つに変更したいとする。
外部から直接変数を操作していると、操作する個所すべてに修正を入れる
必要がある。1箇所2箇所ならいいが、数百箇所もあったらバグるのは目に
見えている。
setter/getterメソッドを使って実現していると、メソッドの呼び出し形式が変更
されない限り、変数の操作はクラス内部に隠蔽される。よって、変更箇所も
クラス内部だけですみ、修正工数もバグも激減することになる。
0675デフォルトの名無しさん
NGNGオブジェクトのインタフェースは、その実装方法に依存してはならない
っていう原則があるからなんだよ。
メンバ変数を公開してしまうと、何かの都合でオブジェクトに変更が入ったとき、
それを利用している他のオブジェクトも一緒に修正しなきゃならなくなるでしょ。
JavaわからんからC++で書くけど、悪い例で言うと
class Foo {
public:
double double_data;
} foo;
void examine(double &d);
みたいなのを作ってたとして、 exsamine(foo.double_data); みたいなコードが
どっかに一カ所でもあると、これをdouble->floatやmona::bignum とかに
置き換えようとしたとき、このクラスを使ってるとこ全部見なおさなきゃ逝けないわけ。
せっかくオブジェクトとして分離、隠蔽してるのに、メンバ変数を一個公開しただけで
そのクラスも、そのクラスを利用する他のクラスも、メンバ変数の実装方法に
依存した設計・実装をしなきゃ逝けなくなるの。
0676デフォルトの名無しさん
NGNGsetter/getterは、コード量が増えて面倒に思えるけど、実装方法を
隠蔽したまま、相手に最小限のインタフェースを提供することが出来るわけ。
まあ、集約だけしたコンテナクラスなんかつくってると、いちいち書くのが
面倒とか、委譲できない言語は駄目とか思ったりするわけだけど、
オブジェクトのあり方をしっかり考えながらを繰り返し設計・実装していけば
setter/getterがなんで必要なのか体感できるようになるかも。
外からいじるため(だけ)に作る集約オブジェクトは、setter/getter
いらない場合もあると思うよ。
0677デフォルトの名無しさん
NGNG隠蔽しないと個々のオブジェクトとして設計していく意味がないから。
この辺りのことは入門書でも詳しく触れられているんじゃないすか。
読めよ。
0678プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG>>640に洗脳されたアフォはこの先見こみが無いので転業しなさいね。
0679デフォルトの名無しさん
NGNGgetter/setter 方式のメリットは、今は本当にメンバ変数を return したりそれに
代入したりするだけの処理をしていたとしても、クラスを修正したり、それを
継承した子クラスで処理が予想と変わり、get や set する際に何かしら演算を
してからメンバ変数に代入したり、メンバ変数の値を演算したものを返したり
することになることがあるとき。
リファクタリングで言う引数オブジェクトなんかは、とりあえず public な
メンバ変数でもいいのだろうけど。
0680デフォルトの名無しさん
NGNG0681デフォルトの名無しさん
NGNGどう考えても、「バカは長文書くな」って意味だと思うよ。
0682671
NGNGカプセル化(隠蔽)の必要性は本等で
読んでいます。
なので、公開する必要性のあるデータ
のみの話です。
1行のア/サクセサをつらつら書いておくのも
実際には今後の保守や拡張の為の保険って
いうのが主な理由なのですね。
0683デフォルトの名無しさん
NGNGおまえも非OOの布教活動に躍起になってますね。
どうですかOOから非OOへの洗脳はうまくいきますか?
0684デフォルトの名無しさん
NGNG要するに、void かそれ以外の型を返すか。
0685デフォルトの名無しさん
NGNGエイプリルフールは終わりましたよ・・・
0686デフォルトの名無しさん
NGNGあると思うんだけど、正式な名称って何?
UMLとか勉強すれば書いてあるのかな
アクターってやつがそうなの? アクトレスは?
きまぐれオレンジロードの主題歌って誰が歌ってたんだっけ?
0687デフォルトの名無しさん
NGNGユースケース図とクラス図を行動しているなおまいは
0688デフォルトの名無しさん
NGNG違った面から見た理由をいうと
予めアクセサをつらつら書いておく必要があるのは、
メンバ変数のアクセスとメンバ関数呼び出しとで書き方が違うから。
同じ書き方であれば、必要になってからアクセサを書くで充分だったりする。
アクセサはせっかく隠蔽してあるものを透かしてしまう働きがあるとかで
多用すべきではないという話を聞いたことがある。
0689デフォルトの名無しさん
NGNGDelphiにはプロパティがあって・・・(以下略
0690デフォルトの名無しさん
NGNGBeanにしたい ってこともあるんじゃないですか。
0691デフォルトの名無しさん
NGNGそのネタ飽きた。
0692デフォルトの名無しさん
NGNGエンティティ、コントロール、バウンダリ
ロバストネス図を調べてみ。
0693デフォルトの名無しさん
NGNGなんか、こういう技巧を凝らした用語がOOに対する偏見とか
批判対象を作ってしまうような気がしてる。
0694デフォルトの名無しさん
NGNG会社で、ここにいるSE程レベルの高い人間が居る?って思っちゃう位。
プロ・アマ含めて相当なスキルある人間集まってると思う。
誰か箇条書きで挙げてくれる人います?
たとえば..
・絶対継承外すのは、譲れないね!理由は...
・多重継承は許さんね!名背なら...
みたいな達人達!
0695デフォルトの名無しさん
NGNG解説書には「物として扱う」などとかかれているが、それは微妙にニュアンスが異なる。
「対象として扱う」と記述したほうがより理解が進むであろう。
漏れはオブジェクト指向は目的思考とでも言ったほうが良かった気がする。
objectとまったく同じニュアンスを持つ日本語が存在しないために
苦肉の策としてオブジェクトというカタカナを使ったのだとは思うが、
物体思考だと勘違いする香具師がいかんせん多すぎはしないか。
0696プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG0697デフォルトの名無しさん
NGNG> OOマンセーやってた会社はどんどん潰れてる
ソースキボン
0698プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGそんなネタしか無いのか?
0699デフォルトの名無しさん
NGNGOOコンサルなんかやってた詐欺師連中は、新しいネタ探しにいってるだろな。
IT関連のベンチャーなんて、開発なんか本心ではドウデモイイと思ってる山師バ
ッカリだからナー。
普通に使える人がイッパイいる会社では、普通に使ってるんじゃないのかね。
0700プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG巧いこと騙して手続き型に導くのも手だな。
0701プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG仮定法
0702プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG新入社員の中には「OOやります」という会社の説明を受けて入ってみたら
クラス名が番号だったり、mainメソッドに全部書くキマリの会社だったり
するのが居るだろう。
0703デフォルトの名無しさん
NGNG漏れは非OOと見せかけてOOするステルスOOやってますた
0704デフォルトの名無しさん
NGNGそういうダメダメな会社はOO以前につぶれる罠。
0705デフォルトの名無しさん
NGNG>695
『プログラマがやりたいことをオブジェクトにやらせる』
つうのが基本でしょうなぁ.
そういや,オブジェクト指向の説明で『車.走る』なんて
説明していたのもあったなぁ.こんな説明したら初心者は
混乱するのに……
本当は『車.走らせる(プログラマが)』つうのが正解ですな
0706デフォルトの名無しさん
NGNGメソッドの実行結果をオブジェクトに格納させられることだと思う。
C言語(非オブジェクト指向)なら、
メソッドの実行結果を構造体に格納する場合があると思うけど、
オブジェクト指向言語なら、オブジェクトのメソッドを実行して、
その結果をオブジェクトに持たせることができる。
■C言語(非オブジェクト指向)
int ret;
KOUZOUTAI *kekka;
ret = methodA(param,kekka);
■JAVA(オブジェクト指向)
int ret;
OBJECT_SAMPLE obj = new OBJECT_SAMPLE
ret = obj.methodA(param) ← 結果はobjに格納
0707デフォルトの名無しさん
NGNG>>706 のことは、メソッド名は同じでも返り値が違うってのもポリモーフィズム、、、と言っていいのかどうか。
0708デフォルトの名無しさん
NGNG意見がまとめられないのかよ・・・
0709デフォルトの名無しさん
NGNG> 本当は『車.走らせる(プログラマが)』つうのが正解ですな
車.走れ();
だろう。
0710デフォルトの名無しさん
NGNG> int ret;
> KOUZOUTAI *kekka;
> ret = methodA(param,kekka);
int ret;
KOUZOUTAI kekka;
ret = methodA(param,&kekka);
の間違いか?
0711デフォルトの名無しさん
NGNGほとんどのOO厨がちゃんとしたOOPの定義を知らないで
OOPとはこんなものだろうと推測してOOPの定義を勝手に
つくっているので統一されることはありません。
0712デフォルトの名無しさん
NGNG0713デフォルトの名無しさん
NGNG0714デフォルトの名無しさん
NGNG>>709
つーか現実世界の物体に投射しようとするところがそもそも間違いだと
思うのよ。プログラムで扱いたいことってそういう「物体の表現」ではない
わけでさ。そういう意味では>>695の説明が実に的確だと思うんだが。
0715デフォルトの名無しさん
NGNG>オブジェクト指向の本質は必要な時にオブジェクトが生成できて、
>メソッドの実行結果をオブジェクトに格納させられることだと思う。
こんなこと正気で考えているなら、今すぐ業界から足洗ったほうがいいよ。
きっと上司も冷たいだろう。
0716デフォルトの名無しさん
NGNG0717デフォルトの名無しさん
NGNG面白くない煽りは要らない。
漏れはOO大好き野郎だが、OOはいろんな側面がある。教科書的には
1)カプセル化(encapsulation)
2)継承(inheritance)
3)多様性(polymorphism)
4)均一性(uniformity)
基本要素はこれ。その中でも多様性がブッチギリで重要かつ便利な機能であることは確かだ。
0718デフォルトの名無しさん
NGNGオブジェクト指向の object は、物体の意味じゃなくて、subject に対する object でしょ。
だから、subject(プログラマ)が、object(対象)に命令する形が自然。
だからメソッド名は命令形なんだよ。
car.run(); // 「車よ、走れ」とこっちが相手に命令
0719デフォルトの名無しさん
NGNGつまりプログラマのこと。
object は写真撮影の被写体とかいうけど、ようするにいじくり回されるものの意味。
つまり、A Programmer subjects objects. (プログラマがオブジェクトを支配する、
思い通りにいじくり回す)という発想。
オブジェクト指向を「物指向」と訳した人は、この語感がわからなかったんだろうね。
つまり、OO では、object が独立してあるわけじゃなくて、そこには subject に
支配されることが前提という語感がある。
「物指向」と訳しちゃった人は、object が自律的に動く、現実世界の「物」に対応
させたけれど、それは誤り。
0720デフォルトの名無しさん
NGNGサブジェクトがメソッドを使ってオブジェクトをいじくり回すということね。
おれはむかし、'90 年頃、オブジェクト指向の話を聞いて、とりあえず .c を
みんな .obj にしておいて、そこからどうにかするとリンクからだから速く作れて
便利なものだと勝手に理解していた。
0721プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG死ね
0722デフォルトの名無しさん
NGNGということはエージェント指向は、subjectの意識に逆らって
objectが自立しって動く指向なのですね?
0723デフォルトの名無しさん
NGNG0724デフォルトの名無しさん
NGNGそう。
0725デフォルトの名無しさん
NGNGOOがマウスクリックなどのイベントでソフトウェアが動くイベントドリブンな方式
のような印象があるな。
0726デフォルトの名無しさん
NGNG自立はしませんね。自律はするけど。
でもまあ、いままで subject - object という枠組みだったから、agent な
object がある程度の裁量権を持つというのはそれなりに画期的だったから、
それがわかる人には注目されてきたわけだ。
0727デフォルトの名無しさん
NGNGOO とイベント・ドリブンとは関係がない。ただ、イベント・ドリブンなフレームワークに
OO はなじみやすいというのは確か。
0728デフォルトの名無しさん
NGNG知らなかったからって、まあ、怒るな。マターリいきませう。
0729デフォルトの名無しさん
NGNG別の環境でいろいろといじくり回されるということ。
こっちからどっかに転送されてしまったエージェントは、どっかで
どうメソッドを呼ばれるのかわからない。
やられたい放題。
だから、セキュリティを確保するために、どこにいっちゃっても、
本当にめちゃくちゃにいじりまわされないような合意が必要。
0730デフォルトの名無しさん
NGNG究極のオブジェクト=ぶろぶ
COBOLerなんかが作ってくれるらしいよ。
0731デフォルトの名無しさん
NGNG違います。ポリモーフィズムが重要なのは
設計以下であり、全般的にわたって重要かつ基本なのは
メッセージパッシングとカプセル化です。
これがわかってないとクラスの責務の重要性
が理解できない。
0732デフォルトの名無しさん
NGNG0733デフォルトの名無しさん
NGNG> 4)均一性(uniformity)
基本要素にこれが入るってあまり聞いたことがない。
少し調べてみたけど、多様性との違いがわからなかった。
0734デフォルトの名無しさん
NGNG0735デフォルトの名無しさん
NGNG0736デフォルトの名無しさん
NGNG0737デフォルトの名無しさん
NGNG細かい役割担当者の組み合わせで大きな仕組みを実現する、っていう
構造が再帰するような構造にしとくと、馬鹿なオイラにも分かりやす
い。
OOはヘンな宗教じゃなくて、物覚えの悪い馬鹿に優しい仕組みだと、
おいらは思うじょ。
0738デフォルトの名無しさん
NGNG>細かい役割担当者の組み合わせで大きな仕組みを実現する
731がいいことゆうた。
0739デフォルトの名無しさん
NGNG737のまちがえ。
0740デフォルトの名無しさん
NGNG>おいらは思うじょ。
まったくもって同感。
オブジェクト指向は難しいものだと思い込んでる人に、そう説いた経験がある。
現在はその相手もそう思ってると聞きました。
0741737
NGNG配列への操作と大量のスイッチ文でプログラムを実現する、「根性の賜物」ソー
スを追う羽目になりまして、「ああ、コレ作った奴がOOをちょっとでも知ってたら、
オイラも楽だし、作った奴も楽だっただろうにな〜…何がなんだか分からんよ つд`)」
と思ったのデス。
根性なしのオイラからみると、作者はある意味えらいとおもうんだけど、その根性
をすこしでも情報収集に向けてくれてれば…
0742705
NGNG確かに命令形の方がわかりやすいけど,あえて使役の形にしたのは
「車を走らせるためにプログラマがお膳立てをしている」
というニュアンスを含めたかったから.
……まあ,大した意味は無いけどね
>714
オブジェクト指向の良いところは,(生まれてきてから何度となく繰り返して
きている)現実世界での行動との相似性を利用できるところだから,
『現実世界の物体に投射しようとする』のはそんなに的外れじゃないよ.
#方向は逆だけどさ
>717
要素ではあるけれど,本質じゃないよ.
結局,『繰返し習得して身につけた現実世界のメタファをプログラムに利用する』
つうのがオブジェクト指向の良いところじゃないのかな?
>719
英語で"object"が『物体』『目的』『対象』という意味を持つように,向こうさん
にとっては,このあたりの概念はかなり混然としたものなんじゃないのかな?
抽象的な概念を『物体』のように扱ったり……ただのヨタです.外国人のこと
良く知らないし.
>737
人間3つ以上のことは同時に憶えていられないから……
良くできたライブラリがあれば,かなり乱暴なプログラムをしてもマトモに
動作するからねぇ
0743デフォルトの名無しさん
NGNG> きている)現実世界での行動との相似性を利用できるところだから,
あと、パラメータを追加した時に外部の変更を最小限に抑えられる
とか、実行フローからの独立性が高くなるとか。
0744Java太郎 ◆DMVtSSFzcg
NGNGいいえ。
最近、さぼってました。
マルチスレッドの所で疲れました(プログラミングレッスン下巻)
しばらく、休みます・・・ゴホッゴホッ。
0745デフォルトの名無しさん
NGNGその引用部分は笑うところだと思うんだが。
0746デフォルトの名無しさん
NGNG殆どは受動的だよ。
0747デフォルトの名無しさん
NGNGついでに、
「貴様ら!エージェント指向を教えろ!」
「貴様ら!アスペクト指向を教えろ!」
スレも立ててくれ
0748ヽ(´ー`)ノ
NGNG0749名無し@沢村
NGNG>現実世界の物体に自律して動くものがどれだけあるつうの?
殆どは受動的だよ。
ヌヒよ、すべての物体は自立して動いてるよ。わかるか?
ヌヒよ、すべての物体は原子からなっており、原子核の周りを電子が回ってるよ。能動的にな。
ヌヒよ、すべての物体は能動的なんだよ。わかるかな?
0750デフォルトの名無しさん
NGNGネコ。
0751デフォルトの名無しさん
NGNG0752デフォルトの名無しさん
NGNG本気で言ってるのか?
0753デフォルトの名無しさん
NGNGこの電子の意図は神すらも計りえない。これをハイゼンベルグの不確定性原理という。
0754705
NGNGそこまでいくと受動も能動もクソもミソも無いだろうに。
疑似問題で言葉遊びされてもなぁ。
0755デフォルトの名無しさん
NGNG使用する人にとっては、モノに対するどんなアクションにどんなリア
クションがかえってくるかということ以外に、興味はないですの。
0756デフォルトの名無しさん
NGNG電子に聞いたのか? おまえは電子の何がわかる? おまえは電子の何なんだ!
電子が本当にそういったんだな? 電子がいったのだったら謝るが、それが何?
0757デフォルトの名無しさん
NGNGおまえは聞いたことないのか? おまえはわからないのか? おまえは知らないのか!
当然そういったんだよ! 早く謝れよ! だから何?
0758デフォルトの名無しさん
NGNG0759デフォルトの名無しさん
NGNGごめんなさい。
0760デフォルトの名無しさん
NGNG> これをハイゼンベルグの不確定性原理という。
言わないって。
0761デフォルトの名無しさん
NGNG○ ハイゼンベルク
0762デフォルトの名無しさん
NGNG>その引用部分は笑うところだと思うんだが。
同意。
0763デフォルトの名無しさん
NGNGクラスは抽象データ型の雛型です。
現実世界の雛型という定義は本質からズレてる。
0764デフォルトの名無しさん
NGNGhttp://camellia16.fc2web.com/gpoint.html
0765デフォルトの名無しさん
NGNG0766プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG部品化可能なモジュールは見とおしが良いからすぐ思いつく。
逆に無理やり部品化したようなのは破綻しやすい。
上位層は構造化。
UML図は無用の長物。
これがあるべきプログラミングの最終結論。
0767デフォルトの名無しさん
NGNGオブジェクト指向って、情報隠蔽、継承、多態性が柱だそうなんですが、
多態性って柱とまで言うほとのものなんですか?
だって結局のところ同じメッセージ受け付けるかどうかってだけですよね?
0768デフォルトの名無しさん
NGNG例えば COM とか UDDI とかのインタフェイス抽象のことを考えると
多態性ってのの実用性もわかると思うけど。
あとテンプレートとかメソッド名での late binding な Smalltalk みたいな
言語とかを使うと、「同じメッセージ受け付けるだけ」ってのが案外便利な
技法だってことに気付くと思う。
0769デフォルトの名無しさん
NGNGダイナミックバインディングの便利さを知っているか?
0770デフォルトの名無しさん
NGNG重要というやつの実装は概念モデルがめちゃくちゃ
で他人には容易に理解できないという罠。
0771d
NGNG甘く見てると痛い目にあう典型みたいなヤツだな。w
http://www.deai-navi.net/linkrank/linkrank.cgi?mode=in&id=fdeai
0772デフォルトの名無しさん
NGNGhttp://tmp.2ch.net/test/read.cgi/sisou/1049523041/l50
0773デフォルトの名無しさん
NGNG簡単に言うと、「スポーツ」って言葉がある。
このスポーツに属する物に「サッカー」とか、「野球」とかってあって、それが・・・
(中略3379文字)
・・・いてはいけないよ!って言ってお茶を飲んだ。
0774デフォルトの名無しさん
NGNGperlのこと?
0775デフォルトの名無しさん
NGNGプレゼント!
0776プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGめまいがする言語はカンベンして
0777デフォルトの名無しさん
NGNGじゃあおまえはどの言語ならめまいがしないんだよ
0778プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG0779デフォルトの名無しさん
NGNGオブジェクト指向言語は別にいいのか?
0780デフォルトの名無しさん
NGNG関数型言語は?
0781デフォルトの名無しさん
NGNG副作用が表に出てくる言語なんかより保守性はずっと上だし、
リファクタリングも掛けやすい。
副作用をストリームに隠蔽したりする考え方は、他の言語で
書くときも応用できる。
0782プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG0783あぼーん
NGNG/:\.____\
|: ̄\(∩´∀`) \ <先生!こんなのがありました!
|:在 |: ̄ ̄ U ̄:|
http://saitama.gasuki.com/aomori/
0784佐々木健介
NGNG/_ |
/. \ ̄ ̄ ̄ ̄|
/ / ― ― |
| / - - |
||| (5 > |
| | | ┏━┓| / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
| | | | ┃─┃| < こんなサイトを見つけた
|| | | | \ ┃ ┃/ \ 正直、スマンカッタ
| || | |  ̄ \_________
http://saitama.gasuki.com/hiroyuki/
0785あぼーん
NGNGhttp://muryou.gasuki.com/moe/hankaku09.html
http://muryou.gasuki.com/moe/hankaku10.html
http://muryou.gasuki.com/moe/hankaku07.html
http://muryou.gasuki.com/moe/hankaku08.html
http://muryou.gasuki.com/moe/hankaku05.html
http://muryou.gasuki.com/moe/hankaku06.html
http://muryou.gasuki.com/moe/hankaku03.html
http://muryou.gasuki.com/moe/hankaku04.html
http://muryou.gasuki.com/moe/hankaku01.html
http://muryou.gasuki.com/moe/hankaku02.html
0786あぼーん
NGNG∧_∧ | | / ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄ ̄
( ´Д`)// < 先生!こんなのを発見シマスタ!
/ / |
/ /| / \ http://saitama.gasuki.com/koumuin/
__| | .| | \
\  ̄ ̄ ̄ ̄ ̄ ̄ ̄\ \_____________
||\ \
||\|| ̄ ̄ ̄ ̄ ̄ ̄ ̄|| ̄
|| || ̄ ̄ ̄ ̄ ̄ ̄ ̄||
.|| ||
0787あぼーん
NGNG! i iノノリ)) 〉
i l l.´ヮ`ノリ <先生!こんなのがありました!
l く/_只ヽ
| ̄ ̄ ̄ ̄ ̄|
http://muryou.gasuki.com/sinagawa/
0788デフォルトの名無しさん
NGNG勉強しろよ
0789デフォルトの名無しさん
NGNG0790767
NGNGdynamic bindingが便利かどうかなんてこのさいどうでもいいんでしょ?
0791デフォルトの名無しさん
NGNG0792デフォルトの名無しさん
NGNG話に参加したかったら基礎的な用語ぐらい勉強してからにしようね。
0793デフォルトの名無しさん
NGNGOOにシフトする際になんかめりっとあるかって言われたとき、
実装レベルの便利さを立ててあげてもいいんでないかなあ。
0794デフォルトの名無しさん
NGNGその中で最高の物の一つが多態性。
0795デフォルトの名無しさん
NGNG手続き(関数)をスッキリ構造化する手段として、便利ですが。
JavaDocとか、最近はやりのUMLベースIDEみたいな、クラス構造に関するドキュメントを
自動生成してくれるフレームワークがあると、仕様の後追いがすごい楽でつ。
0796デフォルトの名無しさん
NGNGいいますが、けっきょくクラス内部で条件指定などをしてあげないと
壊れにくくならないので、それって普通の関数でも同じじゃんと思ってしまうのは
漏れだけでしょうか?
0797bloom
NGNG0798デフォルトの名無しさん
NGNGそのメンバ変数はそのクラスのメンバ関数以外からは変更されない
普通の関数と同じじゃないだろ
0799767
NGNGこういう何か言ってそうで何も言ってない(言えない。言うだけの頭がない)人間との話になんて参加したくもありませんよ。
0800デフォルトの名無しさん
NGNGこのスレを 1 から読むなりデザパタでも調べろ。
0801デフォルトの名無しさん
NGNGはあ、そうですか。 だから? 何?
0802デフォルトの名無しさん
NGNG参加したくない場合に取るべき行動は何かわかるか?
ここに来るなってことだよ。
さっさと消えな。
0803705
NGNG多態性というよりも、グルーピングといったほうがピンと来そうだけど……
せっかくオブジェクトとしてそれぞれ独立させたんだったら、相手の
オブジェクトのことは(必要最低限のこと以外は)知らなくても良いように
したくない?
多態性があると、『このオブジェクト群には、こう命令すれば動いてくれる』
といった感じに何種類かのオブジェクトをひとまとめにして取り扱うことが
できるので、そのオブジェクト群を使うオブジェクトが、そのオブジェクト群を
個別に扱う必要が無くなる->オブジェクトがシンプルになる。という訳。
wigetなんかの設計をするときに多態性がなかったら死んでますな………
#さらにこの考えを推し進めると、もっと便利になるよ。
#Rubyだと、そもそも同じ名前のメソッドだったら、継承関係の無い
#オブジェクトでさえも同じように扱える。
このへんは現実世界でも良くあることで、例えば
・テレビ用のリモコン
・AVコンポ用のリモコン
・エアコン用のリモコン
なんかは、とりあえずpowerボタンを押せば、それぞれの装置のことを
あまり詳しく知らなくてもスイッチを入れることができるよね。
多態性って、そのあたりのメタファーなんじゃない?
0804デフォルトの名無しさん
NGNGなんか勘違いしてない?
0805デフォルトの名無しさん
NGNG0806デフォルトの名無しさん
NGNGアセンブラでも実装できますね。
0807705
NGNG次に逆の方向になるけど、次のようなケースも多態性が必要になるケースですな。
すでにできあがっている/作りかけのシステムに機能(仕組み)を追加したくなった。
その機能は全く新しい機能なので、既存のオブジェクトを調整するだけでは
実現できないけど、機能を実現するための仕組みは従来のオブジェクトを
操作する方法を利用できそうだ。
(実際うまく設計できれば、様々な機能を同じ仕組みの上で実現することができる)
そこで、『このオブジェクト群と同じ命令を受け付ける様にする』すなわち多態性を
利用することによって、既存のシステムの仕組みを変更することなく新しい機能を
追加することができる。
こっちのほうがいわゆる『多態性』になるのかな?
このへんも現実世界で良くあることで、タイプライターとコンピュータのキーボード
なんかは良い例ですな。
つまり、多態性によって『機能』と『仕組み/操作方法』を分離することができるつうのが
『多態性』を重要なものにしている要因だと思うんだけど、どう?
0808デフォルトの名無しさん
NGNGVBと違って専用の命令ないけどね。
0809デフォルトの名無しさん
NGNGVB は命令で多態性を指示するのか。
悔しかったら VB で Template Method パターンをやてみろ。
0810デフォルトの名無しさん
NGNG昔、オブジェクト指向言語が簡単に手に入らなかったときに、
前向きにやろうということでそういうのを掛け声にすることは
あったけど、何が悲しくていまさらそんなことを。
0811デフォルトの名無しさん
NGNG0812デフォルトの名無しさん
NGNG厳しい環境だね。ご苦労さん。
0813プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG0814デフォルトの名無しさん
NGNGVBって、どんな命令でかくの?
0815デフォルトの名無しさん
NGNGいいことゆうた。ここみてるとオブジェクト指向って
実装レベルでしか浸透してないなーとおもふ。
0816デフォルトの名無しさん
NGNGへぇ〜 継承が出来ないから、Template Method"は" できないの知ってるみたいだね。
でも継承を使わないパターンは実装できるんだよ。
もちろん多態性が必要なパターンもね。
>>814
多態性といえばimplementsでしょ。Javaと同じ。
0817デフォルトの名無しさん
NGNG質問っす。
最近Implements (VB)知ったんだけど,べつにこれ使わなくても多態はできるん
だよね。ただ、他の強制力が多少はたらくっつーか、コードが書きやすくなる
っていうくらいで。
0818デフォルトの名無しさん
NGNG0819デフォルトの名無しさん
NGNGアーリーバインドとレイトバインドの違いもある。
オレとしてはコードのカキ易さ(+読みやすさ)も重視したいところだが。
0820デフォルトの名無しさん
NGNG0821デフォルトの名無しさん
NGNGインターフェースの継承しかできないじゃん。
「できる」っていえばできるけど、両足を縛られて 100 m 走をやれって
ゆうようなもんだよ。
0822デフォルトの名無しさん
NGNGやってみればわかるけど、インターフェースの継承しかできないばっかりに、
かなりひねくれた設計になるぞ。
たとえば、メソッドの引き上げは不可能だから、別のクラスにして、すべての
子クラスからそれを呼ぶようにするとか。
かなりひずんだ設計になる。
0823デフォルトの名無しさん
NGNG> 子クラスからそれを呼ぶようにするとか。
要するに委譲のことですね。委譲は別に歪んだ設計じゃありませんよ。
0824デフォルトの名無しさん
NGNG始めっからインターフェースの継承の話しかしてないじゃん。
なに一人であつくなってんの?
0825ヽ(´ー`)ノ
NGNG…あ、いや、シャレじゃなく。
0826デフォルトの名無しさん
NGNG委譲というか、オブジェクト・コンポジション。
オブジェクト・コンポジションはひずんだ設計じゃないが、メソッドの
引き上げをする場面でオブジェクト・コンポジションを使うと言うのは
ひずんだ設計だよ。
0827デフォルトの名無しさん
NGNG0828デフォルトの名無しさん
NGNG設計の話だろ。VBなんだからVB用の設計をするだけの話だろ。
0829デフォルトの名無しさん
NGNG> 始めっからインターフェースの継承の話しかしてないじゃん。
ちがうねえ。VB で多態性ができるという話が始まったんだねえ。
インターフェースの継承も多態性のひとつだけど、抽象クラスの継承も
多態性なんだね。
0830デフォルトの名無しさん
NGNGリファクタリングは設計です。
0831デフォルトの名無しさん
NGNGかならずメソッドの引き上げとtemplate methodの話で対抗する
奴がいますねぇ(w
0832デフォルトの名無しさん
NGNG> インターフェースの継承も多態性のひとつだけど、
結論。VBで多態性は実装できる。
0833デフォルトの名無しさん
NGNGOO の定石だからね。できないとすごく不便。まともなクラス設計はできない。
すごくひずんだ設計になる。
って、OO のクラス設計をやったことがないとわからないか……
0834デフォルトの名無しさん
NGNG残念ながら違います。そんなアフォな事言っているのは貴方だけです。
0835デフォルトの名無しさん
NGNGVB で多態性は中途半端に実装できる。
0836デフォルトの名無しさん
NGNG中途半端ではないですね。ちゃんと多態性になっているのですから。
0837デフォルトの名無しさん
NGNGあなたはCでOOやったことありませんね。
0838デフォルトの名無しさん
NGNG奴もいるくらいだからねぇ。
まぁ、認めたくないものは認められないって強い信念を持っている奴は
人間的に認められないね。
0839デフォルトの名無しさん
NGNGそれは、古い「計画的設計」の頃のお話。
http://objectclub.esm.co.jp/eXtremeProgramming/IsDesignDead.html
進化的設計ではふつうの話。
>>836
クラスの継承で多態性ができないのは、中途半端。
>>387
C で OO はできるけれど、昔、OO 言語で納品できなかった頃の、前向きな
掛け声。できるできないといったらできる。でもひずんでいる。コードも増える。
0840デフォルトの名無しさん
NGNG実装しないで何すんの?
0841デフォルトの名無しさん
NGNGVB でも OO はできるが、とてもひずんだ設計になってしまう。
0842デフォルトの名無しさん
NGNG歪んでいる、というのでファイナルアンサー?
0843デフォルトの名無しさん
NGNG0844デフォルトの名無しさん
NGNGC よりはマシでファイナルアンサー。
0845デフォルトの名無しさん
NGNGCよりは歪んでないね。多態性が中途半端にできるのだから。
で、ファイナルアンサー。
0846デフォルトの名無しさん
NGNG// 俺は使ったことないから実体はしらんが。
0847デフォルトの名無しさん
NGNGその方が賢明。
0848デフォルトの名無しさん
NGNG× 要するに、VBで多態をやりたきゃ
○ 要するに、VBで継承をやりたきゃ
0849デフォルトの名無しさん
NGNG多態をやると、多くの場合どうしてもメソッドの引き上げがでてくる
(でないと「ただ一度」の原則が守れず、バグが散在する)から、訂正する
必要はないです。
0850デフォルトの名無しさん
NGNG実際自分がVBで作ると多態性やっている罠。
0851デフォルトの名無しさん
NGNGただ設計が悪いだけだろ(藁
0852デフォルトの名無しさん
NGNG違うね。
同じ継承ツリーにあるってことは、どの子クラスにも共通した
処理って言うのがあるんだよ。多くの場合。やってみればわかるけど。
何の関係もないクラスを同じ親から継承しているんなら別だけど。
0853デフォルトの名無しさん
NGNGVCL や Java SDK の継承ツリーを見てみろ。
0854デフォルトの名無しさん
NGNGJava・C#・VB.NET > C++・Delphi > VB > C > アセンブラ
0855デフォルトの名無しさん
NGNGそんな感じだろうね。
0856デフォルトの名無しさん
NGNGGUIの部分ぐらいじゃん。
他は一段くらい継承して終わりでしょ。
GUIがコンポーネントとしてまとめられている場合、
継承なんかほとんど使わないよ。
0857デフォルトの名無しさん
NGNGVCL や Java SDK のソースの GUI じゃない所を見てから家。
0858デフォルトの名無しさん
NGNGへぇ〜。具体的にどこかなぁ〜。w
0859デフォルトの名無しさん
NGNG1 段でも、同じ親から継承した子クラスで同じ処理が出てきたときは、
1 つのメソッドにまとめて親クラスに持っていくんだよ。
OO したことがない人が想像で言っているんだろうけど、
「どうせ」も何もない。
そんな場面は、たくさん出てくる。
0860デフォルトの名無しさん
NGNGTBDEDataSet とか、よく読んでみろよ。
0861デフォルトの名無しさん
NGNG0862デフォルトの名無しさん
NGNG0863デフォルトの名無しさん
NGNGJava やったら java.io のストリーム系、たとえば java.io.BufferedOutputStream あたり
おもしろいよ。
0864デフォルトの名無しさん
NGNGえ、コンテナクラスはGUIでない継承を使いまくった例だが、
お前は使ったこと無いんだろうな。
0866デフォルトの名無しさん
NGNGそうか、そういう人が多いからメソッドの引き上げなんてできなくてもいいなんて
変なことを堂々と言えちゃう人がいるわけだ。
0867デフォルトの名無しさん
NGNG0868デフォルトの名無しさん
NGNG使用すべきところはライブラリの範囲ばかりだ。
0869デフォルトの名無しさん
NGNGじゃあ、オリジナルの処理は OO で書かないんですね。
0870デフォルトの名無しさん
NGNGまだうまく自前の処理を OO で書けないから、そういった例がライブラリだけの
ことだと思い込んでるのでは。
0871デフォルトの名無しさん
NGNG俺的にはVBでも多態ができることが分かって勉強になったよ。
0872デフォルトの名無しさん
NGNG君には必要ないよ。だってCOBOLerでしょ?
0873デフォルトの名無しさん
NGNGでも実際ないしね。
0874デフォルトの名無しさん
NGNGそれか、ものすごく規模の小さいプログラムとか。たとえば、フォームに
部品を貼り付けて、イベント・ハンドラに数行書く程度の。
0876デフォルトの名無しさん
NGNG設計のうちに入らんな。お勉強サンプルぐらいか。
0877デフォルトの名無しさん
NGNG0878デフォルトの名無しさん
NGNG0879デフォルトの名無しさん
NGNG0880デフォルトの名無しさん
NGNG0881デフォルトの名無しさん
NGNGそのおかげで、VBUnit なんかがかろうじて作れたりする。
けど、完全に OO してないから、コア部分は VC++ 製の DLL にして逃れているけどね。
0882デフォルトの名無しさん
NGNG0883デフォルトの名無しさん
NGNG> コア部分は VC++ 製の DLL にして逃れているけどね
うそつけ。
0884デフォルトの名無しさん
NGNG電車で会社と家の往復だけの生活してる人が、高速道路なんて必要ないから無意味っていってるのと同じ感じですね。
0885デフォルトの名無しさん
NGNG0886デフォルトの名無しさん
NGNGDependancy Walker使ったらちゃんとMSVBVM60.DLLリンクされてるし。
0887デフォルトの名無しさん
NGNG嘘でした。
0888デフォルトの名無しさん
NGNG0889デフォルトの名無しさん
NGNG0890デフォルトの名無しさん
NGNG0891デフォルトの名無しさん
NGNG0892デフォルトの名無しさん
NGNG0893デフォルトの名無しさん
NGNG0894デフォルトの名無しさん
NGNGs/OO設計できる人/OO設計できると思っている人/
0895デフォルトの名無しさん
NGNG汚いプログラムを書いているか、>>874 のようなのしか作ったことないか、
だろう。
0896デフォルトの名無しさん
NGNG0897デフォルトの名無しさん
NGNG使う。それだけ。
0898デフォルトの名無しさん
NGNG0899デフォルトの名無しさん
NGNG0900デフォルトの名無しさん
NGNG0901デフォルトの名無しさん
NGNG0902デフォルトの名無しさん
NGNG0903デフォルトの名無しさん
NGNG0904デフォルトの名無しさん
NGNG0905デフォルトの名無しさん
NGNG0906デフォルトの名無しさん
NGNG0907デフォルトの名無しさん
NGNG0908デフォルトの名無しさん
NGNGメソッドの引き上げって、C マガとかの初心者向けの記事にも出てくるよな。
επιστημηさんよりすごいのかい。君は。
0909デフォルトの名無しさん
NGNGOOいるって言っている人にとって都合のいい架空の人物。
0910デフォルトの名無しさん
NGNGその通り。
0911デフォルトの名無しさん
NGNGそこまでいうなら、
http://www.freeml.com/ctrl/html/MLInfoForm/[email protected]
で、επιστημη氏はじめたくさんのエンジニアの前で論破してみろ。
cppll ML で待っている。
0912デフォルトの名無しさん
NGNG匿名じゃなくなるので却下。
0913デフォルトの名無しさん
NGNGHotmail でもいいんだよ。匿名メールの制限は設けられていないから。
0914デフォルトの名無しさん
NGNG0915デフォルトの名無しさん
NGNGそういうやつのための OO でもあるからね。
知らないうちに OO を使っている。そのうち自分でも OO の設計ができるようになる。
向上心があれば。
0916デフォルトの名無しさん
NGNGまあリファクタリングもしない奴には継承の有用性もわからんのだろう。
0917デフォルトの名無しさん
NGNG0918デフォルトの名無しさん
NGNG思えないんだったらもう仕方ないね。
0919デフォルトの名無しさん
NGNGきみの OO 技術がいかに優れているのか、匿名メールでもいいから cppll ML で
紹介して、人類文化の発展に寄与してくれたまへ。
0920デフォルトの名無しさん
NGNGうんうん系 うんうん系 いらないよ
そんな 運動
0921デフォルトの名無しさん
NGNG0922デフォルトの名無しさん
NGNGOOでないOSならばいくつかあるんで、OSを作れたらOOは素晴らしいと認めよう。
0923デフォルトの名無しさん
NGNG0924デフォルトの名無しさん
NGNG0925デフォルトの名無しさん
NGNGOSが出来ないならコンパイラでもいいよ。
0926デフォルトの名無しさん
NGNGもうある。評価しろ。
http://www.csl.sony.co.jp/project/Apertos/
0927デフォルトの名無しさん
NGNG少なくともWindowsでさえもOOしていると思うんだけどな
(程度の問題はおいといて)
0928デフォルトの名無しさん
NGNG分散オブジェクトとか言っても「はあ?ぼくちゃんわからない」でせう。
0929デフォルトの名無しさん
NGNGソースがねーぞ。論文だけじゃねーか。言語は何で作ったんだ?
>>927
BeOSって「コンパイル時に存在しないクラス」を使えるようになったんだっけ?
> 少なくともWindowsでさえもOOしていると思うんだけどな
MFCがOOしていると主張するなら、まぁOOしてますね。
0930デフォルトの名無しさん
NGNGhttp://www.ipsj.or.jp/members/Magazine/Jpn/3608/article014.html
の論文からたどれる。
0931デフォルトの名無しさん
NGNGうんうん系は、なくてもいいけどあったらいいこともあるよ、っていってるん
ですが
0932デフォルトの名無しさん
NGNG本文のリンクをクリックするとユーザ名とパスワードを求められるんですが、
やっぱり会員登録しなくちゃ駄目ですか?
0933デフォルトの名無しさん
NGNG要素ではない。
0934デフォルトの名無しさん
NGNGなんだ、人の受け売りか。
0935デフォルトの名無しさん
NGNGおまえこそ、お前の持ってる99.99%の知識は人の受け売りだろう?
それを馬鹿にしてもしょうがないぞ?
0936デフォルトの名無しさん
NGNGここまでの流れでは、必要と思う人には必要という結論がすでに。
いらないよねーといってる人は、本当にいらないか、意味がなにも
わかってないか、どっちかなんでしょう。
0937デフォルトの名無しさん
NGNGオブジェクト内でどんなコードが動いてようと、オブジェクトの
切り分けとメッセージのやりとりさえ決まっていれば、それで十分だろ?
0938デフォルトの名無しさん
NGNG0939デフォルトの名無しさん
NGNG>コンパイル時に存在しないクラスを使えるようになったんだっけ
ってなんだ?
コンパイル時に存在しないクラス?使えるに決まってるじゃんか。
おまえ、非OOでも、プログラム書けない...書いたこと無いだろ。
0940プロの逝って良しの1 ◆MvRbZL6NeQ
NGNG分散オブジェクトは失敗したでしょうが。
0941デフォルトの名無しさん
NGNGRPCは成功したの?
0942デフォルトの名無しさん
NGNGRPCってリモートオブジェクト?
0943デフォルトの名無しさん
NGNG0944デフォルトの名無しさん
NGNGハァ?EJBは分散オブジェクトそのまんまですが。
0945デフォルトの名無しさん
NGNG0946デフォルトの名無しさん
NGNGかろうじてDelphiで実体験したのが"継承"。
その他にどういった要素が揃えばオブジェクト指向プログラミング足り得るのだろうか。
10数年前、勉強会に参加したCobolerの中には、いまだに
"オブジェクト指向=細かいルーチン化"と思ってるオッサンもいるぞ。
本当に頭のいいヤツは、バカでもわかる比喩をこなせる筈、
>>22がいい線行ってると思ったが、実際どうなんだよ。
どういう概念でもってソースを組めば、誰にも恥じる事のないオブジェクト指向による組み方になるのだろう。
0947デフォルトの名無しさん
NGNG>>210付近を読め
0948デフォルトの名無しさん
NGNG>その他にどういった要素が揃えばオブジェクト指向プログラミング足り得るのだろうか。
ということを厳密にやろうとすると、上で繰り広げられてることが起きるので、漏れはパス。
どういった要素が揃えばJazz足り得るのだろうか、という問いに似て、厳密には難しい。
結局はJazzを勉強したミュージシャンが演奏すればそれはJazzになる、
ということが言えるとすれば
オブジェクト指向を勉強したプログラマが組めばそれはオブジェクト指向プログラムになる
といえるかもしれない。
0949sage
NGNG一度頭を空白にして、「今まで君が読み飛ばしてきた」数多くの
オブジェクト指向に関する文献を、読み直してみるといいよ。
キーボードのないところで、出来ればコーヒーでも飲みながら、
まったりと。
0950デフォルトの名無しさん
NGNGJazzを勉強したミュージシャンがその技術を生かして演奏すれば
それはJazzになる、ということが言えるとすれば
オブジェクト指向を勉強したプログラマがその技術を生かして組めば
それはオブジェクト指向プログラムになるといえるかもしれない。
0951946
NGNGFuckable から読む気無くしました。根気ないですね、おれ。
ちなみにDelphiでやってた"継承"というのは、
画面フォームの提示様式とボタンの機能を統一するため、
最小限の基本機能(画面の見た目、パネル分け、PFキー、確認ボタン類)をクラス定義して、
各アプリはそのクラスを利用して造り込んでいく、というものです。
この時問題になったのは、クラス内部の(結果的に)冗長的な一機能が、派生先の仕様によっては足枷になる場合が開発末期に生じたという事です。
また関数一つとっても、各プログラマが"俺の部品こそ効率的"と、みんな互いに譲らず独自に別個の関数をダラダラ書きやがったという問題もありました。
(俺も書きやがった一人ですが) …まあ、その程度の経験しかないす。
オブジェクト指向って、決して同一ではないが似たような手続きを複数箇所にダラダラ書くのはダサイから、
一つにまとめて能率よく処理できるよう工夫を凝らそうといったものになるんでしょうか。
ある種ゲージツ的センスで意見が分かれそうで集団開発にどこまで向いているのかちと疑問にも思ったりします。
ちゅーか、それこそ"指向"に左右されるのだなぁなんてね。
0952デフォルトの名無しさん
NGNGそういう観点で言うなら、いかにプログラムを分割して
関連のあるものを近いところに、関連のないものを遠くにおくか、とか
まとめて変更する可能性のあるものをいかにまとめるか、とか。
だから、集団開発、という点でいえば、おおきなプログラムを
集団で作るときに、ある機能を担当している人が作るプログラムが
他の機能を担当している人のプログラムの影響を受けない・影響を与えない
ようにという方向で設計ができる、という点でオブジェクト指向が良い。
0953952
NGNG概念的に似ている・似ていないが判断基準になる。
結果的には、コードが似ている・似ていないでまとめることになる場合が多い
のだけど、それは結果論。
ある時点でコードが似ているからという理由でまとめると、あとで泣く。
0954デフォルトの名無しさん
NGNG答えがない質問は、質問自身が間違っているからである。
正しい質問は「OOは便利か」である。便利である。
OOの最大の利点は「差し替え可能」であることと言っても過言ではない。
同じインターフェースあるいは同じ起源をもつオブジェクトは
差し替え可能であり、LEGOのように組換え可能である。
スライムをマンドリルに差し替えたところで、
剣と魔法のインターフェースを備えていれば、同様に扱うことが出来る。
IF文やSWITCH文で振り分ける必要がない。
便利である。
それにしてもこのスレは良く伸びている。良いことである。
0955デフォルトの名無しさん
NGNGなんとなくあんた良いこといった!
0956952
NGNG> 足枷になる場合が開発末期に生じたという事です。
という部分だけど、開発ライフサイクルを考えると、開発末期には
開発をコントロールすることが難しくなるのは、どのような技術を
使っても起こり得る。
いまのところオブジェクト指向を取り入れた開発が、その飛距離が長い。
0957デフォルトの名無しさん
NGNGと言われる原因は何ですか?
0958デフォルトの名無しさん
NGNG全体的にプロジェクト自体の規模が大きくなり、予算・納期は縮小する傾向が
あるので、プロジェクトが成功しにくくなっているというのがある。
だから、OOを採用してなければ成功していたかというと、難しい。
また、新技術にはやはりリスクがあるので、OOを採用したからといって
最初からその利点の恩恵にあずかれるものでもない。
ただ言えるのは、最近の開発で成功しているプロジェクトは
OOを採用している割合が高くなっている。
0959デフォルトの名無しさん
NGNGそれはつまりそれが人間にとって楽なわけだよね。携帯電話の
中の実装知らないと電話できないんじゃ、話にならんよね。
各社ごとにキーボードが違ったら、つらいよね。
だから、プログラムだってインターフェース指向の方が楽なはず。
OOってオブジェクトのコラボレーション云々ってよく言われるけど、
そんなことよりインターフェースをどう切るか、ってところの方が
重要だと俺は思う。また、インターフェースによる切り分けと差し替え
が出来るところが、OOの良さっていうか楽な所だと思う。どうかな?
0960デフォルトの名無しさん
NGNGインターフェースと継承ぐらいあればいいんじゃないの?
オブジェクトなんて出てくる必要ない。
0961デフォルトの名無しさん
NGNGその周辺に用意されたものが、たまたまニーズに
合ってるだけかもしれない。
オブジェクト指向は「狼の皮を被った羊」なんじゃないのか、と。
0962デフォルトの名無しさん
NGNGオブジェクト指向は、羊に狼の皮を提供する。
0963デフォルトの名無しさん
NGNG文盲は黙ってろ。
0964デフォルトの名無しさん
NGNGじゃあ、おまえが黙ってろ。
0965デフォルトの名無しさん
NGNG0966デフォルトの名無しさん
NGNG突拍子なく来るな
0967デフォルトの名無しさん
NGNGなるほど。
多態や継承とかは、別にオブジェクト指向でなくてもできるよな。
純なオブジェクト指向つーと、メッセージ受け渡し程度だから、
まあ無くてもいいわな。
0968962
NGNGプログラムをあまり勉強しなくても、ある程度部品を組み合わせれば
ある程度のものができるようになっている。
あと、>>961の言うような「周辺に用意されたもの」の多くは
オブジェクト指向を核に研究開発されている。
それは情報処理学会誌なんかを読んだ感想。
0969デフォルトの名無しさん
NGNG「オブジェクト指向」と一括りにされて、うやむやにされた技術は、
実はほとんどが「オブジェクト指向」とは全く関係ないものばかりだ。
俺達は「オブジェクト指向」という言葉に踊らされているのさ。
0970デフォルトの名無しさん
NGNG>オブジェクト指向のおかげで
オブジェクト指向のおかげじゃない。
オブジェクト指向の周辺技術のおかげだ。
0971デフォルトの名無しさん
NGNG0972デフォルトの名無しさん
NGNG>部品を組み合わせればある程度のものができる
これはオブジェクト指向とは何の関係も無いな。
0974デフォルトの名無しさん
NGNGなんかこれ、真理を突いてるっぽい。
初心者がプログラムするときなんか、メッセージなんて概念は
頭に出てこないだろうし。最近の言語の傾向見てると、
純粋な「オブジェクト指向」という意味自体も消えかかってる。
0975959
NGNG確かに、インターフェースと継承があるだけでよいかも。
メッセージングの重要性、ってのをあんまり感じたことないし。
それよかインターフェース合わせるとか、多態で楽するとかの方が重要だ。
>>967のニーズにあっているというのは、なんとなく理解できる。
>>969
となると、純なオブジェクト指向=メッセージング程度という>>967の意見と、
オブジェクト指向の周辺技術がニーズにあっているという感覚からすると、
少なくとも俺はオブジェクト指向の派生物を便利便利と言っているわけで、
そうなると俺は何指向だ?オブジェクトデリバティブ指向とかか?
0976デフォルトの名無しさん
NGNG0977デフォルトの名無しさん
NGNGそれは老人の戯言と同じ。
使う側からすれば知る価値はない。
0978959
NGNGまあ、確かにそうかもしれん。
でもやっぱりプログラムするときはいつもインターフェース
意識するから、しいて言うなら俺はインターフェース指向かな。
オブジェクト指向ではないことは、>>961の発言で確定したし。
0979デフォルトの名無しさん
NGNGあいまいな表現の部類に入るな。
「オブジェクト指向」だけでは密な会話が成立する事なんて少ないし。
0980デフォルトの名無しさん
NGNGふーん。じゃあいいや。
そうやってオブジェクト指向をもとにした周辺技術だからこそ
核となるオブジェクト指向を知る必要がないものになるわけだけど。
そして>>968に続くわけだ。
0981デフォルトの名無しさん
NGNGその研究者達も「オブジェクト指向」という言葉の語呂がいいから使うだけで、
純な意味のオブジェクト指向原理主義な人なんていないと思うよ。
いたとしても、自分のやってることが良くわかってない盲信者だろうね。
0982959
NGNG学術用途で抽象度の高かったオブジェクト指向が、実装レベルが
近くなるにつれ実用上有用な技術がどんどん引っ付いてしまい、
学者が言うオブジェクト指向と実装者が思うオブジェクト指向が
乖離している。学者は核が、実装者は周辺技術がテリトリーであるため、
一向にオブジェクト指向の利点、特徴が一意に語られないため、
「オブジェクト指向」という言葉があいまいで、踊らされている。
こんなところかな?となるとさ、周辺技術をカテゴライズして
やれば、見通しよくなりそうだよね。
0983プロの逝って良しの1 ◆MvRbZL6NeQ
NGNGあれは制御。
呼んだら戻さなきゃいけないところがメッセージと根本的に違う。
メッセージ送って自分は消滅とか出来ないんでジャヴァで往生した。
0984デフォルトの名無しさん
NGNGそんなとこだと思う。
オブジェクト指向だけが全面に出てくる今の状況はおかしい。
理系の考え方じゃない。
0985980
NGNGまぁ、研究分野でも、オブジェクト指向は当たり前の技術みたいな感じになっている
ようなので、専門に研究してる人は少ないかも。
ソフトウェアシンポジウムのレジュメなんかでも97年あたりからオブジェクト指向
のセッションが少なくなってる。
そのあとの流行は「プロセス」だったけど、最近はどうなんだろう。。。
0986デフォルトの名無しさん
NGNG0987デフォルトの名無しさん
NGNGエンジニアリングは理系じゃないからね。
0988デフォルトの名無しさん
NGNG同意。
オブジェクト指向の本はあんなに分厚い必要はない。
なんつーか、うまく分離できないものかね。
0991デフォルトの名無しさん
NGNG> また関数一つとっても、各プログラマが"俺の部品こそ効率的"と、みんな互いに譲らず
ちゃんと測定して裏を取ればよかったんだよ。
0992980
NGNG0993デフォルトの名無しさん
NGNGSmalltalk-80も本質的にはサブルーチン・コールに過ぎないわけで、
これもオブジェクト指向のベースモデルのアクター理論が実装で
歪められた例の一つですね。
0994デフォルトの名無しさん
NGNG0995959
NGNG実装で歪められた、って所はおもしろいね。
htmlのタグも実用ではだいぶ歪んだ使われ方がされていて、
あまつさえそれがテクニックとして世に出回ったり
しているから、OOにもこうゆう要素が少なからずあるということ
だよね?
0996デフォルトの名無しさん
NGNG( )
| |
| |
( ・∀・) 1000ハ
) ノ
(_⌒ヽ
)ノ `J
/⌒\
( )
| |
| |
( ・∀・) ワタサナイヨ
) ノつ
/ __ /
∠ '´ )ノ
0997デフォルトの名無しさん
NGNG( __ __) ( __ __)
(6 ・ 」・). (6 ・ 」・) ボクタチダッテ
( ∀) ( ∀)
/ \ / \
⊂ ) ノ\つ ) ノ\つ
(_⌒ヽ (_⌒ヽ
ヽ ヘ } ヽ ヘ }
ノノ `J ノノ `J
∧_∧ ∧_∧
( __ __) ( __ __)
(6 ・ 」・). (6 ・ 」・) マケナイヨ
( ∀) ( ∀)
/ \ / \
⊂ ) ノ\つ ) ノ\つ
/ __ < / __ <
/ '´ ヽ ) / '´ ヽ )
∠/ ノノ∠/ ノノ
0998デフォルトの名無しさん
NGNG( __ __) ( __ __) /⌒\
(6 ・ 」・). (6 ・ 」・) ( )
( ∀) ( ∀) | |
/ \ / \ | |
⊂ ) ノ\つ ) ノ\つ ( ・∀・)
(_⌒ヽ (_⌒ヽ ) ノ ( ・∀・) ショウブノ
ヽ ヘ } ヽ ヘ } (_⌒ヽ (_⌒ヽ
ノノ `J ノノ `J )ノ `J )ノ `J
∧_∧ ∧_∧
( __ __) ( __ __) /⌒\
(6 ・ 」・). (6 ・ 」・) ( )
( ∀) ( ∀) | |
/ \ / \ | |
⊂ ) ノ\つ ) ノ\つ ( ・∀・)
/ __ < / __ < ) ノつ ( ・∀・) ハジマリダネ
/ '´ ヽ ) / '´ ヽ ) / __ / / __ /
∠/ ノノ∠/ ノノ ∠ '´ )ノ ∠ '´ )ノ
0999999
NGNG1000デフォルトの名無しさん
NGNG10011001
Over 1000Threadもう書けないので、新しいスレッドを立ててくださいです。。。
レス数が1000を超えています。これ以上書き込みはできません。