無理やりオブジェクト指向にしたから出てきた問題を解決して凄い凄い言ってるだけ。
単なるマッチポンプ。
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96
前前前スレ
オブジェクト指向ってクソじゃね?
https://mevius.5ch.net/test/read.cgi/tech/1535085129/
前前スレ
オブジェクト指向ってクソじゃねぇよ? Part2
https://mevius.5ch.net/test/read.cgi/tech/1539872441/
前スレ
オブジェクト指向ってクソじゃねぇかよPart3
https://mevius.5ch.net/test/read.cgi/tech/1542884872/
探検
オブジェクト指向ってクソじゃねぇかよPart4
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2019/04/28(日) 23:38:35.09ID:URSBxRTf285デフォルトの名無しさん
2019/05/05(日) 00:07:33.18ID:0ZGoSt+d286デフォルトの名無しさん
2019/05/05(日) 00:15:17.29ID:0ZGoSt+d >>270が型とはなんぞや的なことを言ってたから
型は集合でオブジェクトと密接な関係があることを僕なりに説明したつもり
ちなみに型は集合って考えは少数派ではないとも僕は思ってる
ググったらたくさんでてくる
たとえばこれとか
プログラム言語論
http://www.cs.tsukuba.ac.jp/~kam/lecture/plm2017/6.pdf
型は集合でオブジェクトと密接な関係があることを僕なりに説明したつもり
ちなみに型は集合って考えは少数派ではないとも僕は思ってる
ググったらたくさんでてくる
たとえばこれとか
プログラム言語論
http://www.cs.tsukuba.ac.jp/~kam/lecture/plm2017/6.pdf
287デフォルトの名無しさん
2019/05/05(日) 00:16:04.30ID:qgM2q7bL288デフォルトの名無しさん
2019/05/05(日) 00:16:19.14ID:0ZGoSt+d 違う考えをお持ちならそれをご披露いただければ
自分が思う型はこういうものだ的なご意見を拝読したいです
自分が思う型はこういうものだ的なご意見を拝読したいです
289デフォルトの名無しさん
2019/05/05(日) 00:18:20.77ID:0ZGoSt+d >>287
うん・・・なんかごめん。
意識するの意味がわからなくて・・・。
僕には答えられないからこういうときに自分は意識するんだ!的なことをお述べいただければ
あるいは自分は意識しないんだなぜならば型とはこういうものだからやー!的なことをお述べになって
いただければ僕は正座して読むよ
うん・・・なんかごめん。
意識するの意味がわからなくて・・・。
僕には答えられないからこういうときに自分は意識するんだ!的なことをお述べいただければ
あるいは自分は意識しないんだなぜならば型とはこういうものだからやー!的なことをお述べになって
いただければ僕は正座して読むよ
290デフォルトの名無しさん
2019/05/05(日) 00:18:28.00ID:qgM2q7bL291デフォルトの名無しさん
2019/05/05(日) 00:20:03.01ID:qgM2q7bL >>289
「型は集合である」と主張してるのはお前なんだから
お前がプログラムのどういうときに「型は集合である」と意識するのか言えよwww。
俺は意識しない。
それ以上俺から言う必要がなさ過ぎて。
頭悪いなあ。
「型は集合である」と主張してるのはお前なんだから
お前がプログラムのどういうときに「型は集合である」と意識するのか言えよwww。
俺は意識しない。
それ以上俺から言う必要がなさ過ぎて。
頭悪いなあ。
292デフォルトの名無しさん
2019/05/05(日) 00:20:36.74ID:n5gpFbvN >>285
知ってることを周回遅れでさも真実かのように語られた時、
やっぱ愚かだなって思うもんだよ。
どうせhaskellとかあの辺の抽象的な関数型言語からの受け売りでしょ。
自分が偏ってることに少しは気付く努力をしましょうね。
知ってることを周回遅れでさも真実かのように語られた時、
やっぱ愚かだなって思うもんだよ。
どうせhaskellとかあの辺の抽象的な関数型言語からの受け売りでしょ。
自分が偏ってることに少しは気付く努力をしましょうね。
293デフォルトの名無しさん
2019/05/05(日) 00:20:58.81ID:0ZGoSt+d294デフォルトの名無しさん
2019/05/05(日) 00:21:24.11ID:qgM2q7bL295デフォルトの名無しさん
2019/05/05(日) 00:22:32.45ID:qgM2q7bL296デフォルトの名無しさん
2019/05/05(日) 00:24:12.16ID:0ZGoSt+d297デフォルトの名無しさん
2019/05/05(日) 00:26:14.51ID:qgM2q7bL298デフォルトの名無しさん
2019/05/05(日) 00:26:15.52ID:0ZGoSt+d >>294
僕はプログラミングしてるときに「型は集合である」ことを意識する
必要があるとは思ってなくて型とはなんぞやということを
考えたときに集合かなーて思っただけだよ
君はプログラミングしてるときにどう意識してるかが大事だと
思っているわけでしょ、それはわかった
それでは君は型をどう意識してるん?
僕はプログラミングしてるときに「型は集合である」ことを意識する
必要があるとは思ってなくて型とはなんぞやということを
考えたときに集合かなーて思っただけだよ
君はプログラミングしてるときにどう意識してるかが大事だと
思っているわけでしょ、それはわかった
それでは君は型をどう意識してるん?
299デフォルトの名無しさん
2019/05/05(日) 00:27:16.46ID:qgM2q7bL300デフォルトの名無しさん
2019/05/05(日) 00:34:45.97ID:0ZGoSt+d301デフォルトの名無しさん
2019/05/05(日) 00:39:16.18ID:qgM2q7bL302デフォルトの名無しさん
2019/05/05(日) 00:42:30.17ID:0ZGoSt+d >>301
大学の講義資料は僕の言う集合ですよ
君の言う集合は違うん?
君は型は集合ではないんだって立場なんですよね
では君は型をどう説明しますか?
この質問だけだと漠然としてて答えにくいかもしれないので
オブジェクト指向における型とは〜
プログラミングにおける型とは〜
と言ったふうに説明しやすい前提を置いていただいていいですよ
教えてください
大学の講義資料は僕の言う集合ですよ
君の言う集合は違うん?
君は型は集合ではないんだって立場なんですよね
では君は型をどう説明しますか?
この質問だけだと漠然としてて答えにくいかもしれないので
オブジェクト指向における型とは〜
プログラミングにおける型とは〜
と言ったふうに説明しやすい前提を置いていただいていいですよ
教えてください
303デフォルトの名無しさん
2019/05/05(日) 00:43:57.20ID:qgM2q7bL304デフォルトの名無しさん
2019/05/05(日) 00:45:53.25ID:0ZGoSt+d >>303
北海道大学でも同様に型を集合と説明してますよ
理解してないのは君の方かと
抽象データ型
http://kussharo.complex.eng.hokudai.ac.jp/~kurihara/classes/SE/04-abstdatatype.pdf
それはさておき僕の理解とは関係なく君の説明が聞きたいな
君は型というものをどう説明しますか?
北海道大学でも同様に型を集合と説明してますよ
理解してないのは君の方かと
抽象データ型
http://kussharo.complex.eng.hokudai.ac.jp/~kurihara/classes/SE/04-abstdatatype.pdf
それはさておき僕の理解とは関係なく君の説明が聞きたいな
君は型というものをどう説明しますか?
305デフォルトの名無しさん
2019/05/05(日) 00:50:32.51ID:0ZGoSt+d 具体的に説明できないなら
自分がプログラミングするときに型をどう意識してるかを教えていただけると
なんかこうふんわりしてて生意気そうなやわらかさみたいな感覚的なものでも良いですよ
それに対して僕がつまりちんぽということですねと返すから
そこからあと一言いただければ
自分がプログラミングするときに型をどう意識してるかを教えていただけると
なんかこうふんわりしてて生意気そうなやわらかさみたいな感覚的なものでも良いですよ
それに対して僕がつまりちんぽということですねと返すから
そこからあと一言いただければ
306デフォルトの名無しさん
2019/05/05(日) 00:51:45.62ID:qgM2q7bL307デフォルトの名無しさん
2019/05/05(日) 00:52:52.64ID:0ZGoSt+d >>306
どこ読んでるん、ちゃんと読んで!
どこ読んでるん、ちゃんと読んで!
308デフォルトの名無しさん
2019/05/05(日) 00:57:04.20ID:qgM2q7bL >>307
お前が明示しろよ無能。
お前が明示しろよ無能。
309デフォルトの名無しさん
2019/05/05(日) 00:57:55.68ID:0ZGoSt+d 読んでいただいたのはありがたいけど
僕が聞きたいのは君の「型は集合じゃない」という意見だよ
ググればわかるようなまともな考えをここで知りたいとは思ってなくて
君のイカれた意見に興味があるんだよね、君の鉄腕を見せてくれ
僕が聞きたいのは君の「型は集合じゃない」という意見だよ
ググればわかるようなまともな考えをここで知りたいとは思ってなくて
君のイカれた意見に興味があるんだよね、君の鉄腕を見せてくれ
310デフォルトの名無しさん
2019/05/05(日) 01:00:49.46ID:0ZGoSt+d >>308
もう読まなくて良いですよ
僕の考えは十分に示しましたし君がそれをわかろうとしないのは仕方ないことかなと
僕は今夜君の型の説明が聞きたいです
僕は全力で君の意見をわかろうとするんでどうぞよろしくお願いします
もう読まなくて良いですよ
僕の考えは十分に示しましたし君がそれをわかろうとしないのは仕方ないことかなと
僕は今夜君の型の説明が聞きたいです
僕は全力で君の意見をわかろうとするんでどうぞよろしくお願いします
311デフォルトの名無しさん
2019/05/05(日) 01:19:18.18ID:0ZGoSt+d おい鉄腕説明はまだか?
僕は正座して待ってる、足がしびれてきた
これ以上待たせたら虐待で訴える
僕は正座して待ってる、足がしびれてきた
これ以上待たせたら虐待で訴える
312デフォルトの名無しさん
2019/05/05(日) 04:15:03.38ID:2SY3w1vB >>291
> お前がプログラムのどういうときに「型は集合である」と意識するのか言えよwww。
型→完全な円
(円の方程式)
集合→円形をした物
(円形の灰皿、円形の十円玉、円形のルーレット・・・その他身近なイロイロ)
『近似する実在物』を、ある一定の『実在しないひな形』にまとめるのが、オブジェクト指向!
イデアとは最高度に抽象的な完全不滅の真実の実在的存在であり、感覚的事物はその影であるとする。
イデアが存在しているのがイデア界(本質界)で、その陰が投影されているのがわれわれ人間の住む現実界となる。
例えば、現実の世界に、円形をした物はたくさん存在するが、いずれも完全な円ではないし円そのものでもない。
しかし、これらの円の背後には永遠不変で、完璧、かつ抽象的な円のひな型であるイデアがあるとする。
この考え方ってどっかで聞いたことある・・・そうだ!オブジェクト指向の考え方にそっくりなんだ。
オブジェクト指向はクラスという雛形(設計図)があり、クラスを元にして実体を持つオブジェクト
(インスタンス)がポコポコ作られるようなイメージである。
http://aidiary.hatenablog.com/entry/20050430/1114871993
> お前がプログラムのどういうときに「型は集合である」と意識するのか言えよwww。
型→完全な円
(円の方程式)
集合→円形をした物
(円形の灰皿、円形の十円玉、円形のルーレット・・・その他身近なイロイロ)
『近似する実在物』を、ある一定の『実在しないひな形』にまとめるのが、オブジェクト指向!
イデアとは最高度に抽象的な完全不滅の真実の実在的存在であり、感覚的事物はその影であるとする。
イデアが存在しているのがイデア界(本質界)で、その陰が投影されているのがわれわれ人間の住む現実界となる。
例えば、現実の世界に、円形をした物はたくさん存在するが、いずれも完全な円ではないし円そのものでもない。
しかし、これらの円の背後には永遠不変で、完璧、かつ抽象的な円のひな型であるイデアがあるとする。
この考え方ってどっかで聞いたことある・・・そうだ!オブジェクト指向の考え方にそっくりなんだ。
オブジェクト指向はクラスという雛形(設計図)があり、クラスを元にして実体を持つオブジェクト
(インスタンス)がポコポコ作られるようなイメージである。
http://aidiary.hatenablog.com/entry/20050430/1114871993
313デフォルトの名無しさん
2019/05/05(日) 07:38:48.91ID:ukSdQO/a うん、で何が集合なわけ?
314デフォルトの名無しさん
2019/05/05(日) 08:09:56.33ID:2SY3w1vB >01000001011000000000000000000000
コンテキスト(時と場合)によって、チンポが随意筋なのか不随意筋なのかを使い分けような!
「モノ、コンテキスト、役割」の関係は、「モノ、照明、影」で例えられます。
モノに照明を当てると、影が出来上がります。影は、照明を当てる角度により形が異なります。
つまり、照明=コンテキスト、影=役割とすると、
仕事コンテキストでは従業員
家庭コンテキストではお父さん
趣味コンテキストではゲーム制作者
https://qiita.com/MinoDriven/items/2a378a09638e234d8614
>現代的な考え方: データ型=データの集合+演算・処理の集合
>01000001011000000000000000000000
>• int CPUが整数演算に使うなら 1,097,072,640
>• float CPUが実数演算に使うなら 14.25
>• String CPUが文字列処理に使うなら ”槍” とNULL文字
>• その他 CPUが画像処理に使うなら 白黒画像の一部
304 デフォルトの名無しさん 2019/05/05(日) 00:45:53.25 ID:0ZGoSt+d
>>303
北海道大学でも同様に型を集合と説明してますよ
理解してないのは君の方かと
抽象データ型
http://kussharo.complex.eng.hokudai.ac.jp/~kurihara/classes/SE/04-abstdatatype.pdf
それはさておき僕の理解とは関係なく君の説明が聞きたいな
君は型というものをどう説明しますか? 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
コンテキスト(時と場合)によって、チンポが随意筋なのか不随意筋なのかを使い分けような!
「モノ、コンテキスト、役割」の関係は、「モノ、照明、影」で例えられます。
モノに照明を当てると、影が出来上がります。影は、照明を当てる角度により形が異なります。
つまり、照明=コンテキスト、影=役割とすると、
仕事コンテキストでは従業員
家庭コンテキストではお父さん
趣味コンテキストではゲーム制作者
https://qiita.com/MinoDriven/items/2a378a09638e234d8614
>現代的な考え方: データ型=データの集合+演算・処理の集合
>01000001011000000000000000000000
>• int CPUが整数演算に使うなら 1,097,072,640
>• float CPUが実数演算に使うなら 14.25
>• String CPUが文字列処理に使うなら ”槍” とNULL文字
>• その他 CPUが画像処理に使うなら 白黒画像の一部
304 デフォルトの名無しさん 2019/05/05(日) 00:45:53.25 ID:0ZGoSt+d
>>303
北海道大学でも同様に型を集合と説明してますよ
理解してないのは君の方かと
抽象データ型
http://kussharo.complex.eng.hokudai.ac.jp/~kurihara/classes/SE/04-abstdatatype.pdf
それはさておき僕の理解とは関係なく君の説明が聞きたいな
君は型というものをどう説明しますか? 👀
Rock54: Caution(BBR-MD5:1341adc37120578f18dba9451e6c8c3b)
315デフォルトの名無しさん
2019/05/05(日) 08:17:15.16ID:qgM2q7bL >>314
今日もまた発狂して一人チンポ芝居かよ。
今日もまた発狂して一人チンポ芝居かよ。
>>269
それは同じ動きのCのコードを作るというだけで、できた C コードはすでに OO ではない可能性があるかと
それは同じ動きのCのコードを作るというだけで、できた C コードはすでに OO ではない可能性があるかと
317デフォルトの名無しさん
2019/05/05(日) 08:35:30.18ID:qgM2q7bL >>317
C++ の時点では OO であっても、それをトランスパイラに通して出てきた C コードは OO ではない、という可能性はあるのでは?
例えば C++ の時点では OO であっても、コンパイラに通して出てきた機械語は OO とは言いがたいでしょう?
C++ の時点では OO であっても、それをトランスパイラに通して出てきた C コードは OO ではない、という可能性はあるのでは?
例えば C++ の時点では OO であっても、コンパイラに通して出てきた機械語は OO とは言いがたいでしょう?
319デフォルトの名無しさん
2019/05/05(日) 09:34:14.58ID:WbdERMwW 少なくとも数学的な集合の性質として
「順番は問わない」集まり
というのがある。これと型との関係は?
「順番は問わない」集まり
というのがある。これと型との関係は?
320デフォルトの名無しさん
2019/05/05(日) 09:56:35.88ID:qgM2q7bL322デフォルトの名無しさん
2019/05/05(日) 11:01:21.21ID:vlft8K2s >>292
一般論として周回遅れマンが紛れ込んだときのベストな対応はスルー
周回遅れを自覚できていないという時点で
そいつの知力にはもはや期待が持てないので
そいつに対して一つのレスも費やしてはならない
この点を見誤ると、周回遅れマンに居座られてしまう
一般論として周回遅れマンが紛れ込んだときのベストな対応はスルー
周回遅れを自覚できていないという時点で
そいつの知力にはもはや期待が持てないので
そいつに対して一つのレスも費やしてはならない
この点を見誤ると、周回遅れマンに居座られてしまう
323デフォルトの名無しさん
2019/05/05(日) 11:27:37.73ID:qgM2q7bL325デフォルトの名無しさん
2019/05/05(日) 11:36:34.86ID:qgM2q7bL >>324
実際にC++をCに変換して確認しりゃいいだろ。
実際にC++をCに変換して確認しりゃいいだろ。
327デフォルトの名無しさん
2019/05/05(日) 11:43:11.75ID:qgM2q7bL >>327
>C++はCの機能だけで作られていた。
機能、という言葉の使い方があいまいですね
・「C++ をトランスパイルした結果が C のコードが出力される」という事実だけでは、C が(委譲とは区別された)継承を記述できるかどうかを示すことはできないのではないでしょうか?
>C++はCの機能だけで作られていた。
機能、という言葉の使い方があいまいですね
・「C++ をトランスパイルした結果が C のコードが出力される」という事実だけでは、C が(委譲とは区別された)継承を記述できるかどうかを示すことはできないのではないでしょうか?
329デフォルトの名無しさん
2019/05/05(日) 11:52:26.46ID:qgM2q7bL330デフォルトの名無しさん
2019/05/05(日) 11:52:29.80ID:b3RuMaKH アップキャストできるから移譲と区別とはならないの?
332デフォルトの名無しさん
2019/05/05(日) 12:33:06.22ID:C9BKoiC3 >>330
ずらしてキャストする関数を作れば
ずらしてキャストする関数を作れば
334デフォルトの名無しさん
2019/05/05(日) 13:29:53.55ID:0ZGoSt+d >>322
一周先の考えでは型とはなんぞや?
一周先の考えでは型とはなんぞや?
335デフォルトの名無しさん
2019/05/05(日) 13:31:39.27ID:0ZGoSt+d >>333
なんで言わないん?
なんで言わないん?
336デフォルトの名無しさん
2019/05/05(日) 14:12:25.72ID:RwNImG1a マシン語に変換された瞬間にOOできてないに変化するってこと?
337デフォルトの名無しさん
2019/05/05(日) 15:40:51.80ID:n5gpFbvN 自分ルール押し付けって奴だね
338デフォルトの名無しさん
2019/05/05(日) 16:09:03.66ID:z2iHj6R4 そう言われるだろうと思って自分でルールを作らなくなるんだろう
自分ではない誰かが作った教科書を読めとしか言わなくなる
自分ではない誰かが作った教科書を読めとしか言わなくなる
>>335
基底クラスA, B とそのメソッド A.f(), B.g()
A, B を多重継承する派生クラス C とメソッド C.h()があったとして
(コード例は >>172)
今 C のインスタンス c に対して
c.f() と c.h() の両方を実行したいとき c の this から
c 内の A のために this を作り c.f() を呼ぶ…@
c 内の B のために this を作り c.h() を呼ぶ…A
@Aのどちらかあるいは両方について、c の this をずらして基底クラスの this を作らないといけません
>>172 の C++ では c->f() や c->h() とお気楽にかけるのに、C では、チマチマと this にオフセットを「人間が数えて」足し込むコードを書かなくっちゃいけない
そんな体たらくじゃ C では多重継承は書けないのと同等ですね
基底クラスA, B とそのメソッド A.f(), B.g()
A, B を多重継承する派生クラス C とメソッド C.h()があったとして
(コード例は >>172)
今 C のインスタンス c に対して
c.f() と c.h() の両方を実行したいとき c の this から
c 内の A のために this を作り c.f() を呼ぶ…@
c 内の B のために this を作り c.h() を呼ぶ…A
@Aのどちらかあるいは両方について、c の this をずらして基底クラスの this を作らないといけません
>>172 の C++ では c->f() や c->h() とお気楽にかけるのに、C では、チマチマと this にオフセットを「人間が数えて」足し込むコードを書かなくっちゃいけない
そんな体たらくじゃ C では多重継承は書けないのと同等ですね
340デフォルトの名無しさん
2019/05/05(日) 18:51:56.99ID:0ZGoSt+d >>339
それはC言語がオブジェクト指向プログラミング言語ではないと
言ってるに過ぎないと思うの
手でちまちまと書く、というのを「OO できている」とはいわないのはどうしてなん?
オブジェクト指向プログラミング言語でプログラミングすることだけを
オブジェクト指向と言うん? それはどうしてなん?
オブジェクト指向は考え方であって手段として手書きするのか
言語の機能を使うのかはどちらでも良いと思うのだけれども
どうして多重継承を言語としてサポートすることが大事だと思うん?
それはC言語がオブジェクト指向プログラミング言語ではないと
言ってるに過ぎないと思うの
手でちまちまと書く、というのを「OO できている」とはいわないのはどうしてなん?
オブジェクト指向プログラミング言語でプログラミングすることだけを
オブジェクト指向と言うん? それはどうしてなん?
オブジェクト指向は考え方であって手段として手書きするのか
言語の機能を使うのかはどちらでも良いと思うのだけれども
どうして多重継承を言語としてサポートすることが大事だと思うん?
341デフォルトの名無しさん
2019/05/05(日) 18:52:30.16ID:0ZGoSt+d なんでなん?
>>340
>それはC言語がオブジェクト指向プログラミング言語ではないと
>言ってるに過ぎないと思うの
であれば、それが私の言いたいことそのものですね、問題ないのではないでしょうか?
>手でちまちまと書く、というのを「OO できている」とはいわないのはどうしてなん?
手でちまちまと、すなわち手動で this を作らないといけないようではオブジェクト指向はできてないでしょうね…
>オブジェクト指向プログラミング言語でプログラミングすることだけをオブジェクト指向と言うん? それはどうしてなん?
そうはいってませんよ、単に C でオブジェクト指向にのっとったプログラミングはできない(なぜならばオブジェクト指向の重要な要素である継承が実現できないから)、といっているだけです
>オブジェクト指向は考え方であって手段として手書きするのか言語の機能を使うのかはどちらでも良いと思うのだけれども
>どうして多重継承を言語としてサポートすることが大事だと思うん?
多重継承を例にするのがわかりやすいから、多重継承を例にしただけです。
>それはC言語がオブジェクト指向プログラミング言語ではないと
>言ってるに過ぎないと思うの
であれば、それが私の言いたいことそのものですね、問題ないのではないでしょうか?
>手でちまちまと書く、というのを「OO できている」とはいわないのはどうしてなん?
手でちまちまと、すなわち手動で this を作らないといけないようではオブジェクト指向はできてないでしょうね…
>オブジェクト指向プログラミング言語でプログラミングすることだけをオブジェクト指向と言うん? それはどうしてなん?
そうはいってませんよ、単に C でオブジェクト指向にのっとったプログラミングはできない(なぜならばオブジェクト指向の重要な要素である継承が実現できないから)、といっているだけです
>オブジェクト指向は考え方であって手段として手書きするのか言語の機能を使うのかはどちらでも良いと思うのだけれども
>どうして多重継承を言語としてサポートすることが大事だと思うん?
多重継承を例にするのがわかりやすいから、多重継承を例にしただけです。
343デフォルトの名無しさん
2019/05/05(日) 19:04:45.27ID:0ZGoSt+d >>342
君はオブジェクト指向プログラミング言語でプログラミングすることを
オブジェクト指向ができていると表現してるわけだね
C言語は多重継承をサポートしていないという事実から
C言語はオブジェクト指向プログラミング言語ではないを導き
C言語ではオブジェクト指向できてないを導出したわけですね
自明ですが、論理とは自明の積み重ねですからね
そういうの大事だと思います
君はオブジェクト指向プログラミング言語でプログラミングすることを
オブジェクト指向ができていると表現してるわけだね
C言語は多重継承をサポートしていないという事実から
C言語はオブジェクト指向プログラミング言語ではないを導き
C言語ではオブジェクト指向できてないを導出したわけですね
自明ですが、論理とは自明の積み重ねですからね
そういうの大事だと思います
344デフォルトの名無しさん
2019/05/05(日) 19:15:32.32ID:0ZGoSt+d 僕の考えるオブジェクト指向はこうです
オブジェクト指向とはオブジェクトを主要なものとしてシステムを作ることです
オブジェクトとは状態と振る舞いのセットです
分析や設計の段階でオブジェクト指向で考えることができますし
C言語や継承の機能を持たない古いVBでもオブジェクト指向を適用可能です
要件を満たすにはこういうオブジェクトが必要だ
この状態はこのオブジェクトが持つべきだ
この振る舞いはこのオブジェクトが持つべきだと
考えるのがオブジェクト指向なのです
オブジェクト指向とはオブジェクトを主要なものとしてシステムを作ることです
オブジェクトとは状態と振る舞いのセットです
分析や設計の段階でオブジェクト指向で考えることができますし
C言語や継承の機能を持たない古いVBでもオブジェクト指向を適用可能です
要件を満たすにはこういうオブジェクトが必要だ
この状態はこのオブジェクトが持つべきだ
この振る舞いはこのオブジェクトが持つべきだと
考えるのがオブジェクト指向なのです
345デフォルトの名無しさん
2019/05/05(日) 19:22:05.60ID:0ZGoSt+d 大事MANブラザーズバンドが昔
負けない事・投げ出さない事・逃げ出さない事・信じ抜く事 それが一番大事と歌いましたが
それを歌った本人は後年どれも大事じゃなかったと言いました
良い話です
オブジェクト指向プログラミング言語がもつ機能として
・カプセル化
・多態性
・継承
これらが提唱されてはいますが
オブジェクト指向にとってどれも大事じゃないです
良い話ですね
負けない事・投げ出さない事・逃げ出さない事・信じ抜く事 それが一番大事と歌いましたが
それを歌った本人は後年どれも大事じゃなかったと言いました
良い話です
オブジェクト指向プログラミング言語がもつ機能として
・カプセル化
・多態性
・継承
これらが提唱されてはいますが
オブジェクト指向にとってどれも大事じゃないです
良い話ですね
346デフォルトの名無しさん
2019/05/05(日) 19:22:33.16ID:0ZGoSt+d お前ら涙拭けよ
347デフォルトの名無しさん
2019/05/05(日) 19:36:01.70ID:1Pm7tIcB オブジェクト指向ってなんなのかもわからない人だらけで、クラスこととだと思ってる奴が未だに大勢いるからな
最近じゃクラスを持たないオブジェクト指向言語が使われ出してきていて誤解も減ってきてる気はするけど
最近じゃクラスを持たないオブジェクト指向言語が使われ出してきていて誤解も減ってきてる気はするけど
348デフォルトの名無しさん
2019/05/05(日) 20:16:31.15ID:6ho6Zive クラスを持たないオブジェクト指向言語って具体的にはどれ?
349デフォルトの名無しさん
2019/05/05(日) 20:20:35.27ID:yGiei76k 昔のJavaScript
>>343
>君はオブジェクト指向プログラミング言語でプログラミングすることを
>オブジェクト指向ができていると表現してるわけだね
いいえ、OO な言語でなくても OO で記述できる範囲を代替できれば、それも「オブジェクト指向ができている」とします。
ただし C 言語は単一であっても継承を委譲と区別して記述できない…@
継承は OO では基本的な考え方、枠組みである…A
@Aより C 言語では OO 的な記述はできない
となります
>C言語は多重継承をサポートしていないという事実から
>C言語はオブジェクト指向プログラミング言語ではないを導き
>C言語ではオブジェクト指向できてないを導出したわけですね
多重継承だけではなく、単一継承も C では不可能、とします。
なぜならば、
構造体の第一メンバのアドレスと、構造体そのもののアドレスが一致するとは限らない…B
構造体の各メンバの物理的な順序はプログラマから指定することはできない、構造体テンプレートごとにシャッフルされても文句はいえない…C
>君はオブジェクト指向プログラミング言語でプログラミングすることを
>オブジェクト指向ができていると表現してるわけだね
いいえ、OO な言語でなくても OO で記述できる範囲を代替できれば、それも「オブジェクト指向ができている」とします。
ただし C 言語は単一であっても継承を委譲と区別して記述できない…@
継承は OO では基本的な考え方、枠組みである…A
@Aより C 言語では OO 的な記述はできない
となります
>C言語は多重継承をサポートしていないという事実から
>C言語はオブジェクト指向プログラミング言語ではないを導き
>C言語ではオブジェクト指向できてないを導出したわけですね
多重継承だけではなく、単一継承も C では不可能、とします。
なぜならば、
構造体の第一メンバのアドレスと、構造体そのもののアドレスが一致するとは限らない…B
構造体の各メンバの物理的な順序はプログラマから指定することはできない、構造体テンプレートごとにシャッフルされても文句はいえない…C
>>344
>要件を満たすにはこういうオブジェクトが必要だ
>この状態はこのオブジェクトが持つべきだ
>この振る舞いはこのオブジェクトが持つべきだと
>考えるのがオブジェクト指向なのです
これを@とします
@は
オブジェクト指向「的」に記述する
というなら許容できますが、オブジェクト指向そのものではないと思いますね
>要件を満たすにはこういうオブジェクトが必要だ
>この状態はこのオブジェクトが持つべきだ
>この振る舞いはこのオブジェクトが持つべきだと
>考えるのがオブジェクト指向なのです
これを@とします
@は
オブジェクト指向「的」に記述する
というなら許容できますが、オブジェクト指向そのものではないと思いますね
352デフォルトの名無しさん
2019/05/05(日) 20:50:36.49ID:V2nyw4fH 人とか動物、鉛筆やボールペンならよく分かるんだが、実際のプログラムになると何がオブジェクトなのか途端に分からなくなる。
353デフォルトの名無しさん
2019/05/05(日) 20:53:26.28ID:dlXoi6fS >>340
>どうして多重継承を言語としてサポートすることが大事だと思うん?
随意筋 不随意筋
↖ ↗
チンポ
『継承』は、子クラス➡親クラス。
多重継承を否定できないのは、この現実世界においては、状況によって相反する属性が現れるから。
特に機械翻訳においては、文脈によってコトバの属性を選択しなければならない。
>どうして多重継承を言語としてサポートすることが大事だと思うん?
随意筋 不随意筋
↖ ↗
チンポ
『継承』は、子クラス➡親クラス。
多重継承を否定できないのは、この現実世界においては、状況によって相反する属性が現れるから。
特に機械翻訳においては、文脈によってコトバの属性を選択しなければならない。
354デフォルトの名無しさん
2019/05/05(日) 20:58:11.78ID:n5gpFbvN >>352
実際のプログラムではそういったビジネス要件のクラスと
メモリ、データベース、ネットワークアクセスを上手くマッピングするレイヤーが
必要になるからな。
オブジェクト指向が役に立つ場面もあるが邪魔になる場面もある。
実際のプログラムではそういったビジネス要件のクラスと
メモリ、データベース、ネットワークアクセスを上手くマッピングするレイヤーが
必要になるからな。
オブジェクト指向が役に立つ場面もあるが邪魔になる場面もある。
355デフォルトの名無しさん
2019/05/05(日) 21:02:01.59ID:9yEU0+xl 多重継承をサポートしてる言語って
C++以外だと何がある?
C++以外だと何がある?
356デフォルトの名無しさん
2019/05/05(日) 21:12:22.54ID:0ZGoSt+d357デフォルトの名無しさん
2019/05/05(日) 21:17:47.84ID:0ZGoSt+d358デフォルトの名無しさん
2019/05/05(日) 21:41:28.11ID:uNdN3SuK >>357
Javaで言うとクラスの多重継承の意味で聞きたかった
Javaで言うとクラスの多重継承の意味で聞きたかった
359デフォルトの名無しさん
2019/05/05(日) 21:43:00.38ID:0ZGoSt+d >>352
プログラムで何をやるのかによって
変わってくるんじゃないかと
ソフトウェアが処理の対象にする分野はドメインと呼ばれるけれども
オブジェクトはドメインによって変わってくるかと
たとえば表計算というドメインでは「行」という概念があり「列」という
概念があり「セル」という概念があってそれぞれ状態や振る舞いを持つじゃん
ファイルはデータを読んで分析するというドメインでは「データソース」になるし
処理したデータを永続化するというドメインでは「データストア」になるし
データを連携するというドメインでは「連携データ」になる
てな具合で
ソフトウェアが解決しようとしてるドメインを考えることによって
こういう概念があるとシステムがわかりやすいよね
処理しやすいよねって考えるのがいんじゃないかなと思いました
プログラムで何をやるのかによって
変わってくるんじゃないかと
ソフトウェアが処理の対象にする分野はドメインと呼ばれるけれども
オブジェクトはドメインによって変わってくるかと
たとえば表計算というドメインでは「行」という概念があり「列」という
概念があり「セル」という概念があってそれぞれ状態や振る舞いを持つじゃん
ファイルはデータを読んで分析するというドメインでは「データソース」になるし
処理したデータを永続化するというドメインでは「データストア」になるし
データを連携するというドメインでは「連携データ」になる
てな具合で
ソフトウェアが解決しようとしてるドメインを考えることによって
こういう概念があるとシステムがわかりやすいよね
処理しやすいよねって考えるのがいんじゃないかなと思いました
360デフォルトの名無しさん
2019/05/05(日) 21:43:22.15ID:0ZGoSt+d >>358
それを言ったつもりだす
それを言ったつもりだす
361デフォルトの名無しさん
2019/05/05(日) 21:53:35.11ID:uNdN3SuK362デフォルトの名無しさん
2019/05/05(日) 21:57:42.22ID:2SY3w1vB >>358
>Javaで言うとクラスの多重継承の意味で聞きたかった
随意筋 不随意筋
↖ ↗
チンポ
『継承』は、子クラス➡親クラス。
多重継承を否定できないのは、この現実世界においては、状況によって相反する属性が現れるから。
特に機械翻訳においては、文脈によってコトバの属性を選択しなければならない。
>Javaで言うとクラスの多重継承の意味で聞きたかった
随意筋 不随意筋
↖ ↗
チンポ
『継承』は、子クラス➡親クラス。
多重継承を否定できないのは、この現実世界においては、状況によって相反する属性が現れるから。
特に機械翻訳においては、文脈によってコトバの属性を選択しなければならない。
363デフォルトの名無しさん
2019/05/05(日) 22:18:36.49ID:0ZGoSt+d364デフォルトの名無しさん
2019/05/05(日) 23:16:17.25ID:qgM2q7bL365デフォルトの名無しさん
2019/05/06(月) 03:44:51.02ID:CTjazNaS 肉眼で見れば『空っぽ』のサンプル容器だが・・・
2010年6月に小惑星探査機「はやぶさ」が帰還しました。11月になって持ち帰った岩石質の微粒子が
小惑星イトカワ由来と分かり、大変に注目され、また意気も上がりました。これはサンプルキャッチャー
と呼ばれる帰還したサンプル容器の内側を特殊なヘラで触って集めた約3300個のうち、
人工物(主としてアルミ片)を除いた約1500個の岩石質極微小粒子(大部分が10μm
[マイクロメートル、1μm=1mmの1000分の1]以下)の組成を調べて
分かったことです(図1におおよその鉱物組成比を示す)。
http://www.isas.jaxa.jp/j/forefront/2011/fujimura/
観測の仕方について、同じオブジェクトでも全く違う物になりうる!
>現代的な考え方: データ型=データの集合+演算・処理の集合
>01000001011000000000000000000000
>• int CPUが整数演算に使うなら 1,097,072,640
>• float CPUが実数演算に使うなら 14.25
>• String CPUが文字列処理に使うなら ”槍” とNULL文字
>• その他 CPUが画像処理に使うなら 白黒画像の一部
2010年6月に小惑星探査機「はやぶさ」が帰還しました。11月になって持ち帰った岩石質の微粒子が
小惑星イトカワ由来と分かり、大変に注目され、また意気も上がりました。これはサンプルキャッチャー
と呼ばれる帰還したサンプル容器の内側を特殊なヘラで触って集めた約3300個のうち、
人工物(主としてアルミ片)を除いた約1500個の岩石質極微小粒子(大部分が10μm
[マイクロメートル、1μm=1mmの1000分の1]以下)の組成を調べて
分かったことです(図1におおよその鉱物組成比を示す)。
http://www.isas.jaxa.jp/j/forefront/2011/fujimura/
観測の仕方について、同じオブジェクトでも全く違う物になりうる!
>現代的な考え方: データ型=データの集合+演算・処理の集合
>01000001011000000000000000000000
>• int CPUが整数演算に使うなら 1,097,072,640
>• float CPUが実数演算に使うなら 14.25
>• String CPUが文字列処理に使うなら ”槍” とNULL文字
>• その他 CPUが画像処理に使うなら 白黒画像の一部
366デフォルトの名無しさん
2019/05/06(月) 03:51:02.37ID:CTjazNaS367デフォルトの名無しさん
2019/05/06(月) 03:55:10.11ID:+kTw1En3368デフォルトの名無しさん
2019/05/06(月) 04:03:28.51ID:CTjazNaS >>340
>どうして多重継承を言語としてサポートすることが大事だと思うん?
同一オブジェクトであっても、『視点』が変わると全然違う『属性』が表れてくるから。
新幹線の座席で寝ている人は、時速200キロで移動しながら寝ているのだぞ?
>どうして多重継承を言語としてサポートすることが大事だと思うん?
同一オブジェクトであっても、『視点』が変わると全然違う『属性』が表れてくるから。
新幹線の座席で寝ている人は、時速200キロで移動しながら寝ているのだぞ?
369デフォルトの名無しさん
2019/05/06(月) 04:40:25.91ID:+kTw1En3370デフォルトの名無しさん
2019/05/06(月) 07:09:00.42ID:CTjazNaS >>369
>属性が全然違うなら全然違うオブジェクトにすればいいと思うの
同一オブジェクトとして扱うが、『視点』は別々にしようってことなんだが?
>現代的な考え方: データ型=データの集合+演算・処理の集合
>01000001011000000000000000000000
>• int CPUが整数演算に使うなら 1,097,072,640
>• float CPUが実数演算に使うなら 14.25
>• String CPUが文字列処理に使うなら ”槍” とNULL文字
>• その他 CPUが画像処理に使うなら 白黒画像の一部
>属性が全然違うなら全然違うオブジェクトにすればいいと思うの
同一オブジェクトとして扱うが、『視点』は別々にしようってことなんだが?
>現代的な考え方: データ型=データの集合+演算・処理の集合
>01000001011000000000000000000000
>• int CPUが整数演算に使うなら 1,097,072,640
>• float CPUが実数演算に使うなら 14.25
>• String CPUが文字列処理に使うなら ”槍” とNULL文字
>• その他 CPUが画像処理に使うなら 白黒画像の一部
371デフォルトの名無しさん
2019/05/06(月) 07:25:59.25ID:+kTw1En3 >>370
同一オブジェクトにしなければ良いと思うの
Decimalオブジェクトもお金を扱うときはMoneyオブジェクトにするし
税金扱うときはTaxオブジェクトにするじゃん
同一オブジェクトという前提がおかしいんだよ
継承は設計が悪い兆候と心得よ
同一オブジェクトにしなければ良いと思うの
Decimalオブジェクトもお金を扱うときはMoneyオブジェクトにするし
税金扱うときはTaxオブジェクトにするじゃん
同一オブジェクトという前提がおかしいんだよ
継承は設計が悪い兆候と心得よ
372デフォルトの名無しさん
2019/05/06(月) 07:28:10.67ID:+kTw1En3 視点が変われば属性が変わる属性が変わればオブジェクトを変えるべきですよ
373デフォルトの名無しさん
2019/05/06(月) 07:46:25.25ID:r9zJcDQk 配列があれば満足できる
374デフォルトの名無しさん
2019/05/06(月) 07:52:43.50ID:Raxrdjo7 それで生産性上がるんかいね?
375デフォルトの名無しさん
2019/05/06(月) 08:38:03.71ID:CTjazNaS >>372
>視点が変われば属性が変わる属性が変わればオブジェクトを変えるべきですよ
同一の光であっても、波と粒子とで別々のオブジェクトにするのか?
新たに開発した電力変換装置は、太陽光発電システムと水電解装置のシステム構成上の制約を解消するものであり、
太陽光由来水素製造の規模拡大を加速するものである。太陽光発電システムと、それらから得られた
電気エネルギーによる水素製造のさらなる普及のため、システムを構成する集光型太陽電池、電力変換装置、
水電解装置の一層の効率向上と低コスト化はもとより、さらには急激な日照の変動による入力電力の
変動に対応したシステムの耐久性向上が求められる。
https://pr.fujitsu.com/jp/news/2018/07/19.html
>視点が変われば属性が変わる属性が変わればオブジェクトを変えるべきですよ
同一の光であっても、波と粒子とで別々のオブジェクトにするのか?
新たに開発した電力変換装置は、太陽光発電システムと水電解装置のシステム構成上の制約を解消するものであり、
太陽光由来水素製造の規模拡大を加速するものである。太陽光発電システムと、それらから得られた
電気エネルギーによる水素製造のさらなる普及のため、システムを構成する集光型太陽電池、電力変換装置、
水電解装置の一層の効率向上と低コスト化はもとより、さらには急激な日照の変動による入力電力の
変動に対応したシステムの耐久性向上が求められる。
https://pr.fujitsu.com/jp/news/2018/07/19.html
376デフォルトの名無しさん
2019/05/06(月) 08:54:09.49ID:CTjazNaS377デフォルトの名無しさん
2019/05/06(月) 08:55:11.74ID:ksMcUqow >>375
光という基底クラスがあって、波動を表現する波光クラスと粒子を表現する粒光クラスという派生クラスを作るんじゃね。
光という基底クラスがあって、波動を表現する波光クラスと粒子を表現する粒光クラスという派生クラスを作るんじゃね。
378デフォルトの名無しさん
2019/05/06(月) 08:59:00.47ID:CTjazNaS 勃起するときのチンポは『不随意筋』ね。
オシッコ出すときのチンポと、勃起するときのチンポは、別々のオブジェクトってことだな!
376 デフォルトの名無しさん 2019/05/06(月) 08:54:09.49 ID:CTjazNaS
>>372
>視点が変われば属性が変わる属性が変わればオブジェクトを変えるべきですよ
勃起するときのチンポは随意筋だけど、オシッコを出すときのチンポは随意筋だな。
オシッコ出すときのチンポと、勃起するときのチンポは、別々のオブジェクトってことだな!
376 デフォルトの名無しさん 2019/05/06(月) 08:54:09.49 ID:CTjazNaS
>>372
>視点が変われば属性が変わる属性が変わればオブジェクトを変えるべきですよ
勃起するときのチンポは随意筋だけど、オシッコを出すときのチンポは随意筋だな。
379デフォルトの名無しさん
2019/05/06(月) 09:01:42.65ID:CTjazNaS >>377
>光という基底クラスがあって、波動を表現する波光クラスと粒子を表現する粒光クラスという派生クラスを作るんじゃね。
チンポという基底クラスがあって、勃起するときの不随意チンポと、オシッコするときの随意チンポと、
別々の派生クラスを作るんじゃね?
>光という基底クラスがあって、波動を表現する波光クラスと粒子を表現する粒光クラスという派生クラスを作るんじゃね。
チンポという基底クラスがあって、勃起するときの不随意チンポと、オシッコするときの随意チンポと、
別々の派生クラスを作るんじゃね?
380デフォルトの名無しさん
2019/05/06(月) 19:08:43.91ID:aP0f4Ais 粒子と波の性質を持つなら、それぞれのinterfaceを定義して、その両方を実装するのがいまどきのオブジェクト指向でしょ。
381デフォルトの名無しさん
2019/05/06(月) 19:12:47.88ID:aP0f4Ais チンコは性器と泌尿器のinterfaceを実装するのが筋。
あと、陰茎は海面体だから、随意筋でも不随意筋でもないぞ。
あと、陰茎は海面体だから、随意筋でも不随意筋でもないぞ。
382デフォルトの名無しさん
2019/05/06(月) 19:51:30.24ID:CTjazNaS >>377
>光という基底クラスがあって、波動を表現する波光クラスと粒子を表現する粒光クラスという派生クラスを作るんじゃね。
リスコフの置換原則
この原則は「基本クラスを使っている場所で基本クラスの代わりにサブクラスを使っても
問題なく動かなけらばならない」というものです。
https://qiita.com/UWControl/items/98671f53120ae47ff93a
>光という基底クラスがあって、波動を表現する波光クラスと粒子を表現する粒光クラスという派生クラスを作るんじゃね。
リスコフの置換原則
この原則は「基本クラスを使っている場所で基本クラスの代わりにサブクラスを使っても
問題なく動かなけらばならない」というものです。
https://qiita.com/UWControl/items/98671f53120ae47ff93a
383デフォルトの名無しさん
2019/05/06(月) 20:24:22.96ID:+kTw1En3 >>382
リスコフの置換原則は型の継承の原則だから
実装の継承を使った差分プログラミングが目的なら
リスコフの置換原則にこだわる必要はないかと
君が大好きな多重継承は差分プログラミングが目的なんじゃないかな?
リスコフの置換原則は型の継承の原則だから
実装の継承を使った差分プログラミングが目的なら
リスコフの置換原則にこだわる必要はないかと
君が大好きな多重継承は差分プログラミングが目的なんじゃないかな?
384デフォルトの名無しさん
2019/05/06(月) 20:25:59.73ID:+kTw1En3 君はちんぽと本気で向き合ってない
ちんぽを舐めるな!
ちんぽを舐めるな!
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★4 [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 [蚤の市★]
- 【地震】青森県で震度6強 長周期地震動も 津波注意報すべて解除 ★7 [ぐれ★] [ぐれ★]
- 【広島】「万引きした人を追跡」コンビニ店員の男性(46)を果物ナイフで刺したか 中国籍の少年(17)を殺人未遂容疑で現行犯逮捕 [ぐれ★]
- トランプ大統領 エヌビディア製AI半導体の中国輸出許可 安全保障重視の方針転換 [蚤の市★]
- 【サッカー】58歳カズ「オファーが来ている」 J3福島と近日中にも交渉 早ければ年内にも決断 [征夷大将軍★]
- 【悲報】高市早苗の擬人化がXで大バズりwwwwwwwwwwww [455031798]
- 高市が早くあの発言を撤回しないと、中国からもっと大きな制裁が飛んでくるぞ [805596214]
- 【動画】ファッションモデルまんこ、裸でランウェイを歩く。これがファッションだと言われて [749674962]
- 【画像】髙市さん「無職のシンママ支援を手厚くするため、世帯年収900万円以上の控除をカットします🙂」 [881878332]
- 早大名誉教授「高市内閣の高支持率はデータ操作か、支持している日本人がアホなのか」👈核心を突いてしまう [868050967]
- こんぺこ!こんぺこ!こんぺこ!🐰🏡
