あなたたち、オブジェクトとかインスタンスとか…
■ このスレッドは過去ログ倉庫に格納されています
0001デフォルトの名無しさん
2007/01/14(日) 18:08:38オブジェクトの別名がインスタンスなんじゃなくて
クラスをインスタンス化したオブジェクトをインスタンスと言うんだからね!
勘違いしないでよね!!
0002デフォルトの名無しさん
2007/01/14(日) 18:22:52オブジェクトをクラス化したインスタンスをクラスと言うんだろ
0003デフォルトの名無しさん
2007/01/14(日) 18:26:33そんなのねーよw
JAVAの絵本でも読んでろwww
0004デフォルトの名無しさん
2007/01/14(日) 18:29:260005デフォルトの名無しさん
2007/01/14(日) 18:30:400006デフォルトの名無しさん
2007/01/14(日) 18:33:27おまえどこ中よ?
0007デフォルトの名無しさん
2007/01/14(日) 18:54:52ワロタ。
「クラスをインスタンス化したオブジェクト => インスタンス」
一瞬うまい説明かと思ったけど、トートロジーで説明になっていない件w
0008デフォルトの名無しさん
2007/01/14(日) 19:42:20馬鹿にしていってるんじゃなくて、読んでおいた方がいいよ
俺頭悪いから、人に何かを説得するだけの力ないけど、とにかく読んでおいた方がいいよ
3回いったよ
0009デフォルトの名無しさん
2007/01/14(日) 19:45:11>勘違いしないでよね!!
ツンデレ?
0010デフォルトの名無しさん
2007/01/14(日) 19:47:09そんなの期待してたら仕事にならんからなw
0011デフォルトの名無しさん
2007/01/14(日) 20:03:400012デフォルトの名無しさん
2007/01/14(日) 20:05:17プリミティブとオブジェクトを分けてるのは言語上の都合だろ。
0013デフォルトの名無しさん
2007/01/14(日) 20:06:58インスタンスをクラス化したのがオブジェクト
オブジェクトをインスタンス化したのがクラス
0014デフォルトの名無しさん
2007/01/14(日) 20:11:570015デフォルトの名無しさん
2007/01/14(日) 20:25:560016デフォルトの名無しさん
2007/01/14(日) 20:31:37引数がいっつも関数の()で指定するのが手続き型言語
反論は認めない
0017デフォルトの名無しさん
2007/01/14(日) 20:32:480018デフォルトの名無しさん
2007/01/14(日) 20:50:000019デフォルトの名無しさん
2007/01/14(日) 20:51:080020デフォルトの名無しさん
2007/01/14(日) 21:17:200021デフォルトの名無しさん
2007/01/14(日) 21:23:390022デフォルトの名無しさん
2007/01/14(日) 21:28:08もちろんインスタンス
0023デフォルトの名無しさん
2007/01/14(日) 21:35:24オブジェクト=メモリ上の状態
0024デフォルトの名無しさん
2007/01/14(日) 21:54:020025デフォルトの名無しさん
2007/01/14(日) 21:54:420026デフォルトの名無しさん
2007/01/14(日) 21:55:53データベースオブジェクトという言葉もある
0027デフォルトの名無しさん
2007/01/14(日) 22:03:360028デフォルトの名無しさん
2007/01/14(日) 22:04:31鋳物=インスタンス
どっちもオブジェクト
0029デフォルトの名無しさん
2007/01/14(日) 22:05:120030デフォルトの名無しさん
2007/01/14(日) 22:06:220031デフォルトの名無しさん
2007/01/14(日) 22:08:11オブジェクトとは何か?
インスタンスとは何か?
だろ?
0032デフォルトの名無しさん
2007/01/14(日) 22:08:340033デフォルトの名無しさん
2007/01/14(日) 22:10:15プリミティブ型インスタンス
結局全部オブジェクト。
0034デフォルトの名無しさん
2007/01/14(日) 22:11:41ってことだな
0035デフォルトの名無しさん
2007/01/14(日) 22:14:450036デフォルトの名無しさん
2007/01/14(日) 22:16:070037デフォルトの名無しさん
2007/01/14(日) 22:25:200038デフォルトの名無しさん
2007/01/14(日) 22:30:110039デフォルトの名無しさん
2007/01/14(日) 22:32:33オレにもありました
0040デフォルトの名無しさん
2007/01/14(日) 22:39:36たしかに私はC++とJavaしか嗜んでおりません
0041デフォルトの名無しさん
2007/01/14(日) 22:50:200042デフォルトの名無しさん
2007/01/14(日) 23:13:26あとは使い手の問題
0043デフォルトの名無しさん
2007/01/14(日) 23:53:220044デフォルトの名無しさん
2007/01/14(日) 23:58:57JRubyとかいうのがもしかしたら、将来最強になるかも。ねーよw
0045デフォルトの名無しさん
2007/01/15(月) 01:03:06なんかどっちでも書いてあったりするけど、実体だよなぁ?
0046デフォルトの名無しさん
2007/01/15(月) 01:10:140047デフォルトの名無しさん
2007/01/15(月) 01:13:30お前さんはまだわけぇから言いたいこともあるべぇ
だべな、派遣問題を口にするとムキになって怒る者がおるでよぉ
問題の指摘は駄目だっぺぇ
派遣のことは口にしちゃなんねぇ
この村みたいな糞田舎で悲惨な生活するためにはよぉ
北朝鮮と一緒でよ、駄目のものを駄目と言ってはなんねえだべさ
0048デフォルトの名無しさん
2007/01/15(月) 02:12:17インスタンス
http://ja.wikipedia.org/wiki/%E3%82%A4%E3%83%B3%E3%82%B9%E3%82%BF%E3%83%B3%E3%82%B9
計算機科学でのインスタンス(instance)とは、オブジェクトの実体のことをいう。
instanceとは、英語で「実例」を意味する。オブジェクト指向言語においては、
多くの場合クラスと呼ばれるものを元に作成したオブジェクトの実体を指す。
データモデルやオブジェクト指向設計においても用いられる用語である。
インスタンスを生成することをインスタンス化(instantiate)という。
(略)
このように、同じオブジェクトでもメソッドなどの動きによってオブジェクトの状態が異なる。
そのときの一つ一つの状態のことをインスタンスと呼ぶ。
一般には、インスタンスはオブジェクトと同義として扱う事が多い。
0049デフォルトの名無しさん
2007/01/15(月) 02:19:20大丈夫かこの説明・・・
0050デフォルトの名無しさん
2007/01/15(月) 02:19:28まんこ=オブジェクト
俺のチンコ=インスタンス
読めのマンコ=インスタンス
セクロス=メソッド
ちんこまんこにセクロスメソッドはあるけど
ちんこまんこだけではセクロスできない。
俺のチンコと読めのマンコというインスタンスがあってはじめて
セクロスメソッドは可能なのである。
0051デフォルトの名無しさん
2007/01/15(月) 02:50:150052デフォルトの名無しさん
2007/01/15(月) 02:51:14むしろ非常にうまい説明だろ
というか、OOPLだとしても言語によって用語の使い方が微妙に違ったりするが・・・
0053デフォルトの名無しさん
2007/01/15(月) 03:06:09きになるなら、Wikiを修正してみてはどうだろう?
0054デフォルトの名無しさん
2007/01/15(月) 03:57:43クラス(鋳型)からできたインスタンス(鋳物)にメッセージを送れば反応する。インスタンスはオブジェクト。
クラスにnewというメッセージを送ると反応する。クラスもオブジェクト。
オブジェクトOSならウィンドウにメッセージを送れば反応する。ウィンドウはオブジェクト。
たぶん、クラス=newメソッドがあるオブジェクトと説明しないから皆こんがらがる。
もちろんnewメソッドがないクラスもある。
0055デフォルトの名無しさん
2007/01/15(月) 07:56:31その例はいい!
それでWiki書き換えてw
0056デフォルトの名無しさん
2007/01/15(月) 08:07:05は違和感ある
インスタンスは、オブジェクトの状態を表す
は、ある意味そうだ
オブジェクトとインスタンスは対象が同じだから同じものとして
扱われる事もあるけど、意味は違う。
「ちんこ」は、その物体を表しているにすぎないからオブジェクト。
「俺のちんこ」は、「ちんこ」が「俺」上で稼動状態にあるからインスタンス。
0057デフォルトの名無しさん
2007/01/15(月) 08:08:04クラス=オブジェクトの仕様みたいの
オブジェクト=クラスの実体化したもの
インスタンス=オブジェクトの別名
じゃないの?
0058デフォルトの名無しさん
2007/01/15(月) 08:11:59インスタンス=稼動状態のオブジェクト
0059デフォルトの名無しさん
2007/01/15(月) 08:20:41インスタンス=エンジンがかかってる車
一般に、両者は「車」と呼ばれて区別しないが、「車」に付随する状態があるかないかの違いがある
0060デフォルトの名無しさん
2007/01/15(月) 08:23:46インスタンス=オブジェクトのメンバの変数の状態
のことか
車だと
エンジンがかかっている/かかっていない
窓が開いている/開いていない
みたいな、その時々の情報まで考慮したオブジェクトのこと
0061デフォルトの名無しさん
2007/01/15(月) 08:29:23念のため、「実行中ではない」=オブジェクトではない
0062デフォルトの名無しさん
2007/01/15(月) 08:42:59クラスとかそういうのに関係なく単に実態を示すのがオブジェクト。
0063デフォルトの名無しさん
2007/01/15(月) 12:10:590064デフォルトの名無しさん
2007/01/15(月) 12:51:06・さらに、自分の方言が標準語だと思い込んでるヤツが他の方言を訂正したがる
0065デフォルトの名無しさん
2007/01/15(月) 13:53:35馬鹿ばっかりだからマジレスしておく
クラスをインスタンス化したオブジェクトはエンティティだ
0066デフォルトの名無しさん
2007/01/15(月) 15:53:26> 鋳型=クラス
> 鋳物=インスタンス
それはいいとして、
> どっちもオブジェクト
それはちょっと違うと思う。オブジェクトになるものはSingletonのような
staticなインスタンスしか生成できないクラスだけなものだけ。
Singletonなオブジェクトは、インスタンスにしても一切変更できないし
どんな場合でも確実にインスタンス=オブジェクト
という状態が成り立つ。
不変クラスのオブジェクトについても同様に
インスタンス=オブジェクト
の関係が成り立つ。
現実世界を基準にすれば、別の意味では、森羅万象を構成するすべての
ものという意味で、オブジェクトと言うことになるけれども
プログラムの中ではちょっと違うかな。
一方、可変クラスのオブジェクトの場合は、
オブジェクトを生成したとき、そのオブジェクトのインスタンスは、
生成後も「可変クラスのオブジェクト」つまり「可変オブジェクト」ということで変化しうるので
同じオブジェクトでも状態が変化するから一つのオブジェクトでも異なるインスタンスを持つことができる。
よって、可変クラスのオブジェクトの場合は
インスタンス≠オブジェクト
という関係になる。
0067デフォルトの名無しさん
2007/01/15(月) 15:55:39オブジェクトとインスタンスとの関係は 1対多
クラスとオブジェクトとの関係も1対多
●不変クラスの場合
インスタンスを生成後、インスタンスを一切変更できないため
オブジェクトとインスタンスとの関係は1対1
クラスとオブジェクトとの関係は1対多
●Singletonの場合
インスタンスを一つしか生成できないため
(オブジェクトも一つしか生成できない)
オブジェクトとインスタンスとの関係は1対1
クラスとオブジェクトとの関係も1対1
0068デフォルトの名無しさん
2007/01/15(月) 15:56:38だめだろ。
つうか>>50の場合
ちんこまんこはクラスで
俺のちんこまんこはオブジェクトまたはインスタンス
0069デフォルトの名無しさん
2007/01/15(月) 16:03:09> オブジェクトとインスタンスって同じ意味だと思ってた?違うの?
> クラス=オブジェクトの仕様みたいの
それは合っている。
例としてここでは「人間」
> オブジェクト=クラスの実体化したもの
それは合っている。だが、厳密には、実態と言ってもそのとき
その瞬間の実体を表すものとはいえない。
例として、ここでは「ある人間A」。
ある人間Aは0歳の乳児であっても10代の少年であっても
20代の若者であっても40代の中年であっても
100歳の老人であっても、とにかく「ある人間A」というオブジェクトを表す。
ゆえに、newで生成したら、そいつはnullになるか再度newされたりFactoryなどから
makeされるまでずっと同じオブジェクト。
> インスタンス=オブジェクトの別名
> じゃないの?
違う。インスタンス=オブジェクトの実態
そのときその瞬間の実体を表すもの。
例として、ここでは「ある人間Aが50歳の時の姿」
newで生成されてから、インスタンスメソッドによって変更されれば、異なるインスタンスと見なされる。
0070デフォルトの名無しさん
2007/01/15(月) 16:04:07オブジェクト指向プログラミングになれてくると
確かにどうでもいいが、初心者が気にするようなので。
0071デフォルトの名無しさん
2007/01/15(月) 16:04:32そこでUMLの出番だ
0072デフォルトの名無しさん
2007/01/15(月) 16:05:08それも良いが。
実体をわざわざエンティティ
と英訳しただけに見えてしまうが
0073デフォルトの名無しさん
2007/01/15(月) 16:48:18クラス>インスタンス>メソッド
だと思ってたんだけどちんこまんこ議論見てて自信なくなってきた
0074デフォルトの名無しさん
2007/01/15(月) 16:49:14○クラス>インスタンス>オブジェクト
0075デフォルトの名無しさん
2007/01/15(月) 16:58:34メモリのなかにオブジェクトは存在しない
BY どっかのだれか
0076デフォルトの名無しさん
2007/01/15(月) 17:25:19> 俺はあえて抽象度合で区別すると
> クラス>インスタンス>メソッド
メソッドと、クラス・インスタンスは畑違いだろ。
抽象度なら
クラス > オブジェクト > インスタンス
確かにメソッドも無形のものだが・・・・
0077デフォルトの名無しさん
2007/01/15(月) 17:25:31あ、訂正していたか
0078デフォルトの名無しさん
2007/01/15(月) 17:26:02インスタンスは存在するが、クラスは、存在方法が
異なる
0079デフォルトの名無しさん
2007/01/15(月) 17:28:37そもそもその文章の中の「実体」という日本語が指す意味が俺には分からんですたい
0080デフォルトの名無しさん
2007/01/15(月) 17:31:310081デフォルトの名無しさん
2007/01/15(月) 17:32:00俺も理解に苦しんだ
0082デフォルトの名無しさん
2007/01/15(月) 17:32:440083デフォルトの名無しさん
2007/01/15(月) 17:36:40インスタンス>オブジェクト
って印象が付いたのかもな
0084デフォルトの名無しさん
2007/01/15(月) 17:38:190085デフォルトの名無しさん
2007/01/15(月) 18:08:03>>50 ベースでのトークは無理でしょうか?
ちなみに妹のマムコはインスタンスでいいんでしょうか?
0086デフォルトの名無しさん
2007/01/15(月) 18:24:35それで考えると、
「ちんこ」はオブジェクト
「俺の」はメモリ
メモリの上にオブジェクトが乗っかってる状態がインスタンス。
つまりメモリの上に乗った「瞬間」にそれをオブジェクトとは呼ばなくなると言うことか。
みかんはオブジェクト、そのみかんがアルミ缶の上に乗った状態をアルミカン-EXと名付ける。
アルミ缶の上にあるのはたしかにみかんだが、もはやそのみかんとアルミ缶を別々のものとして
名付けることは無意味な事。それそのものがアルミカン-EXなのだ。
0087デフォルトの名無しさん
2007/01/15(月) 18:29:580088デフォルトの名無しさん
2007/01/15(月) 18:52:35たとえば
int x = 1;
という変数があったとしよう。
これのxはJavaではオブジェクトではなくプリミティブ型の変数であるが、
仮にオブジェクトだとしてみようするt。
オブジェクトxのインスタンスは1ということになる。
x=2;としたら
xのインスタンスは2ということだ。
0089デフォルトの名無しさん
2007/01/15(月) 19:23:13=メソッドが定義されているかによる
0090デフォルトの名無しさん
2007/01/15(月) 19:23:59ちがうよw
0091デフォルトの名無しさん
2007/01/15(月) 19:25:480092デフォルトの名無しさん
2007/01/15(月) 19:28:140093デフォルトの名無しさん
2007/01/15(月) 19:31:13プリミティブ変数。ここに限界がある。
0094デフォルトの名無しさん
2007/01/15(月) 19:33:26Integer.class != int.class、でもリフレクションのときは
Integerを放り込むあたりちょっとだけ破綻してる。
0095デフォルトの名無しさん
2007/01/15(月) 19:53:17誤解が生まれるな。
0096デフォルトの名無しさん
2007/01/15(月) 20:01:18Integer x = new Integer(1);とすればオブジェクト
今なら、Integer x = 1;
でもいい
0097デフォルトの名無しさん
2007/01/15(月) 20:08:300098デフォルトの名無しさん
2007/01/15(月) 20:10:49Cも変数のことオブジェクトって言うことがある。
英語の仕様書かなんかに書いてあった。
0099デフォルトの名無しさん
2007/01/15(月) 20:14:00クラスオブジェクトからインスタンスオブジェクトを作るって話で、Javascriptだとprototype指向でクラスとインスタンスの区別が無いからオブジェクトと呼ぶと。
0100デフォルトの名無しさん
2007/01/15(月) 20:17:170101デフォルトの名無しさん
2007/01/15(月) 20:24:050102デフォルトの名無しさん
2007/01/15(月) 20:27:33Ruby*笑*
0103デフォルトの名無しさん
2007/01/15(月) 20:48:56これみて光が見えた初心者ですが、
この考え方は本当なんでしょうか?ネタなんでしょうか?
0104デフォルトの名無しさん
2007/01/15(月) 20:53:25何の光だよ。
JAVAやりたいならここ覘いてるより本を読んだほうがいいよ!
0105デフォルトの名無しさん
2007/01/15(月) 20:54:55プリミティブ型で出来ること、出来ないこと
この4パターンを試してみればわかるんじゃまいか?
0106デフォルトの名無しさん
2007/01/15(月) 20:56:030107デフォルトの名無しさん
2007/01/15(月) 20:57:22rubyは関数がオブジェクトではないが、論理的一貫性よりそっちのほうがいいや。
0108デフォルトの名無しさん
2007/01/15(月) 20:57:49てきとうに計算してみるとか。
でも一見オブジェクトで計算しているように見えちゃうから
やっぱりメモリーを考慮するレベルの処理をやってみないとわからんのとちがう?
0109デフォルトの名無しさん
2007/01/15(月) 21:02:42ローカル変数とかスタック領域を利用するのがプリミティブ型かなとか思うんだけど
オブジェクトやクラスはメモリのどのあたり使うんだろう。
テキスト領域にクラス、mallocで開放されるデータ領域にオブジェ…
あ、このスレによると、オブジェクトの段階ではメモリーに乗らないのか
0110デフォルトの名無しさん
2007/01/15(月) 21:11:07じゃ、他の言語の例も追記してくれ
0111デフォルトの名無しさん
2007/01/15(月) 21:13:460112デフォルトの名無しさん
2007/01/15(月) 21:14:05概念の問題
0113デフォルトの名無しさん
2007/01/15(月) 21:19:04http://itpro.nikkeibp.co.jp/free/NIP/NIPCOLUMN/20021126/1/
0114デフォルトの名無しさん
2007/01/15(月) 21:22:26「オブジェクト」という言葉が指してる内容が言語によって違うし
本質的に必要ない気がする・・
0115デフォルトの名無しさん
2007/01/15(月) 21:25:260116デフォルトの名無しさん
2007/01/15(月) 21:31:490117デフォルトの名無しさん
2007/01/15(月) 21:31:510118デフォルトの名無しさん
2007/01/15(月) 22:35:26結論でた?
0119デフォルトの名無しさん
2007/01/15(月) 22:41:37本当。
後者は、Java SE 5から可能になった記法。
今まで x = new Integer(1);
しなければIntegerオブジェクトを生成できなかったところを
x = 1;と書いただけで
x = new Integer(1);と書いたのと同じ効果になり、コード量が若干短くなった。
シンタックスシュガー
0120デフォルトの名無しさん
2007/01/15(月) 22:43:45ついでにいうと、メソッドも無い。
それに、参照型ではないし。
これはJavaに限った話であってC#はまた別でもっと複雑。
0121デフォルトの名無しさん
2007/01/15(月) 22:45:06Javaでは
プリミティブ型やstatic変数はすべてスタック領域で処理される。
参照型であるオブジェクトはすべてヒープ領域で生成され、
時と場合に応じてスタック領域を参照する。
0122デフォルトの名無しさん
2007/01/15(月) 22:53:30そういう観点で考えてはいかんだろw?
0123デフォルトの名無しさん
2007/01/15(月) 22:58:271.toString();
0124デフォルトの名無しさん
2007/01/15(月) 23:02:25じゃあ、お主が助言してくれ。
皆、それぞれ、得意不得意言語ってものがあるんだろうから
0125デフォルトの名無しさん
2007/01/15(月) 23:18:00それって変数xそのものがオブジェクトなの?
xが参照している先にあるモノがオブジェクトなんじゃないの?
0126デフォルトの名無しさん
2007/01/15(月) 23:24:45実体化でいーじゃねーか
オブジェクトも物でいーじゃねーか
クラスがムズイな、どーせプログラムなんだし設計図でいーんじゃね?
設計図をもとに実体化した物を使って組み立てるのがオブジェクト指向、あーすっきり
0127デフォルトの名無しさん
2007/01/15(月) 23:27:45クラス=鋳型 がいいとおもう。
…が、そうすると インスタンス=鋳物?
0128デフォルトの名無しさん
2007/01/15(月) 23:28:28xそのものがオブジェクト。先に書いてあるものはインスタンスに近い
0129デフォルトの名無しさん
2007/01/15(月) 23:28:58Instantiationという英語があるから。
それに対応する「インスタンス化」という日本語が必要になる。
0130デフォルトの名無しさん
2007/01/15(月) 23:29:030131デフォルトの名無しさん
2007/01/15(月) 23:33:22Hoge h1 = new Hoge();
だったら、h1は『オブジェクト』であり、『Hogeクラスのインスタンス』である。
と言える。
相対的であるのだから、『インスタンス』と単発で言っても、そこには暗黙的にインスタンス化をされたメタ的要素(クラスやメタクラス)が存在する。
『オブジェクト』は、単発で言っても、特にインスタンス化をされたメタ的要素を意識する必要がない。
俺は『○○のインスタンス』のように、必ずメタ的要素と組にして用いてるが。
0132デフォルトの名無しさん
2007/01/15(月) 23:33:29インスタンスは鋳物でいいだろう。
だがその鋳物オブジェクトも時と場合により変化する。
変化すれば異なるインスタンスになる。
0133デフォルトの名無しさん
2007/01/15(月) 23:35:16スタック領域を直接利用するのはプリミティブ型のみでおk?
クラスやインスタンスやオブジェクトや色々あるけど、
そのへんのものはデータ領域の中のヒープ領域あたりでうごめいてて、
必要に応じてスタック領域のプリミティブ型を参照したりして利用する。
でもクラスやインスタンスやオブジェクトは、「原則として」直にスタック領域に
侵入することはない。
0134デフォルトの名無しさん
2007/01/15(月) 23:40:46「状態」と「物」との相対的な関係の総称だからじゃないの?
車はオブジェクト
走っている車はインスタンス
ちんこはオブジェクト
俺のちんこはインスタンス
走っている車だろうが俺のちんこだろうが
車は車。ちんこはちんこ。
でも、「走っている」とか「俺の」とか、修飾的な状態が付随したとき、それをインスタンスと呼ぶと。
0135デフォルトの名無しさん
2007/01/15(月) 23:42:11鋳物の容器A、Bがあって、Aには水が、Bには黄金水が入っているとかいう感じか。
0136デフォルトの名無しさん
2007/01/15(月) 23:43:51チンコクラス チンコ 俺のチンコ
車クラス 車 走ってる車
0137デフォルトの名無しさん
2007/01/15(月) 23:46:22UMLだと、「オブジェクト図」「コラボレーション図」「シーケンス図」ってものがある。
そのときにオブジェクトを表すものが角が丸い箱や四角い箱で表現されるが
オブジェクト図では同じオブジェクトであっても中身が異なれば別の箱で表現する。
http://www.atmarkit.co.jp/im/carc/serial/object07/object07.html
こんな感じに
http://www.atmarkit.co.jp/im/carc/serial/renew_uml07/renew_uml07.html
http://www.atmarkit.co.jp/fjava/devs/renew_uml07/fig7_2.gif
0138デフォルトの名無しさん
2007/01/15(月) 23:46:34オブジェクトとインスタンスはイメージ掴みにくいんだよ
以下各言語ごとに解説コード付きで説明よろしく
0139デフォルトの名無しさん
2007/01/15(月) 23:48:15インスタンス的にはありえないが
オブジェクト的にはありえる
「火」というものが「燃える」という状態と関係無しに定義できるならね。
0140デフォルトの名無しさん
2007/01/15(月) 23:51:07ぬるぽ
0141デフォルトの名無しさん
2007/01/15(月) 23:51:40> 理解できるところまでの足場をかためたいんだけど、
> スタック領域を直接利用するのはプリミティブ型のみでおk?
NO. クラスの中に含まれるstaticフィールドもスタック領域に確保される。
ゆえにSingletonの中身は必ずスタック領域に入る。
Class.forName()で呼び出されるJDBCドライバも同様。
ヒープの中のオブジェクトは、直接または間接的にスタック領域から指されている。
オブジェクトや配列はヒープ領域にしか確保されない。
つまりポインタ。
0142デフォルトの名無しさん
2007/01/15(月) 23:57:01鋳型で作った鋳物は使っているうちに変化する。現実世界では特に。
DNAを持った受精卵から生まれた生き物は成長し、老化する。それと同じ。
この世に、剛体と呼ばれるものが存在すれば、インスタンスは一切変形しない。
だが、そんな理想の物体はこの世に存在しない。クラスというものも、実体としては存在し得ないイデアである。
オブジェクトはクラスと違って実在できるが、インスタンスという状態を持っていて、常に変化する。
誰かの写真を撮ったとき、その人のインスタンスの姿が写真となって映し出される。
その後、10年、20年経過してから取り直すと、異なるインスタンスを写真が見せてくれる。
二つの写真を比較するとインスタンスが異なることがわかる。
人間 : クラス
Aという名前の人間 : オブジェクト
Aという名前の人間が移っている写真 :Aという名前の人間のインスタンスを表示している
0143デフォルトの名無しさん
2007/01/15(月) 23:57:54抽象、具体は、クラスの継承関係を表すときに使うのが相応しい。
よってちょっと違う。
0144デフォルトの名無しさん
2007/01/15(月) 23:58:41つ[Wikipedia]
0145デフォルトの名無しさん
2007/01/16(火) 00:02:15static
「同じクラスから生成したオブジェクトでstaticを付けたフィールドは値が同一になる」
って書いてあるから、スタック領域で頻繁に値が更新されることを見込んでスタック領域に
割り当てたのかな…
0146デフォルトの名無しさん
2007/01/16(火) 00:08:260147デフォルトの名無しさん
2007/01/16(火) 00:11:29クラスかと思ってたああああああああああ
0148デフォルトの名無しさん
2007/01/16(火) 00:18:450149デフォルトの名無しさん
2007/01/16(火) 00:46:33> staticフィールドがスタック領域を使う理由はなんだろう…
> static
> 「同じクラスから生成したオブジェクトでstaticを付けたフィールドは値が同一になる」
> って書いてあるから、スタック領域で頻繁に値が更新されることを見込んでスタック領域に
> 割り当てたのかな…
なんじゃそりゃ。staticフィールドとインスタンスフィールドとの違いわかってないだろ。
そんなことも解らないようじゃ、オマエサンは
Servletでstatic変数定義して銀行口座二重引き落としというとんでもないバグを作りそうだな。
ヒープに置く必要がないからスタックに置いてるだけだろうが。
インスタンスフィールドは仕様上どうしてもヒープ領域に置かないといけないから
仕方が無くそこに置いているだけ。
staticでいいならstaticに置くことでパフォーマンスを改善できる。
0150デフォルトの名無しさん
2007/01/16(火) 00:46:46形を見ればメソッドだとわかるだろ
0151デフォルトの名無しさん
2007/01/16(火) 00:47:06それはなんだ。
どういうことか気になってきたぞw
0152デフォルトの名無しさん
2007/01/16(火) 01:03:32static修飾子をつけたフィールドがスタック領域
finalやその他の修飾子を付けたフィールドはスタック以外の領域
だと思ったの。
0153デフォルトの名無しさん
2007/01/16(火) 01:09:570154デフォルトの名無しさん
2007/01/16(火) 01:11:26中小具象はともかく
下の2行は正しい!
0155デフォルトの名無しさん
2007/01/16(火) 05:11:27こ の ス レ レ ベ ル 低 す ぎ w w w
0156デフォルトの名無しさん
2007/01/16(火) 05:13:12無理だろうけどねw
0157デフォルトの名無しさん
2007/01/16(火) 05:20:51口先だけのお前にはレベルの高い議論は無理。
文句あるならWikipedia行進してみろやw
0158デフォルトの名無しさん
2007/01/16(火) 05:42:34まず、Smalltalk-72が35年前、Simula67なんて40年前にできてるのに、なんでオブジェクトの説明にデザインパターン>>141が出てくるんだ?
メモリだって磁気コアメモリの時代にヒープ?スタック?
スタックレジスタもないのにスタックと言われても…
しかも、この時代はオブジェクトなんて単語は使われてなかった。
「オブジェクト」という単語が論文に初めて書かれたのが1978年の1月。
だいたい、なんでオブジェクト指向の発明者でもない一般利用者がオブジェクトを定義するかね。
俺の定義は発明者のソースだけ。
1978年に書かれた論文
↓
http://portal.acm.org/citation.cfm?id=512762&jmp=references&dl=GUIDE&dl=ACM
0159デフォルトの名無しさん
2007/01/16(火) 07:19:3940年前のものを引っ張り出されてコレが定義たといわれても・・・・
言葉の意味なんて時とともに変化していくモンしょw
いまオブジェクト指向の第一人者だって40年前は一般利用者。
発想が未だにコボルしかやったことの無いコボラーと同じw
0160デフォルトの名無しさん
2007/01/16(火) 07:28:47一人でもともとの定義はとかぶつぶつ言うタイプだろ
0161デフォルトの名無しさん
2007/01/16(火) 07:46:38>>158のはだからどうした? 以外の感想は持てないなあ。
その由来が現在の定義にどう影響してくるかまるで書いてないじゃない。
「どうだおまえら知ってるか」程度の情報じゃあね。
ま、現在の状況がキャッチアップできてないんだろうけどもね。
0162デフォルトの名無しさん
2007/01/16(火) 12:27:15「純粋」の意味は、誰のどんな「オブジェクト指向」に乗っかるかによると思う。
Smalltalkはともかく、いろんな言語のイイトコどりのRubyが純粋だなんてことはありえない。
Rubyなんかより、後述の後者においてならJavaのほうがよっぽど“純粋”だ。
一般には、「オブジェクト指向」(特に「〜プログラミング」において)で代表的なのは、
* アラン・ケイの「メッセージングによる表現や設計」
* ビヤーネ・ストラウストラップの「ユーザー定義型をクラスを使って実現する手法」
前者はいわゆる「オブジェクト同士がメッセージをやりとりして…」とかいうやつで、
後者はいわゆる「カプセル化、継承、ポリモーフィズム」に象徴される(メイヤーとかも原則こちら)。
両者は教科書レベルでもごっちゃにされているけれど、本来は出自も切り口も頓着する点も異なる。
「良質」のOOPLかどうかの言語間宗教戦争みたいなのも、どちらに軸足を置くかという違いに過ぎない。
158の言いたいのは、たぶん前者の「オブジェクト指向」における「オブジェクト」の要件。
つまり、オブジェクトとは、メッセージの「レシーバ」でなくてはならない…と。
後者の立場ではそんなのは関係なくて、再三出てきているようにクラスの「インスンタス」であればよい。
それと、後者の「オブジェクト指向」では、すべてがオブジェクトである必要はない。
むしろ、クラスにより定義した新しいユーザー定義型が、基本型と同様、安全かつ普遍的に使えることが重要。
0163デフォルトの名無しさん
2007/01/16(火) 12:44:290164デフォルトの名無しさん
2007/01/16(火) 12:54:11↓クラスのインスタンス化
俺のチンコ 嫁のマンコ=インスタンス
チンコ マンコ 俺のチンコ 嫁のマンコ お前のチンコ 幼女のマンコ = オブジェクト
おなにー セクロス=メソッド
0165デフォルトの名無しさん
2007/01/16(火) 13:04:28オブジェクトからインスタンスになる過程をインスタンス化みたいな言葉で
表現できればすっきりする。
むしろ日本語の方がこのへん得意なんじゃね?
クラス→(実体化)→オブジェクト
オブジェクト→(実態化)→インスタンス
実体化はnew演算子で明示的に理解できるけど、オブジェクト→インスタンスの過程はよくわからないよね。
車が「走る」状態は、時速何キロメートル以上の速度で移動している状態とかそのへん定義できないと。
「うさぎと亀は永久にゴールできない」とかの数学者の偏屈にマジレスできるレベルじゃないと理解することは難しい。
0166デフォルトの名無しさん
2007/01/16(火) 13:13:45日本はかつてアメ車をクラスとして日本車を作った
クラス=アメ車
オブジェクト=日本車
現在は特アが日本車をクラスとして特ア車を作り始めている
クラス=日本車
オブジェクト=特ア車
つまり日本車はオブジェクトでもあり、クラスでもある。
また、自動車の起源はヨーロッパであるので、そういう意味ではアメ車はオブジェクトであり、
特ア車は将来アフリカやアジア諸国で参考にされた場合、クラスとなり得る可能性もある。
0167デフォルトの名無しさん
2007/01/16(火) 13:20:04またオブジェクトの別名がインスタンスであると仮定すると、本質的には
オブジェクト=インスタンス
よって
クラス=インスタンス //
ん?
0168デフォルトの名無しさん
2007/01/16(火) 13:39:36出席番号1番というインスタンス。
0169デフォルトの名無しさん
2007/01/16(火) 13:42:36どの市販本もオブジェクトとクラスとインスタンスの違いを説明しているが、かなり適当だ。
そのうちわかるよ、みたいな感じだ。
確かに、そのうちわかってくるが、わからない人は何年もわからないまま放置されることもあるだろう。
0170デフォルトの名無しさん
2007/01/16(火) 13:58:50数学で微分でも、微分の定義を初めから説明しても分かるはず無いし。
y=2x^2
y'=4x
とか、とりあえず練習問題の数こなしてその後に改めて定義を見ると
理解しやすいし。
0171デフォルトの名無しさん
2007/01/16(火) 14:04:14インスタンス:製品
それらはオブジェクト(物体)と言えます、じゃいかんの?
0172デフォルトの名無しさん
2007/01/16(火) 14:17:30クラス=オブジェクトの仕様みたいの
オブジェクト=クラスの実体化したもの(メモリー中にその実体のための個別の領域が割り当てられている)
インスタンス=(メモリー中などに)存在しているオブジェクトのメンバの変数の状態までを考慮したもの
一般的には
オブジェクト=インスタンス=クラスの実体化したもの
で十分
0173デフォルトの名無しさん
2007/01/16(火) 15:02:23> 俺は>>155じゃないが…
> まず、Smalltalk-72が35年前、Simula67なんて40年前にできてるのに、なんでオブジェクトの説明にデザインパターン>>141が出てくるんだ?
> メモリだって磁気コアメモリの時代にヒープ?スタック?
> スタックレジスタもないのにスタックと言われても…
古臭w
何時の時代の話だよw >>141のどこにデザインパターンが出ているんだw
Java基準で十分なんだよ。今はオブジェクト指向といえばJavaと言われている時代なんだから。
UMLの用語もJava用語を基準に策定されている。
0174デフォルトの名無しさん
2007/01/16(火) 15:03:41ヒュンダイ(現代)や中国のパクリ車両みたいな糞車両を想像したじゃねえかw
0175デフォルトの名無しさん
2007/01/16(火) 15:07:50静的なもの
クラス
動的なもの
(1) 今まさに動的なものに変わった瞬間 インスタンス
(2) とっくに動的してますが、なにか? オブジェクト
0176デフォルトの名無しさん
2007/01/16(火) 16:37:330177デフォルトの名無しさん
2007/01/16(火) 17:08:45UMLは標準の統一モデリング言語なんだから
UMLの基準に沿うべきで
プロトタイプベースオブジェクト指向の考え方は無視すべき
0178158 ◆OO/OVgtJP.
2007/01/16(火) 19:45:23あえて言えば、JavaやUMLならオブジェクト=クラスでしょう。
クラスベースでクラス=非オブジェクトの考えなら、そのオブジェクト指向の土台が崩れるでしょう。
もし、考えは関係なく、「オブジェクト」の文字だけが重要なら、
ファーストクラスオブジェクトもオブジェクトになってしまうでしょう。
しかも、クラスのオブジェクトでしょう。
ちなみに、@ITのファーストクラスオブジェクトの説明は、新説の誕生でしょう。
0179デフォルトの名無しさん
2007/01/16(火) 21:12:53> >>176-177
> あえて言えば、JavaやUMLならオブジェクト=クラスでしょう。
そんな大嘘はいかん。JavaやUMLにはそんなもんない。
0180デフォルトの名無しさん
2007/01/16(火) 21:16:51ネオと戦う大量のスミスたちは元となったスミスのインスタンスという名のオブジェクト。
0181デフォルトの名無しさん
2007/01/16(火) 21:18:040182デフォルトの名無しさん
2007/01/16(火) 21:18:20Class clazz = Object.class
Object o = new Object();
「クラスは(is a)オブジェクトである」
「インスタンスは(is a)オブジェクトである」
てわけ。
0183デフォルトの名無しさん
2007/01/16(火) 21:18:41もっとわかりやすくちんことまんこで例えてよ
0184デフォルトの名無しさん
2007/01/16(火) 21:18:54ネオのクラスは スミスのインスタンスとして上書きされたが、
スミスのインスタンスとなったネオは、スミス本体のクラスにアクセスし、そのクラスを削除したことにより、
大量のスミスのインスタンスオブジェクトは マトリックスから姿を消した。
0185デフォルトの名無しさん
2007/01/16(火) 21:21:36叔母とか従姉は死なないんじゃないの?
スミスっていきなり母叔母従姉のスーパープレイしやがったの?
うらやましすぎじゃね?
0186デフォルトの名無しさん
2007/01/16(火) 21:22:32↓
影分身の術
↓
インスタンス ナルト = インスタンスオブジェクト
0187デフォルトの名無しさん
2007/01/16(火) 21:25:430188デフォルトの名無しさん
2007/01/16(火) 21:28:53JAVAじゃね?w
っかインスタンスオブジェクトって便利だよなぁ。
BASIC房な俺は配列変数を駆使しまくりんぐww
0189デフォルトの名無しさん
2007/01/16(火) 21:30:48マジかよ裏ルート君
JAVAで理解できなければ救いようが無いって事かよ
ざけんじゃねえよ
0190デフォルトの名無しさん
2007/01/16(火) 21:33:09これが何を言ってるのか全く分からない by script系言語使い
0191デフォルトの名無しさん
2007/01/16(火) 21:33:55ttp://www.atmarkit.co.jp/fjava/rensai2/javaent04/javaent04.html
>>「電気製品」クラスを継承して 〜(中略)〜 「カラーテレビ」クラスを作る
>>特にどの本というわけではないのですが、
>>どうしてこういう例え話が出てきてしまうのか、
>>私にはさっぱり分かりません。
>>クラスの概念を哲学用語か何かのように説明するの
>>はいいかげんやめにしてほしいものです。
いまから始めたので見ているサイトなんですが
すごい断言しているんですが
この考えでいいんでしょうか?
0192デフォルトの名無しさん
2007/01/16(火) 21:38:290193デフォルトの名無しさん
2007/01/16(火) 21:40:04間違いじゃないからいいんじゃないの?
初学者は逆に言いきってる感じの文献参考にした方がとっつきやすいだろうし。
ただ、厳密な意味では違う場合もあるということを頭の片隅にいつも置いておくことは必要。
そういう可能性を無視して我が道を行きすぎると、頭の硬いプログラマーになる。
お薦めとして、初学の場合はサイトで勉強するより本で勉強するべき。
俺の経験上の話だけど、定着度が明らかに違う。
0194デフォルトの名無しさん
2007/01/16(火) 21:40:34その後メモリの使い方で説明してんのな。余計わかんねーよタコwwwwwww
初心者(オブジェクト指向って何?レベルの人)にはカラーテレビ云々の説明でおkだと思う
0195デフォルトの名無しさん
2007/01/16(火) 21:43:29そのサイトで分かりやすい人と、哲学用語でわかりやすい人といると思う。
でも多分そのサイトで分かりやすい人はオブジェクト指向自体向いていないと思う。
0196デフォルトの名無しさん
2007/01/16(火) 21:46:46ほれ。これでわからなかったらマトリックスみなさいww
0197デフォルトの名無しさん
2007/01/16(火) 21:49:19ただ初心者や純粋にJAVAだけの人にはわかりにくいというか、興味わかないだろうね
0198デフォルトの名無しさん
2007/01/16(火) 21:52:200199デフォルトの名無しさん
2007/01/16(火) 21:52:49俺もはじめはそういう類の間違いしてた。
0200191
2007/01/16(火) 21:55:34そうなれるように努めます。
>>193
基本、初心者本で学んでますが、本ではほとんどTVの話でした。
それを全部ぶっ壊せというセンセーショナルな台詞に
ふと目線を奪われました。
>>195
・・・このサイトがわかりやすと思ってしまいました。
>>196
Smith&Neoと加えて前述のチンコの話が結構気に入りました。
ありがとうございます。
0201デフォルトの名無しさん
2007/01/16(火) 21:56:58ネオはインスタンス作らないで クラスオブジェクトとして インスタンススミスと 戦ってます。
>>199
まじか。んじゃ実際なんなんだ??
0202デフォルトの名無しさん
2007/01/16(火) 21:58:420203デフォルトの名無しさん
2007/01/16(火) 22:02:52ネオとスミスの違いは基本的には属性の設定値だけ。
スミスの増殖は、インスタンスに対してcloneメソッド呼んでる感じ。
0204デフォルトの名無しさん
2007/01/16(火) 22:05:22ごめん。今古本屋で300円で買ったJAVAの本読んできた。
ネオとスミスはインターフェースで、 そのネオとスミスの【独立した操作】がクラスだな。
>>202
kwsk
0205デフォルトの名無しさん
2007/01/16(火) 22:05:52ネオ、スミスの設計図=DNAみたいなもの?が、クラスなんじゃねーの?
というか、人間とか、絶対プログラムできないもので喩えるのはよくない気がする。
0206デフォルトの名無しさん
2007/01/16(火) 22:07:22操作があらたな未定義述語になってるけど?さらに状況を複雑にする気か?w
0207デフォルトの名無しさん
2007/01/16(火) 22:09:310209デフォルトの名無しさん
2007/01/16(火) 22:11:22なるほど!!
と思えるのはUnix系OSかじってる人くらいだなw
CとメモリとUnix系OSの知識がそこそこあれば面白い
0210デフォルトの名無しさん
2007/01/16(火) 22:11:430211デフォルトの名無しさん
2007/01/16(火) 22:12:250212デフォルトの名無しさん
2007/01/16(火) 22:18:14オブジェクト指向の、「オブジェクト」ってのは常に
見る人目線で考えればいいんだよ。
極端な話、人間クラスつってもこれで十分(なときがある)
class Human {
public String name;
}
0213デフォルトの名無しさん
2007/01/16(火) 22:19:190214デフォルトの名無しさん
2007/01/16(火) 22:25:54そういう、本来人間という名前を与えるべきでないものを、
その場限りの見方で、人間と呼んでしまうことが、学習者に対して
障害になってる気がする。
もっと、ちゃんと計算機能を持った計算機とか、
掲示板機能をもった掲示板とかで例を示してあげれば、
関数を理解するのとほぼ同じ感覚で理解できるようになるのでは?と思う・・
0215デフォルトの名無しさん
2007/01/16(火) 22:27:29わかって無いのにわかったつもりになってしまうし、しかも肝心なところが全然的外れ。
0216デフォルトの名無しさん
2007/01/16(火) 22:34:450217デフォルトの名無しさん
2007/01/16(火) 22:36:37僕の肛門も拡張されそう。
0218デフォルトの名無しさん
2007/01/16(火) 22:38:18>本来人間という名前を与えるべきでない
ってのがオブジェクト指向的でない気がするんだけど。
0219デフォルトの名無しさん
2007/01/16(火) 22:39:27JAVAだとクラスの付属品みたいな印象だけど、
一般的なPC用語じゃ各種入出力装置やディスプレイだったり
かと思えばAPI的な事だったり、意味派生しすぎ。
PC業界って、基本ボキャ貧なのか?
0220デフォルトの名無しさん
2007/01/16(火) 22:42:36インタフェースは、インタフェースを実装するクラスにとっては何の役にもたたないけど
そのクラスを外から使うやつが使いやすくなる。
つかオブジェクト指向全般にいえるのけど「〜〜する相手」を「扱いやすくする」技術といってよい。
0221デフォルトの名無しさん
2007/01/16(火) 22:49:43そんなことねーよものすげー厳密かつ明瞭だよ。
「2つをつなぐもの」
0222デフォルトの名無しさん
2007/01/16(火) 22:49:58すごいわかりました。
ありがとう。
0223デフォルトの名無しさん
2007/01/16(火) 22:50:32オブジェクト指向的って何?・・・
それぞれのクラスには本来与えるべき名前があると自分は思っていますが?
>>212
のHumanの例だったら、MyStringとかそういう名前以外はおかしいと思う。
なぜなら、Stringを一個記憶するだけのクラスは素のStringとほぼ同じだけの
機能しかもっていないから。
それをHumanと呼んでしまうのは、はっきり言って「人間は名前だけで決まる」
みたいなかなり無理のある比喩が入りすぎてる気がする。
比喩が入ってること自体は全然かまわないけど、初心者に最初に見せる例と
してはすごく不適切だと思う。
0225デフォルトの名無しさん
2007/01/16(火) 22:54:07ほいほいこれみれ。
スミスよりわかりやすいぞ。
0226デフォルトの名無しさん
2007/01/16(火) 22:56:200227デフォルトの名無しさん
2007/01/16(火) 22:57:35(・∀・)イイ!!
0228デフォルトの名無しさん
2007/01/16(火) 22:59:02>それぞれのクラスには本来与えるべき名前があると自分は思っていますが?
コレって、アーキテクチャつか実装よりのクラスの話なら同意なんだけど
ドメインレイヤのクラスつくってるときに、Stringを一個記憶するだけのクラスといっても
MyStringって名づけるのはおかしいよな?
0229デフォルトの名無しさん
2007/01/16(火) 23:12:390230デフォルトの名無しさん
2007/01/16(火) 23:23:37Javaだけとは限らない。C#などにもある。
staticに対してインスタンスという表現もある。
staticフィールド'(クラス変数)、インスタンスフィールド(インスタンスメンバ変数)。
staticメソッド(クラスメソッド)、インスタンスメソッド
0231デフォルトの名無しさん
2007/01/16(火) 23:24:00UMLはJavaで理解することを前提に設計されているわけだが
0232デフォルトの名無しさん
2007/01/16(火) 23:24:36オブジェクト指向の世界ではむかしからそうだ
0233デフォルトの名無しさん
2007/01/16(火) 23:25:12ワロス
0234デフォルトの名無しさん
2007/01/16(火) 23:28:11スミスとネオはオブジェクト
アバターや人間がクラス。
ネオをクラスにしたければ、シングルトンクラスになる。
0235デフォルトの名無しさん
2007/01/16(火) 23:28:56cloneというか他人をpaste, overwriteしてるみたいな
0236デフォルトの名無しさん
2007/01/16(火) 23:30:22デザインパターンの本を読めば解るし
UMLを勉強すればわかる
0237デフォルトの名無しさん
2007/01/16(火) 23:37:58あなたに染められオーバーライド
0238デフォルトの名無しさん
2007/01/16(火) 23:40:36作詞・作曲 ム板の2chネラー
0239デフォルトの名無しさん
2007/01/16(火) 23:41:02ちなみに インターフェースは 「人間」
0240デフォルトの名無しさん
2007/01/16(火) 23:48:360241デフォルトの名無しさん
2007/01/17(水) 00:11:53結論でたー?
0242デフォルトの名無しさん
2007/01/17(水) 00:12:26対有機生命体用ヒューマノイド・インターフェースには
主に、『長門有希』『朝倉涼子』『喜緑江美里』・・・等、多数のクラスが存在する。
別の時間平面上に存在する自分に対し、記憶を共有することが可能。ただし、情報統
合思念体にアクセス許可を申請し、許可を貰わないと行えない。ただし、長門有希は時
空改変以降、同期を行うことを自主的に禁止を行った。
>>240
インターフェースが『人間』なら。変わらない。
0243デフォルトの名無しさん
2007/01/17(水) 00:14:26オブジェクト=インスタンス
0244デフォルトの名無しさん
2007/01/17(水) 00:17:100246デフォルトの名無しさん
2007/01/17(水) 00:26:13ちがうよ。
0247デフォルトの名無しさん
2007/01/17(水) 00:27:04243じゃないが 一般的にオブジェクトだけだと インスタンス オブジェクトを 差すらしい。
クラスオブジェクトもあるわけだが。
0248デフォルトの名無しさん
2007/01/17(水) 00:27:570249デフォルトの名無しさん
2007/01/17(水) 00:28:59困る事例とかある?
0251デフォルトの名無しさん
2007/01/17(水) 00:29:550252デフォルトの名無しさん
2007/01/17(水) 00:33:34オレは指さんな
0253デフォルトの名無しさん
2007/01/17(水) 00:35:00じゃあ何を指すの?
0254デフォルトの名無しさん
2007/01/17(水) 00:35:130255デフォルトの名無しさん
2007/01/17(水) 00:36:010256デフォルトの名無しさん
2007/01/17(水) 00:36:230257デフォルトの名無しさん
2007/01/17(水) 00:37:280258デフォルトの名無しさん
2007/01/17(水) 00:38:090259デフォルトの名無しさん
2007/01/17(水) 00:39:440260デフォルトの名無しさん
2007/01/17(水) 00:40:13インスタンスは英語で言う定冠詞「the」のついたモノを表す。
といえば、いいのかな。どちらもクラスから実体化したモノだけども、
「ここにモノがあったとしよう」というときはオブジェクト、
「このモノが」というときはインスタンス。
てか日本語ではこの辺の使い分けをうまく表現できるのかな。
できないからややこしいんじゃないのかな。
0261デフォルトの名無しさん
2007/01/17(水) 00:41:250262デフォルトの名無しさん
2007/01/17(水) 00:41:35お
そんな感じだよね
0263デフォルトの名無しさん
2007/01/17(水) 00:41:510264デフォルトの名無しさん
2007/01/17(水) 00:43:16テストやデバッグ時はインスタンスというなー
0265デフォルトの名無しさん
2007/01/17(水) 00:43:55じゃぁ インスタンスは オブジェクトとして利用できないわけで?
0266デフォルトの名無しさん
2007/01/17(水) 00:44:140267デフォルトの名無しさん
2007/01/17(水) 00:44:48なにいってんのー?
0268デフォルトの名無しさん
2007/01/17(水) 00:44:59びっくりするから
0269デフォルトの名無しさん
2007/01/17(水) 00:46:01確かに。実務で困る場面ってあるの?
0270デフォルトの名無しさん
2007/01/17(水) 00:47:12中途半端にインスタンスとかオブジェクトとか混在して話されると
訳わかんなくなりそうになるから困るw
0271デフォルトの名無しさん
2007/01/17(水) 00:50:17水とお湯を混在したりしないだろ?
それと同じ
0272デフォルトの名無しさん
2007/01/17(水) 00:50:360273デフォルトの名無しさん
2007/01/17(水) 00:52:080274デフォルトの名無しさん
2007/01/17(水) 00:54:42オブジェクトもインスタンスもクラスから実体化したモノではある。
違いはというと、
ただ漠然と頭にモノを思い浮かべているときは「オブジェクト」
「このモノは」とモノに指さしているときは「インスタンス」
実体化されたモノ一般を表現するときは「オブジェクト」
実際に実体化したモノを表すときは「インスタンス」
てな感じ。
0275デフォルトの名無しさん
2007/01/17(水) 01:00:11なるほどな。
まぁ俺の解釈だと、
オブジェクト は 操作ができる対象 だと思ってる。
クラス単体だってそのまま操作できるから クラスも オブジェクト。
クラスから生成されたインスタンスだって
そのインスタンス単体を操作することができるから オブジェクト。
だから クラスオブジェクト。 インスタンスオブジェクト。 と言ったのだが。
確かにこの表現だとおかしいなw
0276デフォルトの名無しさん
2007/01/17(水) 01:23:06それだったら、
an instanceと、the instanceで区別すればいいじゃん。
定冠詞がついた状況と、不定冠詞が付いた状況で別の単語だなんておかしい。
0277158 ◆OO/OVgtJP.
2007/01/17(水) 01:32:29俺はインスタンスオブジェクトって単語は、インスタンス=オブジェクトを略してると思ったからよく分かった。
同じようにクラスオブジェクトって単語も、クラス=オブジェクトだと思ったからこれもよく分かった。
この「=」は、オブジェクトとして考えられた物、って意味のイコールってことで。
0278デフォルトの名無しさん
2007/01/17(水) 01:32:50だからおまえら全員間違い
0279デフォルトの名無しさん
2007/01/17(水) 01:34:00そんなことおれに言われても…
0280デフォルトの名無しさん
2007/01/17(水) 01:38:300281デフォルトの名無しさん
2007/01/17(水) 01:52:07それだと、オブジェクトでないものには何があるの?
0282デフォルトの名無しさん
2007/01/17(水) 01:53:43前者は正確にはstaticオブジェクトのことを指す
0283デフォルトの名無しさん
2007/01/17(水) 01:54:42内部クラスは特有じゃない
0284デフォルトの名無しさん
2007/01/17(水) 01:55:43JavaScript2.0が出たら勉強してみることにするよw
ハッキング言語は扱いが面倒だし。
0285デフォルトの名無しさん
2007/01/17(水) 01:57:32いや、これなら正解。
インスタンス ⊆ オブジェクト
0286デフォルトの名無しさん
2007/01/17(水) 02:00:05実際にはそんなものは存在しない。
オブジェクトとは、森羅万象を構成する物だから
プリミティブ型とかグローバル関数/変数という例外的な物が
言語によっては存在する。
0287デフォルトの名無しさん
2007/01/17(水) 02:17:21この意地っ張りがw
>>281
オブジェクトの対義語ねぇ・・
インターフェースも指定しないモジュールをそのまま使う。
0288デフォルトの名無しさん
2007/01/17(水) 02:25:51もし集合論とかやってれば分かると思うけど、真に全てを表すようなものに名前付けても無意味。
実際、すくなくとも、
クラス⊆オブジェクト
インスタンス⊆オブジェクト
なのであれば、実用上オブジェクトという言葉を使う場面はありえないと思う。
0289デフォルトの名無しさん
2007/01/17(水) 02:31:40その言語で閉じた議論をするときは全てがオブジェクトと言ってしまっても構わない場合があるだろう。
0290デフォルトの名無しさん
2007/01/17(水) 02:37:580291デフォルトの名無しさん
2007/01/17(水) 04:08:20そもそもCとかでもオブジェクト指向っぽくコーディングはできるわけで
俗にいうオブジェクト指向言語は仕様を工夫して整理しやすくしただけだろ?
だから超整理法言語だ
0292デフォルトの名無しさん
2007/01/17(水) 08:01:07> >>286
> クラス⊆オブジェクト
それは誤解を生む。現実世界では妥当だが。
0293デフォルトの名無しさん
2007/01/17(水) 08:01:45どこがかっこつけだ。Cでオブジェクト指向だなんて非常に効率が悪い。
0294デフォルトの名無しさん
2007/01/17(水) 08:11:32具体例を・・・
0295デフォルトの名無しさん
2007/01/17(水) 08:12:43インスタンスはクラスを実体化したもの。
クラスはインスタンスを作る鋳型。
言語によってはクラスもオブジェクトだがクラスがオブジェクトでない
言語もある。
0296デフォルトの名無しさん
2007/01/17(水) 08:19:11こ の ス レ レ ベ ル 低 す ぎ w w w
0297デフォルトの名無しさん
2007/01/17(水) 08:22:34という表現は混乱を招くから、そこはメタクラスといって区別しなさい
0298デフォルトの名無しさん
2007/01/17(水) 08:24:04オブジェクト指向チックにする実装をしなければならん事が
だ
オブジェクト指向言語はソコを考える必要は無いからなぁ当然
0299デフォルトの名無しさん
2007/01/17(水) 08:41:00とりあえず簡単に言うと
C言語だけでオブジェクト指向を実戦するには
いちいちコーディング規約を手動で守らせないと逝けないと言う
欠点があるだおる
0300デフォルトの名無しさん
2007/01/17(水) 08:41:36じゃ、スレのレベル上げろ
0301デフォルトの名無しさん
2007/01/17(水) 09:55:09ケイのオブジェクト指向に乗っかるならそうだが、オブジェクト指向はそれだけではない。
ストラウストラップやメイヤーのオブジェクト指向ではメッセージは関係ない邪魔なモノ。
0302デフォルトの名無しさん
2007/01/17(水) 09:55:19#オブジェクトは概念だっての。
#言語としてオブジェクトそのものを実装してある言語なんてJavascript(ECMAScript 3)ぐらいしか知らね。
http://www2u.biglobe.ne.jp/~oz-07ams/prog/ecma262r3/
0303デフォルトの名無しさん
2007/01/17(水) 11:18:17どうしてそういう嘘を平気で書くのか?
「クラス」と「オブジェクト」は れっきとした言語機能だ。
これらは、コード and/or 実行時のメモリ に存在する。
インスタンスこそ(ある「オブジェクト」の位置づけをどう説明するかという)概念だろ。
0304デフォルトの名無しさん
2007/01/17(水) 11:22:52「細胞」という「オブジェクト」があるとする
「DNA」がクラス
「たんぱく質」がインスタンス
0305デフォルトの名無しさん
2007/01/17(水) 11:23:04それとも乗らないのか?って事についての統一的見解を出す方が良いと思うのだが。
メモリ上のオブジェクトは、ある意味「走っているオブジェクト」なんだから
インスタンスと呼ぶべきでしょ。
0306デフォルトの名無しさん
2007/01/17(水) 11:40:310307デフォルトの名無しさん
2007/01/17(水) 11:49:140308デフォルトの名無しさん
2007/01/17(水) 12:40:58なんじゃその「走っている」っつうのは…?
メモリ上にあろうが、あんたの頭んなかにあろうが、
走っていようが、止まっていようが、あるオブジェクトが、
何らかのクラスに属しているなら「インスタンス」だ。
それ以外のオブジェクトは(言語によってはそんなものは存在し得ないが)ただのオブジェクトだ。
0309デフォルトの名無しさん
2007/01/17(水) 12:48:020310デフォルトの名無しさん
2007/01/17(水) 13:06:20人が乗っている車を「人が乗っている車」と呼んでみてはいかがでしょうか?
ということです。
もちろん人が乗っていても、乗っていなくても車は車です。
ただこのスレにおいては、人が乗っている(状態が付随する)車と人が乗っていない(状態が付随しない)車を
区別しないことからの混乱が生じているように思えるのです。
ですからあえてその辺りを明確にするべきではないでしょうか?という提案です。
0311デフォルトの名無しさん
2007/01/17(水) 13:06:26ちなみに、ここでいう「あらかじめ決めておいたこと」とは、
ケイのオブジェクト指向なら「メッセージに対する振る舞い」だし、
ストラウストラップのオブジェクト指向なら「メンバ関数のコールの可不可や、
メンバ変数を持つかどうかや、それらに対するアクセスの可不可」。
どちらでもお好きな方で。
0312デフォルトの名無しさん
2007/01/17(水) 13:22:49なんらかのクラスのインスタンス。
JavaならgetClass()をコールすることで、そのオブジェクトが属するクラスを知ることができる。
そうでない言語(JavaScriptとか)にはクラスに属さないオブジェクト、つまり、インスタンスでない
オブジェクトも存在し得る。それだけの話。
0313デフォルトの名無しさん
2007/01/17(水) 14:27:21インスタンス、クラスという言葉について誰も意見が相違していないのに対して、
オブジェクトという言葉について、どの2人の間でも意見が一致していないw
0314デフォルトの名無しさん
2007/01/17(水) 14:43:43歴史的にも、いろんな意味で使われてきているんだよ。まぎらわしいところでは、
C言語の設計者たちが使っている「第一級オブジェクト」ってのがある。これは
オブジェクト指向の「オブジェクト」とは(ほぼ)直交する概念。
0315デフォルトの名無しさん
2007/01/17(水) 14:51:41プログラムと図で示せ
0316デフォルトの名無しさん
2007/01/17(水) 15:04:320317デフォルトの名無しさん
2007/01/17(水) 15:07:48いつ言葉の空間に計量を入れたのかと問いたい
0318デフォルトの名無しさん
2007/01/17(水) 16:19:20すでに乗っている。
Javaではヒープメモリ上にオブジェクトが乗っている。
しかし、よく見ると、間接的にスタック領域を参照しているため
いくつものヒープといくつものスタック領域の組み合わせがオブジェクトとなる。
複雑なオブジェクト、たとえば集約関係(Aggregation)にあるオブジェクトほど、
たくさんのヒープを持つ。継承関係にあるクラスで下層の具象クラスはヒープの数も膨大。
0319デフォルトの名無しさん
2007/01/17(水) 16:20:45しかしJavaScriptのようなプロトタイプベースオブジェクト指向言語は
UML(統一モデリング言語)とは合致しない。
0320デフォルトの名無しさん
2007/01/17(水) 16:20:57UMLで統一されているのでバズワードにはならんよ。
0321デフォルトの名無しさん
2007/01/17(水) 16:21:45言語に捕らわれてもJavaのような言語の捕らわれているなら
仕様や用語・用法がUMLと合致しているので食い違いは起きない。
0322デフォルトの名無しさん
2007/01/17(水) 16:29:27だから無視しろと? いつからUMLはそんなに偉くなったんだ?w
0323デフォルトの名無しさん
2007/01/17(水) 16:34:190324デフォルトの名無しさん
2007/01/17(水) 21:10:42いい提案ですなw
っていうか、ハルカ前からイッ取るんだけどなw
言語実装がどうとか逝ってる内は永遠に答えが出ないよ
なぜなら言語実装とは、オブジェクト指向を表現しようとした
結果だからねー
解釈は言語ごとに異なるし、言語からオブジェクト指向は紐とけん
0325デフォルトの名無しさん
2007/01/17(水) 21:33:130326デフォルトの名無しさん
2007/01/17(水) 21:41:45例えばJavaからオブジェクト指向が生まれたわけではない
言語実装を考えなければ全てのものがクラスになったりオブジェクトになったりインスタンスになったりする
そういう発想が出来なければオブジェクト指向は理解できないと思うなー
0327デフォルトの名無しさん
2007/01/17(水) 21:49:16で、鼻炎をクラスにしてみました。
鼻炎の実態は鼻炎オブジェクト
いまオレの鼻を患わせているのは鼻炎インスタンス
0328デフォルトの名無しさん
2007/01/17(水) 21:53:06「晩御飯食べてお腹いっぱいになった」の実態は、晩御飯食べてお腹いっぱいオブジェクト
オレのお腹の状態を持っているのは、晩御飯食べてお腹いっぱいインスタンス
0329デフォルトの名無しさん
2007/01/17(水) 21:55:030330デフォルトの名無しさん
2007/01/17(水) 22:07:11クラス…何かを生み出そうとするときに参考にする事象、設計図、鋳型
オブジェクト…クラスを元にして生み出された物、実体、存在
インスタンス化…事象から物を生み出す行為
インスタンス
0331デフォルトの名無しさん
2007/01/17(水) 22:12:22クラス:y
オブジェクト:2x
y = 2x_{x=2} = 4
y = 2x_{x=3} = 6
クラス:y
オブジェクト:2x_{x=2},2x_{x=3},4,6
インスタンス:4,6
0332デフォルトの名無しさん
2007/01/17(水) 22:13:18その事象が目の前で起こってる場合はインスタンスかなぁ
0333デフォルトの名無しさん
2007/01/17(水) 22:15:43?
0334デフォルトの名無しさん
2007/01/17(水) 22:21:31クラスからあるオブジェクトを生み出したとする。
もし、その生み出されたオブジェクトを参考にして、(設計図として、鋳型として)
あらたな物を生み出したとすると、そのオブジェクトはクラスの「役割」を果たしたとする。
つまり、結果論としてそのオブジェクトはクラスの「役割」を果たしたと言えるだろう。
何が言いたいかというと、オブジェクトやクラスやインスタンスは、その存在そのものを
定義するのではなくて、「その物、事象がどのような役割をはたしたか?」という役割の観測
でもって判断されるべきである。
0335デフォルトの名無しさん
2007/01/17(水) 22:22:48この事象から、貧乏ゆすりクラスを導出しました。
で、今それをインスタンス化して貧乏ゆすりしています。
0336デフォルトの名無しさん
2007/01/17(水) 22:23:12=の使い方まちがってるぞ。
そこはクラスはオブジェクトを含んでいる程度じゃね?
>>168
学級というクラスの
3年B組というインスタンスじゃないか?
0337デフォルトの名無しさん
2007/01/17(水) 22:24:29全くその通り
観測者の視点によって、クラスにもオブジェクトにもなる
が、インスタンスの観測点はクラスやオブジェクトより限定的だとおもうね
0338デフォルトの名無しさん
2007/01/17(水) 22:26:27そこはオブジェクトはクラスを含んでいる程度じゃね?
0339デフォルトの名無しさん
2007/01/17(水) 22:29:560340デフォルトの名無しさん
2007/01/17(水) 22:32:130341デフォルトの名無しさん
2007/01/17(水) 22:38:00〜インスタンス.clone()メソッドでインスタンスのコピーが出来たら、
〜インスタンスがクラスになるとか言ってるの?
0342デフォルトの名無しさん
2007/01/17(水) 22:38:52どうしてそういう見てきたような嘘を…。「オブジェクト指向」と名の付く概念の考案者である
ケイもストラウストラップもSmalltalkやC++の構築を通じて彼らの「オブジェクト指向」を培った。
かといって、SmalltalkやC++が彼らが行き着いた「オブジェクト指向」を完全にサポート
できているわけではないので(特に理想が高い前者は)、これら言語の実装や仕様から
彼らの目指したところを知ろうとするのは危険…だから同じ趣旨の最後の一言だけは正しい。
やはり提唱者が著わしたものを読み解くところから始めるのがスジだろうと思うがなぁ…。
0343デフォルトの名無しさん
2007/01/17(水) 22:39:170344デフォルトの名無しさん
2007/01/17(水) 22:40:31ではそのSmallTalkやC++は何をベースに作ったの?
0345デフォルトの名無しさん
2007/01/17(水) 22:41:160346デフォルトの名無しさん
2007/01/17(水) 22:45:400347デフォルトの名無しさん
2007/01/17(水) 22:46:010348デフォルトの名無しさん
2007/01/17(水) 22:48:200349デフォルトの名無しさん
2007/01/17(水) 22:51:20〜.clone()とどう違うのw
0350デフォルトの名無しさん
2007/01/17(水) 22:55:36というより、そのclone()メソッドを持った物の視点でクラスやらオブジェクトやらインスタンスが
既に決まってるから、オブジェクト.clone()のリターンがクラスって事にはならない。
0351デフォルトの名無しさん
2007/01/17(水) 22:55:48SIMULAという言語の「オブジェクト」と「クラス」を借りて、自分たちのアイデアを実現した。
考え方自体は、それぞれのオリジナル。つまり「クラス」や「オブジェクト」はオブジェクト指向より
前から存在していた。
0352デフォルトの名無しさん
2007/01/17(水) 22:57:07オブジェクト指向の名前はオブジェクト指向である
ちんこに深い意味がないのと同様に
オブジェクト指向にも深い意味はない
た だ の ル ー ル
0353デフォルトの名無しさん
2007/01/17(水) 23:00:10オブジェクトって言うんじゃないの?
そういう意味ではC++だろうがなんだろうが、クラスもインスタンスもオブジェクトと呼べるし。
0354デフォルトの名無しさん
2007/01/17(水) 23:02:49既存の言語使用がよりしろになってる事は違和感は無いけど
でも今までと違う発想がないとオブジェクト指向は思いつかないと思う。
現にC言語やCOBOLからC++やJavaに乗り換える時は、全く違う世界観を
受け入れなければならない事を強制されるからねぇ
0355デフォルトの名無しさん
2007/01/17(水) 23:05:22○強要
0356デフォルトの名無しさん
2007/01/17(水) 23:05:45オブジェクトかインスタンスかを意識する必要はないんだよ
豆知識みたいなもんだろ、実務的に考えると
0357デフォルトの名無しさん
2007/01/17(水) 23:07:21そうだけど、どうせならインスタンスに統一して欲しいなw
0358デフォルトの名無しさん
2007/01/17(水) 23:07:55制約をつけただけ
よって、世界観が変わるとかいってるやつはバカ
0359デフォルトの名無しさん
2007/01/17(水) 23:09:28それは言語仕様の話だな
0360デフォルトの名無しさん
2007/01/17(水) 23:10:31コピーしてもインスタンスにしかならんな
0361デフォルトの名無しさん
2007/01/17(水) 23:11:450362デフォルトの名無しさん
2007/01/17(水) 23:11:59後者だと完全なコピーじゃないし、参照元の一部をコピーしただけだし
0363デフォルトの名無しさん
2007/01/17(水) 23:12:20ブブ─────
0364デフォルトの名無しさん
2007/01/17(水) 23:12:32そうすると、深いクローニングと浅いクローニングのことを考慮するときに問題が生ずる
0365デフォルトの名無しさん
2007/01/17(水) 23:12:52だからそういう話じゃないって
0366デフォルトの名無しさん
2007/01/17(水) 23:12:52プログラミング言語の垣根を無くして話すと、
ある意味「メモリ」そのものもオブジェクトだし、「データ」もオブジェクトだよね。
このスレでは、メモリの上にデータが乗っている状態をインスタンスとしようという
風潮が随所に見られるんだけど、それはそれであり。
「人が乗っている車」をインスタンスとしても、
「人」も「車」も、あるいは「人が乗ってる車」だってオブジェクトだし。
ただ、「乗っている」という付随状態が存在しているとみなして、
「人が乗っている車」をインスタンスと呼ぶと。
「人」を「データ」、「車」を「メモリ」にそのまま挿げ替えても通用する。
ある意味、上の文字の挿げ替えで意味が通用するモノなら、それは間違いでは無いでしょ。
「俺」と「チンコ」もちょっとした文章の体裁の修正で流用可能。
オブジェクト指向プログラミングのすごいところは、上の「ちょっとした文章の体裁の修正」が
不要なところがすごい。超すごい。かなり手間が省ける。
オブジェクト指向以外の言語の不都合さを理解してないと、この感動は味わえない。
0367デフォルトの名無しさん
2007/01/17(水) 23:13:04それも、今なら、もう安心!
オブジェクト指向技術はUMLですべて統一されました!
0368デフォルトの名無しさん
2007/01/17(水) 23:13:33率直に言って、>>29を含めるのは間違ってる。アンカーの仕方を勉強しろ。
0369デフォルトの名無しさん
2007/01/17(水) 23:15:19じゃあ言語使用じゃないオブジェクト指向を教えてください
0370デフォルトの名無しさん
2007/01/17(水) 23:15:32作詞・作曲:ム板の2chネラー
0371デフォルトの名無しさん
2007/01/17(水) 23:15:32ソコが気になったか─────www
0372デフォルトの名無しさん
2007/01/17(水) 23:15:46いや。だから、既存(SIMULA)の言語機能であった「オブジェクト」と「クラス」を使って、
彼らの「今までと違う発想」である「オブジェクト指向」を具現化してみせたのが
ケイ(Smalltalk)とストラウストラップ(C++)なんだってば。w
0373デフォルトの名無しさん
2007/01/17(水) 23:16:56っていうか
オブジェクト指向はどの角度から見ても言語仕様ではありません。
オブジェクト指向はプログラム設計をする際の考え方です。
0374デフォルトの名無しさん
2007/01/17(水) 23:19:40それは百も承知だけど
そう言う事がいいたいわけではない
0375デフォルトの名無しさん
2007/01/17(水) 23:21:58いや。それはケイやストラウストラップの「オブジェクト指向(プログラミング)」に
ヒントを得て、ブーチとかがこしらえた「オブジェクト指向設計」のことだから。w
ちなみに、乱立したそうした考え方を統合してややこしくしたのがUMLのベースになっている。
0376デフォルトの名無しさん
2007/01/17(水) 23:22:47実装言語がJavaだろうがC++だろうがなんだろうが、あるレベルまでは何の問題もありません。
0377デフォルトの名無しさん
2007/01/17(水) 23:22:52さらにメソッドみたいなのを追加できなかったっけ
こういうのって今までのオブジェクト指向の用語で表せんの?
0378デフォルトの名無しさん
2007/01/17(水) 23:24:07ん? 「クラス」と「オブジェクト」、それとインスタンスの関係を話しているんじゃないのか?
0379デフォルトの名無しさん
2007/01/17(水) 23:24:36言っているような気がする
>>376的にはオブジェクト指向=モジュール化なのか?
0380デフォルトの名無しさん
2007/01/17(水) 23:25:36わかったわかった
結局はオブジェクト指向XXXXXXのXXXXXXの部分がないと
オブジェクト指向が表現できないといいたいんだろ?
0381デフォルトの名無しさん
2007/01/17(水) 23:25:50デザパタ使わないとダメみたいな風潮も変だと気付かないと。
0382デフォルトの名無しさん
2007/01/17(水) 23:26:00オブジェクト志向世代だからかもしれない
0383デフォルトの名無しさん
2007/01/17(水) 23:26:590384デフォルトの名無しさん
2007/01/17(水) 23:27:02インスタンス化したあとクラスにメソッドを追加できる(ひいては、インスタンスから
それら追加したメソッドをコールできる)のは「クラスがオープンである」という。
インスタンスごとに追加するのは、そのまんま「インスタンス特異的なメソッド追加」。
0386376
2007/01/17(水) 23:28:300387デフォルトの名無しさん
2007/01/17(水) 23:31:40構造体もコピーできない奴で!
0389デフォルトの名無しさん
2007/01/17(水) 23:32:44講義の単位がレポートの提出でもらえる状況であったとしよう。
そのレポート、どのように作成するか?
賢明な学生ならお気付きだろうが、手っ取り早いのはグーグル先生に頼ることだ。
ただ、ちょっとした手間があることにお気付きだろうか?
それはコピペの文章をレポートにあう形に修正しなければならないことだ。
ここで、もしレポートをオブジェクト指向で処理するとどうなるか。
なんと、Web上の情報をそのままレポートにペタペタ張り付ければ、
それがすばらしいレポートになってしまっているのだ!!
ああすばらしいオブジェクト指向プログラミング
0390デフォルトの名無しさん
2007/01/17(水) 23:36:24おお、なるほど
クラスがオープンってのはいわばメタクラスってことかな
ObjectiveCにも確かそんなのがあったような
インスタンス特異的なメソッド追加は、個人的には反則に思うw
それにしてもこのスレ伸びすぎ
0391デフォルトの名無しさん
2007/01/17(水) 23:37:40概念のほうはクラス。Staticメソッドを考えると設計図じゃない。
実体はインスタンス。
最初に出てきた車はオブジェクト。
0392デフォルトの名無しさん
2007/01/17(水) 23:38:470393デフォルトの名無しさん
2007/01/17(水) 23:39:04だが、先生は大抵基底クラスの存在をWEBからみつける
0394デフォルトの名無しさん
2007/01/17(水) 23:39:09この段階からStaticメソッドを考慮する理由はなんぞ?
0395デフォルトの名無しさん
2007/01/17(水) 23:40:36メタクラスは、クラスのクラスだからオブジェクトとしてのクラスがコールできるメソッドを
定義する場所なのでちょっと違う。スレの流れ的には、このときクラスはメタクラスの
「インスタンス」であると言える。
インスタンス特異的メソッドは、指摘の通り、クラスベースの考え方には合わない。
プロトタイプベースの言語(JavaScript)とかLISP由来の考え方。
0396デフォルトの名無しさん
2007/01/17(水) 23:41:320397デフォルトの名無しさん
2007/01/17(水) 23:42:160398デフォルトの名無しさん
2007/01/17(水) 23:45:37ちょw
クラスとか言ってる時点で言語限定してんじゃねーかw
0399デフォルトの名無しさん
2007/01/17(水) 23:46:20とりあえずオブジェクト指向的手法でコピペレポート作っておいて、
その後手続き型的手法で微調整できるって、最強なんじゃね?
とC++を勉強してない俺は思う。
0400デフォルトの名無しさん
2007/01/17(水) 23:46:30そういう意味じゃオブジェクト指向プログラミング言語であることは限定するw
0401デフォルトの名無しさん
2007/01/17(水) 23:47:530402デフォルトの名無しさん
2007/01/17(水) 23:50:360403デフォルトの名無しさん
2007/01/17(水) 23:50:39テレビ分解して中身みてみたらわかる。
0404デフォルトの名無しさん
2007/01/17(水) 23:51:39ここのスレの大半の人
間 違 っ て ま す
0405デフォルトの名無しさん
2007/01/17(水) 23:53:07万事丸く収まる気がする
0406デフォルトの名無しさん
2007/01/17(水) 23:53:13間違ってるところを指摘しないで否定だけするのは間違ってると思います
0407デフォルトの名無しさん
2007/01/17(水) 23:54:06絶対わからないと思います(><)
0408デフォルトの名無しさん
2007/01/17(水) 23:56:240409デフォルトの名無しさん
2007/01/17(水) 23:58:24オブジェクトは概念
クラスとインスタンスはツール
ただそれだけのこと
0410デフォルトの名無しさん
2007/01/17(水) 23:59:14ちなみに俺はテストの終了街…
0411デフォルトの名無しさん
2007/01/18(木) 00:00:21D言語のMixinとRubyのModuleが同じMixinとは到底思えないんだが。
インスタンスとオブジェクトでこれだけ知識を披露してくれるおまいらなら
きっと上手く説明してくれるよな?
0412デフォルトの名無しさん
2007/01/18(木) 00:01:32なるほど
0413デフォルトの名無しさん
2007/01/18(木) 00:02:41>>1 よ、大漁だな。
0414デフォルトの名無しさん
2007/01/18(木) 00:04:37>Mixin は、言語によって様々な意味を持っています。 D では、
つまり名前が同じで別物。
0415デフォルトの名無しさん
2007/01/18(木) 00:04:500416デフォルトの名無しさん
2007/01/18(木) 00:16:52オーバーロードが出来る手続き型の言語があっても
全然おかしくないと思うが?
っていうか、Java や C++ は手続き型の言語だし・・・
0417デフォルトの名無しさん
2007/01/18(木) 00:17:55UMLを見捨てたら顧客の同意を得られないだろ
それになんでUMLにデザインパターンが必要なのか。
そもそも、ユースケース図やアクティビティ図にデザインパターンなんていらんだろ
0418デフォルトの名無しさん
2007/01/18(木) 00:19:37それは大きな勘違い。
アルファベットの多い中国語のほうがアルファベットが少ない英語より
使いやすいと虚言をいってるようなもの
0419デフォルトの名無しさん
2007/01/18(木) 00:20:07コボラーが使えばなんだって手続きかが言語になってしまう奇跡
0420デフォルトの名無しさん
2007/01/18(木) 00:21:11否定しまくって疲れましたがなにか。
>>407
そうですかw
なんていうか、モジュールはテレビがテレビとして動くようになる
ための「しくみ」 ネジやら配線やらブラウン管でテレビは構成されてますが
プログラミングの場合だと画像を操作したりいろんな番組を表示させるような
プログラムを組んでテレビらしい形にするためのスクリプトそのもののことを
モジュールっていう。
>>408
カプセル化でよろしくないか。
0421デフォルトの名無しさん
2007/01/18(木) 00:21:13どう言うのかな。
オブジェクト指向じゃない言語っていうのか、
システムをある程度理解してないと扱いきれない言語というのかな。
0422デフォルトの名無しさん
2007/01/18(木) 00:23:09イメージわきました
どもですm(..)m
0423デフォルトの名無しさん
2007/01/18(木) 00:27:57モジュール化はネジの鋳型を作る事に相当するんですね。
一度作ってしまえばその鋳型を利用して効率良く作業ができると。
ただ、手続き型言語はその鋳型にちょっとした変更が生じたときに、
その大きなネジの鋳型機械そのものを改造する必要があるが、
オブジェクト指向だと、その鋳型の形の部分のみをちょちょっと変更することが容易にできると。
0424デフォルトの名無しさん
2007/01/18(木) 00:36:43いろいろ破綻しているところがあるぞ。
例えばその伝でいくと、ネジそのものは何に当たるんだ?
オブジェクト? んなバカな!
大体、鋳型機械って何よ?
それと、鋳型の形を変更するんじゃあ、
そもそも鋳型の意味がないだろうに。
0425デフォルトの名無しさん
2007/01/18(木) 00:36:59モジュールはテレビで言えばブラウン管やスピーカ、チューナーといった
動作単位の部品だよ。
0426デフォルトの名無しさん
2007/01/18(木) 00:37:32ちょっとおしいw
モジュール化っていうのは別名 カプセル化 いわれてて
BASICのような複雑なスクリプトの中から 共通な点(同じ仕組みのスクリ) を見つけ出して
オブジェクトとして使えるようにすること。
0427デフォルトの名無しさん
2007/01/18(木) 00:38:12まて!おちつけ!
テレビという物体そのもののこと言ってるから そんな細かいとこつっこまなくてもいいwwwwww
0428デフォルトの名無しさん
2007/01/18(木) 00:38:280429デフォルトの名無しさん
2007/01/18(木) 00:39:150430デフォルトの名無しさん
2007/01/18(木) 00:40:34モジュール化とカプセル化 は全く別物。
ググレ。
0432デフォルトの名無しさん
2007/01/18(木) 00:43:20わりぃ、データとスクリプト混合しちまった
0433デフォルトの名無しさん
2007/01/18(木) 00:45:01>モジュール化とカプセル化 は全く別物。
>ググレ。
ググったけど、違いが分からんwww
http://ja.wikipedia.org/wiki/%E3%83%A2%E3%82%B8%E3%83%A5%E3%83%BC%E3%83%AB
>モジュールの特徴として「モジュール性」とカプセル化があり、それらによって複雑なプログラムを理解しやすくできる。
0434デフォルトの名無しさん
2007/01/18(木) 00:47:03カプセル化 が データとか 値をひとまとめにしたもので
モジュール化 が スクリプトの共通な部分をこう、抽象化。( 抽象って便利な言葉だがわかりずらい。
0435デフォルトの名無しさん
2007/01/18(木) 00:49:320436デフォルトの名無しさん
2007/01/18(木) 00:50:09モジュール化は機能分割
0437デフォルトの名無しさん
2007/01/18(木) 00:51:08>モジュール化 が スクリプトの共通な部分をこう、抽象化
ハァ?
どうしてそこで「スクリプト」なんて言葉が出てくるんだ?
0438デフォルトの名無しさん
2007/01/18(木) 00:51:380439デフォルトの名無しさん
2007/01/18(木) 00:51:470440デフォルトの名無しさん
2007/01/18(木) 00:52:570441デフォルトの名無しさん
2007/01/18(木) 00:53:25>手続きの隠蔽
「手続きの隠蔽」なんてされたら、手続きが使えないがなw
0442デフォルトの名無しさん
2007/01/18(木) 00:54:55おまいはリファレンスに定義されてる言葉でしか説明できないと思ってるのか。
0443デフォルトの名無しさん
2007/01/18(木) 00:55:02あほー
手続きの詳細はわからんけど、インターフェイスは知っている状態のことを隠蔽するというんだよ
0444デフォルトの名無しさん
2007/01/18(木) 00:55:13モジュールっていうべき物はあるの?と思ったり、Cはカプセル化なんて概念そのものが
なさそうに見えたり。
0445デフォルトの名無しさん
2007/01/18(木) 00:58:37C言語だってあるよw
でかい関数の処理の部分を別の関数に切り出したりすれば、切り出された部分の処理は元の関数からは
隠蔽されている事になる。
ただ、単純に切り出しただけだったらカプセル化とは言わないけどね
0446デフォルトの名無しさん
2007/01/18(木) 01:01:420447デフォルトの名無しさん
2007/01/18(木) 01:02:48hoge.exe
hoge.dll
hoge.lib
・
・
・
0448デフォルトの名無しさん
2007/01/18(木) 01:03:220449デフォルトの名無しさん
2007/01/18(木) 01:03:54俺様用しおり
∧_∧
( ・∀・)< 今日はここまで読んだ
−−−−−−−−−−−−−−−−−−−−−−−−−−
0450デフォルトの名無しさん
2007/01/18(木) 01:04:13∩___∩
| ノ ヽ
/ -=・=- -=・=|
0451デフォルトの名無しさん
2007/01/18(木) 01:06:31ぉ?
0452デフォルトの名無しさん
2007/01/18(木) 01:07:48おまえらおもしれーなwwww
0453デフォルトの名無しさん
2007/01/18(木) 01:10:59わざとまちがえやがってどこまでツンデレなのww
>>452
俺定義だいっきらーいw\(^o^)/
感覚で覚えるのが一番かと。
0454デフォルトの名無しさん
2007/01/18(木) 01:15:53・インスタンス →
・クラス →
・オブジェクト →
・インターフェース→
・モジュール化 →
・カプセル化 →
がなんだか教えてくれないか。
0455デフォルトの名無しさん
2007/01/18(木) 01:17:52・クラス → hoge
・オブジェクト → hoge
・インターフェース→ hoge
・モジュール化 → hoge
・カプセル化 → hoge
0456デフォルトの名無しさん
2007/01/18(木) 01:22:310457デフォルトの名無しさん
2007/01/18(木) 01:24:40できますよ。
Rubyの場合はあるクラスCから新たにインスタンスiを作ると、
内部的にはCを派生したC'というクラスを作ってそのインスタンスを作ることになってます。
iにメソッドを追加(このメソッドを「特異メソッド」と言います)するというのは、
このC'というクラスにメソッドを追加することになります。
0458デフォルトの名無しさん
2007/01/18(木) 01:28:24そうじゃないだろ。カプセル化したい部分を全部切り出して、
別のファイルに乗っけて内部的な処理や変数は全部staticにしておく。
で、少数のインタフェイス関数だけをextern関数にする。
これがカプセル化だろう。これだとインスタンスは一つしか持てないけどw
0459デフォルトの名無しさん
2007/01/18(木) 01:29:44・関数型言語を極めし者表わる
・真・Lisp括弧地獄
・スクリプト言語の逆襲
の三本です
お楽しみにね
0460デフォルトの名無しさん
2007/01/18(木) 01:34:29コンポーネントというべきだろう。
そうでなければ、クラスやパッケージという用語を使うべき。
UMLではそう規定している。
0461デフォルトの名無しさん
2007/01/18(木) 01:35:05Javaにはモジュールという用語はない。
かわりにpackageという用語が使われる。
0462デフォルトの名無しさん
2007/01/18(木) 01:35:33それはUMLではモジュールともいわないし、パッケージともいわない、
コンポーネントと呼ぶ。
0463デフォルトの名無しさん
2007/01/18(木) 01:37:240464デフォルトの名無しさん
2007/01/18(木) 01:39:290465デフォルトの名無しさん
2007/01/18(木) 01:44:01Cのよくあるテクニックとして、ヘッダファイルに構造体の名前だけ宣言して
構造体の中身を本体ファイルの中に隠蔽して外部とのやりとりをポインタだけで
済ますようにすれば、マルチプルインスタンスな抽象データ型が表現出来るよ。
0466デフォルトの名無しさん
2007/01/18(木) 05:13:430467デフォルトの名無しさん
2007/01/18(木) 05:15:15>ヘッダファイルに構造体の名前だけ宣言して構造体の中身を本体ファイルの中に
kwsk
0468デフォルトの名無しさん
2007/01/18(木) 05:55:34不完全型で検索汁
0469デフォルトの名無しさん
2007/01/18(木) 06:43:450470デフォルトの名無しさん
2007/01/18(木) 09:20:52・クラス →インスタンスを作るための雛型オブジェクト
・インスタンス →クラスによって作るオブジェクト
・オブジェクト →操作できる物
・インターフェース→クラスやインスタンスの仕様
・モジュール化 →複数のファイルや名前空間に分ける
・カプセル化 →内部関数を外から見えなくする
0471デフォルトの名無しさん
2007/01/18(木) 10:55:050472デフォルトの名無しさん
2007/01/18(木) 11:58:35・インスタンス → ユーザー定義型に帰属するデータ。一般に「オブジェクト」のこと。
・クラス → ユーザー定義型の仕様と実装を定義するための言語機能。
・オブジェクト → ユーザー定義型に帰属するデータ。
・インターフェース→ ユーザー定義型の仕様を定義するための言語機能。
・モジュール化 → ユーザー定義型の定義などを分割して扱いやすくすること。
・カプセル化 → ユーザー定義型を定義すること。抽象データ型と(ほぼ)同義。
ケイのオブジェクト指向(原典だが今や影の薄い〜時に混乱の元になる〜オブジェクト指向。メッセージ指向)
・インスタンス → クラス(メタ…を含む)に帰属することを強調したいときのオブジェクトの呼び名。
・クラス → 同じ振る舞いをするオブジェクト群を束ね、それらの振る舞いを定めるオブジェクト。
・オブジェクト → メッセージの受け手。
・インターフェース→ 関係なし(しいて言えば、受けることができるメッセージの種類)。
・モジュール化 → 関係なし(しいて言えば、オブジェクトによる疎結合設計)。
・カプセル化 → 関係なし(しいて言えば、状態や処理の保持・保護・隠蔽)。
0473デフォルトの名無しさん
2007/01/18(木) 13:26:420474デフォルトの名無しさん
2007/01/18(木) 14:32:07・インスタンス → クラスにより定義されたユーザー定義型に帰属するデータ。
・クラス → この型に帰属するインスタンスが持つべき属性の種類を定める第一級オブジェクト。
・オブジェクト → クラスから生じたインスタンス…だが、LISPではオブジェクト指向を離れて
第一級オブジェクトのことを指す言葉として使う方が普通。
・インターフェース→ 関係なし(しいて言えば、そのオブジェクトを引数に含む関数の種類)。
・モジュール化 → 関係なし(しいて言えば、LISPでのパッケージ化と等価)。
・カプセル化 → 関係なし(しいて言えば、ユーザー定義型の定義)。
第一級オブジェクトとは、簡単には、関数の引数や戻り値にできるデータのこと。
0475デフォルトの名無しさん
2007/01/18(木) 15:32:26まずはアルゴリズム本を読み行列クラスを作るか拾ってこい。
話はそれからだ。
0476デフォルトの名無しさん
2007/01/18(木) 17:25:24多分、こういうコードのことだろ。ネットで公開されてるプログラムの
ソースコードを読んでると時々見かけるテクニックだ。
http://www.s34.co.jp/cpptechdoc/article/oop_in_c/index.html
0477デフォルトの名無しさん
2007/01/18(木) 19:58:07はぁはぁ
0478デフォルトの名無しさん
2007/01/18(木) 21:42:53カプセル化の説明で「カプセル化」w
っていうか、何でおマンはオレの言いたい事が理解できんのじゃ
0479デフォルトの名無しさん
2007/01/18(木) 21:45:29何冊かの本を、何度かそのあたりの部分を繰返し読んでいるうちに
あっ、という感じで理解するときがきます。
載っているサンプルを何度か実際に打ち込んで実行するのも効果があります。
C言語のポインタ、C++の参照(Javaにもあるね)などと同じように、
「習うより慣れろ」の典型的なパターンです。
0480デフォルトの名無しさん
2007/01/18(木) 22:46:23これができるのであればC++いらないような気がするんですが
0481デフォルトの名無しさん
2007/01/18(木) 22:52:33馬鹿でかいツリーを作ってNULLじゃなければ実行、deleteみたいなこと連発してくれる。
0482デフォルトの名無しさん
2007/01/18(木) 23:04:10思うんですけど、Cで作らせるのが一番のフレームワークだと思うんです。
0483デフォルトの名無しさん
2007/01/18(木) 23:06:020484デフォルトの名無しさん
2007/01/18(木) 23:08:140485デフォルトの名無しさん
2007/01/18(木) 23:12:020486デフォルトの名無しさん
2007/01/18(木) 23:19:08手続き型だから糞いモジュール分割に巻き込まれにくい(=リファクタリングしやすい)
開いて使って閉じるの流れを統一させやすい
0487デフォルトの名無しさん
2007/01/18(木) 23:22:30キミのかいだ仕様書とか読んでみたくてドキドキしてきた
0488デフォルトの名無しさん
2007/01/18(木) 23:24:37要するに1つの関数にどかっと全部書いちゃうのがいいと・・・・;
0489デフォルトの名無しさん
2007/01/18(木) 23:26:040490デフォルトの名無しさん
2007/01/18(木) 23:29:05オブジェクト指向を禁止する価値がある。
名指ししてpublic staticメソッド以外禁止ってのでもいいな。
0491デフォルトの名無しさん
2007/01/18(木) 23:31:27怖がりすぎ。
0492デフォルトの名無しさん
2007/01/18(木) 23:33:28インターフェイスを実装してくれりゃいいだけの物にしときゃいいのじゃ
0493デフォルトの名無しさん
2007/01/18(木) 23:38:50C++だと途端に難解になるな、車輪の再発明が何回行われてるのか
0494デフォルトの名無しさん
2007/01/18(木) 23:42:54ようは使い手の問題
0495デフォルトの名無しさん
2007/01/19(金) 02:59:24まんことかでたとえてくんね?
それがむりならおまえらもう哲学板でやれよ
0496デフォルトの名無しさん
2007/01/19(金) 03:32:07・クラス → 南極二号
・オブジェクト → まんこ
・インターフェース→ コンドーム
・モジュール化 → あべさだ
・カプセル化 → 包茎
0497デフォルトの名無しさん
2007/01/19(金) 07:03:23こ の ス レ レ ベ ル 低 す ぎ w w w
0498デフォルトの名無しさん
2007/01/19(金) 07:51:000499デフォルトの名無しさん
2007/01/19(金) 08:27:56・クラス →チンコっつー概念
・オブジェクト →チンコ全般
・インターフェース→チンコとマンコの合体方法
・モジュール化 →ソープ行くか〜
・カプセル化 →○○円ぽっきり
0500デフォルトの名無しさん
2007/01/19(金) 15:44:160501デフォルトの名無しさん
2007/01/19(金) 17:32:07ストラウストラップ(抽象データ型のスーパーセット)だとどっちよりなのかな…
とたまに悩むんだけれども、どうにもはっきりしない。メッセージングをひたすら
強調するSELFやIoは別格として脇に追いやっておくとして、NewtonScriptや
JavaScriptなんかみていると、メッセージングっていう印象は薄い。というより皆無。
かといって「型」とかいうかっちりとしたものと相性がいいとはとうてい思えない。
そもそもSELFはケイのメッセージングパラダイムを突き詰めた結果、クラスも無用、
インスタンス変数とメソッドの区別もいらねー(スロットで統一)というシンプルさに
いきついたわけだけれども、その成果物である「フレームとスロット」による
オブジェクト表現(と、委譲ベース)という考え方だけあればよくて、メッセージングは
邪魔なモノ…として確立されたのが(今の)プロトタイプベースなのかしらん。
とか、500に言われてプロトタイプベースのことを思い出したのでつらつらと書いてみました。
0502デフォルトの名無しさん
2007/01/19(金) 20:23:40/ || :ヽ
┌|(⌒ヽ :|| ..:⌒: |┐ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::|::ヽ.__:):||(___ノ ::|::| │
|:|: .. :|| .. |:| │
:|: .. || ..|| < >>501日本語でおk
:\ [_ ̄] /::| │
:: |\|_|_|_|_/:::| \________
__| | / / :|___
0503デフォルトの名無しさん
2007/01/19(金) 21:15:19>>501を日本語と思えないなら、PGやめた方がいいよ。マジで。
この程度の事を理解できないなんてエンジニアとしてレベルが低いにも程がある。
0504デフォルトの名無しさん
2007/01/19(金) 21:17:00/ || :ヽ
┌|(⌒ヽ :|| ..:⌒: |┐ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::|::ヽ.__:):||(___ノ ::|::| │
|:|: .. :|| .. |:| │
:|: .. || ..|| < www
:\ [_ ̄] /::| │
:: |\|_|_|_|_/:::| \________
__| | / / :|___
0505デフォルトの名無しさん
2007/01/19(金) 21:20:33/ || :ヽ
┌|(⌒ヽ :|| ..:⌒: |┐ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::|::ヽ.__:):||(___ノ ::|::| │
|:|: .. :|| .. |:| │
:|: .. || ..|| < wwww
:\ [_ ̄] /::| │
:: |\|_|_|_|_/:::| \________
__| | / / :|___
0506デフォルトの名無しさん
2007/01/19(金) 21:22:51┌|(⌒ヽ :|| ..:⌒: |┐ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::|::ヽ.__:):||(___ノ ::|::| │
|:|: .. :|| .. |:| │
:|: .. || ..|| < メタクラスって知ってる?
:\ [_ ̄] /::| │
:: |\|_|_|_|_/:::| \________
__| | / / :|___
0507デフォルトの名無しさん
2007/01/19(金) 21:44:56ココ電さん、もうこの板にあなたの居場所は無いみたいですよ。。。
0508デフォルトの名無しさん
2007/01/19(金) 21:45:480509デフォルトの名無しさん
2007/01/19(金) 21:46:00/ || :ヽ
┌|(⌒ヽ :|| ..:⌒: |┐ / ̄ ̄ ̄ ̄ ̄ ̄ ̄
|::|::ヽ.__:):||(___ノ ::|::| │
|:|: .. :|| .. |:| │
:|: .. || ..|| < メタタァなら…
:\ [_ ̄] /::| │
:: |\|_|_|_|_/:::| \________
__| | / / :|___
0510デフォルトの名無しさん
2007/01/19(金) 21:48:030511デフォルトの名無しさん
2007/01/19(金) 21:49:24まあ、要するに 「形而上」なんだろ。
0512デフォルトの名無しさん
2007/01/19(金) 21:56:46オブジェクト指向のありようそのものというよりは
「どういう処理系が便利か?」ってところの工夫だと思う。
すなわち形而下。
0513デフォルトの名無しさん
2007/01/19(金) 21:58:50http://pc10.2ch.net/test/read.cgi/prog/1167841734/472
0514デフォルトの名無しさん
2007/01/19(金) 22:06:20ごめんいまいち言いたいことがわからなかった。。
でもまあどうでもいいや。
0515デフォルトの名無しさん
2007/01/19(金) 22:13:50これ↓を言いたかっただけ。ま、あまり気にするなw
http://ja.wikipedia.org/wiki/%E4%B8%AD%E4%BA%8C%E7%97%85
0516デフォルトの名無しさん
2007/01/19(金) 22:16:22あ、形而上ってのは煽りか。
わざわざすいませんね。
0517デフォルトの名無しさん
2007/01/19(金) 23:24:24k.k
0518デフォルトの名無しさん
2007/01/20(土) 09:17:390519デフォルトの名無しさん
2007/01/20(土) 11:30:430520デフォルトの名無しさん
2007/01/20(土) 14:38:07ttp://blog9.fc2.com/2/2log/file/vlphp5173.jpg
ttp://blog9.fc2.com/2/2log/file/vlphp5174.jpg
ttp://blog9.fc2.com/2/2log/file/vlphp5175.jpg
ttp://blog9.fc2.com/2/2log/file/vlphp5176.jpg
ttp://blog9.fc2.com/2/2log/file/vlphp5177.jpg
ttp://blog9.fc2.com/2/2log/file/vlphp5178.jpg
0521デフォルトの名無しさん
2007/01/21(日) 12:34:050522デフォルトの名無しさん
2007/01/21(日) 12:35:460523デフォルトの名無しさん
2007/01/21(日) 12:44:32k.kって?
0524デフォルトの名無しさん
2007/01/23(火) 18:01:18一応オチがあってワロタ
個人的には最後人食い熊に食べられる瞬間の人間の画像が来ると思ってたんだけど・・・
0525デフォルトの名無しさん
2007/01/24(水) 01:01:520526デフォルトの名無しさん
2007/01/29(月) 01:49:38お前がマネージャだったらプロジェクト破綻するわい
0527デフォルトの名無しさん
2007/01/29(月) 01:51:06ウルトラマンは、AAや絵にすると、なぜ間抜け面に見えるのだろう・・・
実写だと目がはっきり写っているからだな。。。恐らく。
0528デフォルトの名無しさん
2007/01/29(月) 02:04:51昔、COBOLしかわからないからという理由でロボット制御を
COBOLで開発させたSEがいたんだが、それを思い出したよ。
おれは直接現場には関わらなかったけど、ひどいことになってた。
0529デフォルトの名無しさん
2007/01/30(火) 01:56:10COBOLでロボット制御をしようという発想がすごすぎるw
でも何とかすれば少しくらいはできるものなのかな?w
0530デフォルトの名無しさん
2007/01/31(水) 01:46:58最後のやつの後に居る奴がニダーに似ているのは気のせいか?
やはりチョンという設定か?
0531デフォルトの名無しさん
2007/02/12(月) 17:31:45かえって生産性低めてどーすんだよ。
正しく理解して使えば生産性が上がるのだが、凡人には無理なんだろうな。
このスレでこれだけ意味不明な議論してるのを見るとそう思う。
0532デフォルトの名無しさん
2007/02/12(月) 17:38:09ライブラリによる再利用性とどう違うのかわかってないことが多いし。
0533デフォルトの名無しさん
2007/02/12(月) 22:09:59あああ添削したい…
日本語勉強しようよ。
無用とか、、、
0534デフォルトの名無しさん
2007/02/12(月) 22:18:26むしろ精度が必要とされる場面ではCOBOLの特徴が生かせるはずだ
0535デフォルトの名無しさん
2007/02/13(火) 09:47:46名無しのごんべえさんが何か作業をする。
その作業がクラスの役割していたら、その人は「クラス君」、
オブジェクトの役割をしていたらその人は「オブジェクト君」と呼びましょうってだけ。
その人そのものに名前が付いてるんじゃなくて、その人がやった仕事を見て
その人の名前を決めましょうって事。
0536デフォルトの名無しさん
2007/02/13(火) 16:41:05その物体がインスタンスであり、オブジェクトである。
オブジェクトは必ずなにかの意味を持っている。
そしてオブジェクトが意義を果たし、その意義を失い消えるのを待つ。
次の瞬間インスタンスは消え、また何も無い空間に戻った。
オブジェクトと、インスタンスは同じものではないが、同居はありえる。
なぜなら、オブジェクトはインスタンスなくして実体化できないからだ。
0537デフォルトの名無しさん
2007/02/13(火) 16:47:38ってことでしょ?
0538デフォルトの名無しさん
2007/02/13(火) 17:41:280539デフォルトの名無しさん
2007/02/13(火) 18:38:37そーだなー。
DNAってオブジェクトがあるわけだ、中には情報が入ってるが、実体を得ないと卵子と結合できない。
だから、精液というインスタンスを得て卵子にむかってくんだよ。
DNAは卵子と結合したあと、その卵子をどう扱うかはすでに知ってる。こういうのをメソッドっていう。
だから、プログラマの仕事はそのメソッドを構築してさらにまとめてオブジェクトを構築すること。
何書いてんだおれ。。。
しかも合ってるか自信ないし。むずかしい。。。
0540デフォルトの名無しさん
2007/02/13(火) 18:52:49あれは波動関数に固有値が付随してるって考えるんじゃくて(そう考える人もいるけど)、波動関数に演算子を
作用させた結果その固有値が得られたって考えるわけですよ。つまり波動関数の正体については一概には言えないけど
、少なくともその演算子を作用させた結果ある固有値が得られるということはいえるじゃないですか。
つまりなんか詳しくはよくわからないけど、やってみたらこういう結果がでましたってのは
言えるわけですよ。つまりやってみたらオブジェクトでした。やってみたらクラスでした。みたいな。
0541デフォルトの名無しさん
2007/02/13(火) 19:25:410542デフォルトの名無しさん
2007/02/13(火) 19:32:26それがオブジェクト。
実際に実行する人が、
インスタンス。
飛躍しすぎかな。。。
0543デフォルトの名無しさん
2007/02/13(火) 20:25:46あれ、でも執行権と適用権はわかったけど
立法の定立権はちんこまんこでいうとどのポジションなの?ヤオイ穴ぐらいの位置?
うは夢がひろがりんぐ
0544デフォルトの名無しさん
2007/02/13(火) 23:18:220545デフォルトの名無しさん
2007/02/14(水) 10:34:30心配無用
0546デフォルトの名無しさん
2007/03/20(火) 01:23:07ちんこは?
0547デフォルトの名無しさん
2007/03/21(水) 07:24:300548デフォルトの名無しさん
2007/03/21(水) 08:44:04public class 男 extends 人間 implements ちんこ{
}
public class 女 extends 人間 implements まんこ{
}
?
0549デフォルトの名無しさん
2007/03/24(土) 09:20:35インスタンスは実体
オブジェクトは概念
0550デフォルトの名無しさん
2007/03/24(土) 09:29:17オブジェクト指向はみんなには難しいようだね。
0551デフォルトの名無しさん
2007/03/25(日) 04:26:420552デフォルトの名無しさん
2007/04/08(日) 00:42:47まんこは?
0553デフォルトの名無しさん
2007/05/14(月) 02:15:32そんなレベルの仕事こなしてるやつはここにはほとんどいない!
知識だけで鼻高くしてるやつらの集まりだなここは
次元が低い!!!!
根本から間違ってる!!!!
シロートが知ったかぶるな!!!!
0554デフォルトの名無しさん
2007/05/14(月) 20:45:500555デフォルトの名無しさん
2007/05/15(火) 01:16:350556デフォルトの名無しさん
2007/05/15(火) 17:05:11インスタンス 餅
オブジェクト 「餅」という概念
0557デフォルトの名無しさん
2007/05/16(水) 01:06:13この二つにとって抽象関係にある
0558デフォルトの名無しさん
2007/05/27(日) 15:46:40わかっていってんのかよハゲ
0559デフォルトの名無しさん
2007/06/23(土) 19:03:46なんか定義が実体に化けるみたいで。
定義を元に実体を作るんだから
クラスからインスタンスを作成、みたいに表現するのが馴染みます。
まあ定着してるからインスタンス化でいいけど。
0560デフォルトの名無しさん
2007/06/23(土) 19:37:590561デフォルトの名無しさん
2007/07/09(月) 19:53:51設計図を具現化
違和感無いかと
0562デフォルトの名無しさん
2007/07/09(月) 22:16:53どうやったら設計図という考えが?
0563デフォルトの名無しさん
2007/07/09(月) 22:22:31付きたての餅は伸びる。ほっとくとカチカチになる。米で出来てる
インスタンス 餅
オブジェクト 「餅」という概念
0564デフォルトの名無しさん
2007/07/09(月) 22:39:530565デフォルトの名無しさん
2007/07/10(火) 01:31:38インスタンス1 伸びる餠
インスタンス2 カチカチの餠
インスタンス3 米でできてる餠
オブジェクト そんな餠
インスタンスとは餅オブジェクトのある状態、特徴に注目して
切り出したものではないだろうか。
0566デフォルトの名無しさん
2007/07/10(火) 01:53:48たとえば『人』がクラス(オブジェクト・クラス),
『個々の人』がインスタンス(オブジェクト・インスタンス)
0567デフォルトの名無しさん
2007/07/10(火) 23:15:000568デフォルトの名無しさん
2007/07/10(火) 23:24:540569デフォルトの名無しさん
2007/07/18(水) 01:00:12たとえば『犬』がクラス(オブジェクト・クラス),
『個々の犬』がインスタンス(オブジェクト・インスタンス)
『クラス』と『インスタンス』というモノ=オブジェクトがあって,
たとえば『猫』がクラス(オブジェクト・クラス),
『個々の猫』がインスタンス(オブジェクト・インスタンス)
0570デフォルトの名無しさん
2007/07/20(金) 10:53:42http://food8.2ch.net/test/read.cgi/nissin/1158545957/
0571デフォルトの名無しさん
2007/07/20(金) 13:31:50インスタンスは具体化かな
0572デフォルトの名無しさん
2007/07/20(金) 15:59:37イスタンブール
0573デフォルトの名無しさん
2007/07/20(金) 22:04:12たとえば『哺乳類』がクラス(オブジェクト・クラス),
それを継承した『人』,『犬』,『猫』もクラス(オブジェクト・クラス),
『個々の人』,『個々の犬』,『個々の猫』がインスタンス(オブジェクト・インスタンス)
あと『個々の哺乳類』はおかしいので『哺乳類』を抽象クラスとする
0574デフォルトの名無しさん
2007/07/20(金) 22:22:56インスタンスはクラスをメモリ上に実体化したもの
メモリ上に実体化する事をインスタンス化と呼ぶ
0575デフォルトの名無しさん
2007/07/20(金) 23:13:48ワロスワロスww
0576デフォルトの名無しさん
2007/07/21(土) 02:55:47現在のコンピュータ上では、
インスタンス(インスタンス変数とか)はヒープメモリ上に確保されて、
クラスは静的領域にロードされる。
メソッドは静的領域のを、各インスタンスが共有して使う。
スタックには、呼び出しとか、動的変数とかが記録される。
と思ってる。
0577デフォルトの名無しさん
2007/07/21(土) 06:47:47クラスの実現としての「実体」を指す言葉がインスタンス。
意味は違うが、結果的には両方とも「実体」を指す言葉だよ。
0578デフォルトの名無しさん
2007/07/21(土) 08:51:27/ !/ / / ! ! | l ! l ヽ ヽ.!ヽ、
/:::::: |彡l / /| l l l、 ! l l l ヽ! ::::',
ch:::::: F l ! ! /‐トl、 l lヽ,.-l‐トl l lミ| :::nb
||Nヽ:: |l !llN,:==:Nヽヽヽ ≦kN! ! !ニl ジ/||
||| ` ‐f!!ヽヽイ{:::::リ` ヽイ{:::::リ〉lイ ト/=' ||
N |ヽ `¨´ `¨´ リll リ
.l ト| 、,. !_| | ╋╋
! !ヽ )- ノ !ll ┃
ヽ >-r‐、 ,. イ /. ┏┓ ╋╋
,.rニ! !¨´ |ニヽ. ┃ ┃
/.:r'´l l ヽ::...\ ┏┓
,..'´!:::::::!r'‐、,..l、 /::::::::/ヽ、 ┃
,..' ´ l:::;.r' ノ} }_____/::::::::/ `ヽ、
/ !ん、,.、/ { { /::::::::/ ヽ、
/ | ! Y´二ヽ_|~ /::::::::/ l
/ | ヽ { --、`! /::::::::/ |
0579デフォルトの名無しさん
2007/07/21(土) 22:32:40ヒープ云々はクラスとインスタンスの違いに関して本質的には関係ない
0580デフォルトの名無しさん
2007/07/22(日) 03:52:490581デフォルトの名無しさん
2007/07/22(日) 04:35:090582デフォルトの名無しさん
2007/07/24(火) 01:39:16はどちらもオブジェクト
0583デフォルトの名無しさん
2007/08/02(木) 17:32:08データ抽象化とは、要は「インタフェースでは見えないように実際のソースは隠蔽するということ」で、
その隠蔽するという作業がカプセル化と思えばいいのでしょうか?
データ抽象化、メンバ、カプセル化、隠蔽の関係を教えてください。
0584デフォルトの名無しさん
2007/08/03(金) 14:23:25見えない見えないとかって、本当はウソでしょ。
0585デフォルトの名無しさん
2007/08/03(金) 15:19:070586デフォルトの名無しさん
2007/08/04(土) 19:22:24△
┌─┼──┐
│ │ │
課長 係長 主任
0587デフォルトの名無しさん
2007/08/05(日) 20:04:10フィールドに持つのがセックスオブジェクトだYO!
どうだ俎上に乗りに着たぞ
0588デフォルトの名無しさん
2007/08/06(月) 03:54:56表現と実態の分離
0589デフォルトの名無しさん
2007/08/08(水) 00:58:47「データ型」をからめて考えると整理をつけやすいかも。
「データ抽象化」というのは、扱いたいデータを新しい「型」として表現しようとする作業。
「メンバ」は、その「型」を成り立たせるために必要な内部情報や手続きなどの構成要素。
「カプセル化」は、データ抽象化の別の呼び名。ときとしてデータ抽象化+隠蔽を意味することも。
「隠蔽」は、「型」のユーザーに対し、メンバ(や、ときとしてソース)へのアクセスを制限する行為やその結果。
0590デフォルトの名無しさん
2007/08/08(水) 15:22:510591デフォルトの名無しさん
2007/08/08(水) 18:52:190592デフォルトの名無しさん
2007/08/08(水) 23:58:470593デフォルトの名無しさん
2007/09/10(月) 15:20:58「そこはStrategyパターンで」とか言ってるやつ見かけなくなった気がする
0594デフォルトの名無しさん
2007/09/10(月) 17:11:08相手の知らない(であろう)言葉を使うほど無神経な奴はそんなにいないよ。
0595デフォルトの名無しさん
2007/09/10(月) 19:54:12オブジェクト指向設計の精髄でありこれをカタログ化し名前をつけることで
コミュニケーションを円滑にするというふれこみだったんだから
古びることも使われなくなることも理論上はないはずなんだけどな
0596デフォルトの名無しさん
2007/09/10(月) 20:25:350597デフォルトの名無しさん
2007/09/10(月) 20:34:240598デフォルトの名無しさん
2007/09/10(月) 20:34:33現実世界のものをオブジェクトとして対応させる、というお題目は、
実際はプログラムが書くのはコンピュータの内部処理ばかりで
現実に対応するものはないからまるで役に立たないし、
共通の特徴があるものはベースクラスとしてそれを継承して派生させる、
なんてのは継承を使った瞬間そのクラスだけ見ても何をしてるのか分からず
プログラムの見通しが悪くなってバグの温床になるばかりだ
オブジェクト指向は一部の機能をうまく使えばうまく働くけど、
「オブジェクト指向」という思想に従ってお題目どおりに書いても何もうまくいかない
0599デフォルトの名無しさん
2007/09/10(月) 20:47:44> なんてのは継承を使った瞬間そのクラスだけ見ても何をしてるのか分からず
> プログラムの見通しが悪くなってバグの温床になるばかりだ
実装を気にしなくていいようにするためのカプセル化では?
インターフェースに対してプログラミングをする、という言い方があるね。
つまり、親クラスの実装をそんなに頻繁に確かめるような設計は既に無理が在る。
内部は隠されたものとして使い、インターフェースを簡潔に作って利用する。
0600デフォルトの名無しさん
2007/09/10(月) 21:12:17元々一部の人間が騒いでいただけ。冷ややかな目で見られていた事にやっと気付いたんじゃないの。
0601デフォルトの名無しさん
2007/09/10(月) 23:05:58親クラスから実装を継承して各子クラスの処理を書けば否応なく見通しは悪くなるが、
一つのクラスに親クラスの処理と全子クラスで使われる処理を書けば見通しはよくなる
あとはinterfaceだけ実装し、各子クラスはどの処理を使うかを選んで
委譲するだけのコードを書けばいい
外部から見たinterfaceの簡潔さと、内部の見通しの良さを両立できる
まあinterfaceはメソッドシグネチャを規定するだけだから
その用途なら関数オブジェクトとクロージャを使った方が簡潔に書ける
JavaやC++ではクロージャの導入が進んでいて
それが済んだらinterfaceは大部分の用途では用済みになる
0602デフォルトの名無しさん
2007/09/11(火) 00:52:54で、要約すると何だって?
0603デフォルトの名無しさん
2007/09/11(火) 01:26:47オブジェクト指向は死んだということだな
クロージャがあれば十分
0604デフォルトの名無しさん
2007/09/11(火) 04:07:12>一つのクラスに親クラスの処理と全子クラスで使われる処理を書けば
そんなことしたら、そのクラスはどんどん肥大化していくだけで、
良い事ない。
それに、
一つのクラスに全部の実装が書かれてるより、ちゃんと役割ごとにクラス分けされて、
実装が分離されている方が、断然見通しはいいと思うけど??
0605デフォルトの名無しさん
2007/09/11(火) 05:34:34Smalltalkみたいにオブジェクト階層を容易にたどっていけるブラウザの支援がないと。
0606601
2007/09/11(火) 07:02:24でも、ちゃんと作ってれば(ドキュメント類とかも含めて)、そもそも追う必要がないわけだし。
追う必要がないなら、メソッドはあるべき場所にあればいいと思う。
それをあえて、一箇所にまとめるようなやり方は逆に見通しを悪くするんじゃないかなと。
0608デフォルトの名無しさん
2007/09/11(火) 15:38:08それでも、関連する処理が実際に一画面に収まっているかどうかは
見易さにものすごく影響するわけだ
たとえば
ttp://www.removingalldoubt.com/PermaLink.aspx/bece3be7-04a1-4130-b1ac-0b88c94e7708
これなんかを見て欲しいのだけど
これはC#の、一クラスを複数のソースファイルに分割して記述する機能を使って、
クラスごと、ではなく複数の子クラスの一つのメソッドをまとめて記述している
関連する処理が一つにまとまってるから、明らかにこっちの方が見やすい
内部処理は内部処理なので、密接に関わりあうのが普通で
内部処理を複数のクラスに分割し、簡潔なインターフェースで
内部と外部に分けるというのは普通は出来ない
そうやって無理にカプセル化すれば、内部の処理が見えないことがデメリットになり、
わかりにくく拡張しにくいソースになってしまう
関連する内部処理は一箇所にまとめて、カプセル化せずに丸見えにするのが基本だ
そうやって無理にカプセル化しようとすることが、オブジェクト指向の一番の弊害だと
俺は思うね
0609デフォルトの名無しさん
2007/09/11(火) 15:54:280610デフォルトの名無しさん
2007/09/11(火) 15:58:51内部処理はカプセル化されていない複数のクラスの共同作業として実装し
関連する記述は出来るだけ一箇所にまとめる
0611デフォルトの名無しさん
2007/09/11(火) 16:03:230612デフォルトの名無しさん
2007/09/11(火) 16:12:10どういうこっちゃ?
カプセル化は、外部から呼ぶもの(public)と
内部処理(private)を分けて、外部からのインターフェースを
簡潔に使いやすくする
外部からは内部処理を気にしなくて済むので、実装を入れ替えることも
出来るようになる、といったことだと思ってるけど
0613604
2007/09/11(火) 21:00:28関連する内部処理は一箇所に置いた方がいいというのは、むしろ同じ考えw
俺は、>>601の言う、実装は1つのクラスにを持たせるっていうのに、賛成できないだけ。
こういう、なんでも屋的クラスを作って、いろんなことをそのクラスにやらせると、
いずれそのクラスは関連しないメソッドでいっぱいになって、逆に見通し悪くする。
ってことを言いたかった。
んで、ちょっと質問なんだが
俺はC#はよく分からないんだけど、クラスのソースファイルを分割するって、日常的に使うもの?
既存のイケてないソースに対しての、とりあえずの対処とかじゃなくて?
0614デフォルトの名無しさん
2007/09/11(火) 21:24:39日常的に使う人もいるし、あまり使わない人もいる
一番基本的な使い方は、ツールによって生成されるソースと
自分で書くソースを分けて、コンパイル時に結合するというもの
Visual StudioのGUIデザイナがそういうソースを吐くからみんなそれを使っている
>>608のようにクラス階層をぶった切って、
関連する処理をまとめるなんていうのはあまりされてないと思う。
これから広まるかもしれないけど
いけてないソースに対してとりあえず対処するのに、どう使うのか分からないけど
あまり使えないんじゃないかな
0615604
2007/09/12(水) 07:38:21あーなるほど
GUI周りとかのツールが吐く部分と、自前実装の分離か。それは便利そうだね。
あと、イケてないソースへの対処というのは、可読性最悪の既存ソースに対して、ソースを分割して見やすくするとか、そういうのを考えてた。
ソースの分割は便利そうだけど、その場その場でちゃんとルール決めておかないと、無秩序に分割されて悲惨な事態を招きそうw
■ このスレッドは過去ログ倉庫に格納されています