オブジェクト指向を教えてくれ!★2

■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
垢版 |
2021/04/27(火) 15:02:28.94ID:mH9VXFld
オブジェクト指向について、調べれば調べるほど疑問が募ります。低レベルで粗末な疑問かも知れませんが、ご教授願いたいです。

・データと振る舞いをまとめる?
まとめると何か良いことあるの?
ファイルあるいはモジュールにはまとまってるよね?
丁度いい単位があるのに、何故わざわざオブジェクトという概念を導入するの?
(Javaには1ファイル1クラスという文化あるらしいけど)

・カプセル化?
モジュールのimport, exportでも実現出来るよね?
(構造体などへのアクセスを制限できれば)

・ポリモーフィズム?
別にデータと振る舞いをまとめなくても実現出来るよね?

・モノのように扱いたい?
モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?

※前スレ
https://mevius.5ch.net/test/read.cgi/tech/1615881962/
2021/05/22(土) 04:17:29.80ID:u/oN90lG
>>67
Fcade使わないの?
2021/05/25(火) 19:21:50.87ID:QzEu3cDz
https://ie.u-ryukyu.ac.jp/~e085739/java.it.16.html

Commandパターンで、Receiverクラスを独立して設ける意義は何なのでしょうか?
ConcreteCommandA/Bのexecute()に具体的な処理を書けばReceiverクラスは不要に思います。
71デフォルトの名無しさん
垢版 |
2021/05/25(火) 21:08:41.32ID:jhBeOJMS
CommandとReceiverのライフサイクルが異なるからじゃないかな

Recieverクラスを除去するとCommandに
System.out.println(msg);
を書かないといけなくなるっしょ

System.out.println(msg);
を変えたくなったときに複数のCommandを修正しないといけないのが
嫌だったんだと思うよ
7270
垢版 |
2021/05/26(水) 08:37:00.11ID:g1C68Uzt
>>71
ありがとうございます。
その場合でもconcreteCommandクラスを修正する分には問題ないかと思いましたが、Receiverに分離しておけば、そのクラスにCompositeパターンを適用したりと拡張できそうですし、価値がありそうですね。
2021/05/30(日) 20:41:43.23ID:7LCI43rW
オブジェクト指向がよく解らなくてクッキーの型とか勇者とか車とか色々な例を見たけど
自分は結局button1()のフォームへの配置が一番解りやすかったので凄く遠回りをした
みんなどうやってこれを理解したんだろう
74デフォルトの名無しさん
垢版 |
2021/05/31(月) 10:28:10.60ID:AP3os+rN
クラスは設計図、オブジェクトは製品、インスタンス化はメモリを確保することと覚えて
コード書きまくってたら慣れただけだな自分は
2021/05/31(月) 11:38:06.10ID:erCe3QWs
よく批判されがちなことに
入門書のアニマル継承説明があるが
>>73-74の人の意見もあるように
理解への入り口は色々なのが現実なんだよな
鬼の首とったように入門書叩かれたりすることあるけど
アニマルを見せられても分かるやつは分かるんよ
仕組みだけわかったらあとほっといても応用思いつくんよ
それが出来ない人が振り返って教科書が悪い入門書が悪いといいがちだけど
76デフォルトの名無しさん
垢版 |
2021/05/31(月) 12:01:12.43ID:38WnKCHc
>>75
>理解への入り口は色々なのが現実なんだよな

ところで「チンポがシコシコする」という日本語表現は、学術的に正しいと言えるのか?

チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、自ら勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
2021/05/31(月) 13:01:54.38ID:woX1VGYt
>>73
80年代にBASICやアセンブラベースでパソコンプログラミングで
GOTOで好きなところに飛べる自由とスパゲッティに対して
C言語が入り口と出口をしっかり決めてスパゲッティしないさせない
「構造化プログラミング」で一世を風靡して、「これからはCだぜ!」ってのがあって。
続く90年代前半に「これからはオブジェクト指向でC++って奴らしいぜ!」ってなったの。

ところがいまではC++をオブジェクト指向の主流に挙げる人がいないのでわかるように
こいつがオブジェクト指向の考え方じゃなくて自分に都合のいい仕様だけ
別言語からバラバラに引っ張ってきた奇形言語で
(いわゆる“クラスと再利用がオブジェクト指向!”って奴)
あんなもんを“これがオブジェクト指向”と称して布教したから現代まで続く大混乱と
結局オブジェクト指向がなんなのか一切理解できないまま
「オブジェクト指向ナンテー!」ってほざくアンチジジイを生み出したの。

その後、紆余曲折ありながら「メソッド/メッセージ」(命令、コマンド)の
オブジェクト指向本来の考え方を取り入れたJavaが広く使われるようになって
まだ古い頭の人には意味がわからないにしても
「各オブジェクトが役割を担い“命令”に反応するように作ることで
作業担当と権限を明確にして必要な修正の連鎖を最小限に抑える」
オブジェクト指向本来の目的が広く知られるようになった。
(むしろ、自分のコピーを作れて、命令セット差し替えで多態性って考え方は
この“オブジェクト化による独立性”が根本にあるので
こっちが実現できてないと「クラスの使い回し〜」もなんもないという)
78デフォルトの名無しさん
垢版 |
2021/05/31(月) 13:24:03.02ID:38WnKCHc
>>77
>「各オブジェクトが役割を担い“命令”に反応するように作ることで

オシッコを出したり止めたりというのは、チンポから力を抜いたりチンポに力を入れたりと、
オシッコはオシッコそれ自体は『意思』を持たず、オシッコが尿道を介してチンポに送られることによって、
オシッコを出したり止めたりが、『意思』を介して可能になるということだ。
79デフォルトの名無しさん
垢版 |
2021/05/31(月) 13:35:49.84ID:38WnKCHc
>>77
>作業担当と権限を明確にして必要な修正の連鎖を最小限に抑える

241 伝説の名無しさん sage 2020/10/13(火) 15:00:15.08
「胸がドキドキする」というのはいわば生理現象であり、抑えることはほぼ不可能だ。
月末のクレジットカードの支払額に、想像以上に可愛かったデリヘル嬢のおマンコにと胸を
突かれるのは悪いことではない。

翻って「チンポがシコシコする」というのは能動的な衝動であり、極めて不埒な責任転嫁である。
シコシコはチンポが勝手にやったことであり、決してチンポの持ち主の意向ではないという、どこぞの
政治家の「秘書が勝手にやったこと」のような言い逃れがしばしば聞かれ、あまつさえそれがまかり
通ってきたことは周知の事実である。

チンポからシコシコを奪取し、各人の掌に戻る日は果たしてやってくるのだろうか……。
2021/05/31(月) 13:47:44.35ID:ds1l7khg
こんなスレあるんだな。初めて来たよ。

オブジェクト指向が何かなんてそんな悩むような難しい話かなと個人的には思うけど、
たぶんこれが分からない人はオブジェクト指向を「技術」だと勘違いしてるんじゃないか。

オブジェクト指向は、例えば論理回路をどう組み合わせて加算器や減算器を実現するか?
というような意味での技術じゃない。
81デフォルトの名無しさん
垢版 |
2021/05/31(月) 14:16:14.95ID:LIfWJ7QD
>>68
販売管理では、見積から入金まで、複数の業務フェーズに同じ伝票が回る
共通伝票って共通書式じゃないよ、1つの伝票の同じインスタンス
1つの伝票の同じインスタンスが、業務フェーズが進むたびにデータが更新され、ステータスが変わる
(仕入も、高度な場合は複数の受注から在庫管理を経由して複数の仕入に紐付き、互いが互いの明細データになることがある)

業務担当者から見れば受注票、納品書など別の伝票だが、システム的には同一データのステータス違い
受注テーブルから納品テーブルへ物理的に移動させるシステムもあるが、意味的には同じ

同じ伝票を複数の業務で扱うんだから、伝票をクラス化すれば、1か所直せば全部直るじゃんかと
でもそもそも1つの伝票を最初から最後まで追うというシステムなので、巨大なシステム全体が1クラスのようなもの
各業務は1つのクラスのメソッドにあたり、伝票は親インスタンスのデータにあたる
親データの仕様が変われば、各メソッドの仕様を確認せざるを得ない
82デフォルトの名無しさん
垢版 |
2021/05/31(月) 14:24:00.05ID:C2PTAmxw
回路で言うなら
非オブジェクト指向:非同期設計/ディスクリート回路
オブジェクト指向:同期設計
(嘘)
83デフォルトの名無しさん
垢版 |
2021/05/31(月) 14:44:46.42ID:LIfWJ7QD
言い方を変えると、業務システムで同じメソッドの使いまわしはないというか
同じメソッドを使いまわす予算の使い方をしないというか

その業務をやるなら、その専用画面でやる
その業務機能を、別の画面から部分的に呼ぶことはない
それぞれ1か所でしか登場しない業務機能が、膨大にあるのが業務システム
(フォームがそれに近いね、クラスだしnewされるが、ほとんど実質スタティックな一意)

なので間接的に実装を記述する意味がないというか
業務要件に関してはね

細々としたものはあるよ
コントロールの反応の仕方とか、権限チェックとか
2021/05/31(月) 15:29:14.29ID:yuRQ4tlS
>>81
オブジェクト指向とは関係ないが
異なる伝票を1つの同じ伝票だと認識してることがそもそも間違ってるよ
エンティティとそのライフサイクルを識別できてれば共通伝票なんて発想にはならない

>業務担当者から見れば受注票、納品書など別の伝票だが、システム的には同一データのステータス違い
同一データのステータス違いじゃない
そういう考え方で設計してれば変更に弱くなるのは当然
85デフォルトの名無しさん
垢版 |
2021/05/31(月) 16:58:19.51ID:AP3os+rN
そういえばなんでプログラムの関数の名前って三人称なんだろ
アクターがメッセージングするなら二人称がふさわしくない?
2021/05/31(月) 21:09:31.89ID:ClWsVJV8
>>81
なんか「お盆に乗った巨大な書類綴りが社内の部署を巡回して
各部署が勝手に書類綴りにいろんなものファイルするんだから
書類綴りの変更はすべてに影響するのあたりまえじゃん?」
って言われてるような頭チカチカするものすげぇイメージが
伝わって来たのだが………
2021/06/01(火) 11:27:59.59ID:xZL1aOm3
>>85
タイプ量が少ないからじゃない?
88デフォルトの名無しさん
垢版 |
2021/06/01(火) 21:12:39.01ID:mhTSSEqD
>>84
本質は同一データのステータス違いであることを見抜かないと、無駄に冗長なシステムになり、改修困難になる

「見積から入金まで」って、ライフサイクルのことですよ
(入口)見積→受注→仕掛→納品→請求→入金(出口)
ここまで同じデータがステータスを変えて進んで行く
データ変換バッチが大量にある会社は、途中でライフサイクルが終わってるのかなw
でもほんとは終わってないから、そんなものが必要になる

「共通伝票」は>>68が勝手に言ったんであって、こっちは否定してるでしょ
「伝票」って言葉が悪いのかな、「案件」と言えば伝わるかな

変更に弱くなる「のは」ってなんだよ、どっから出てきた
変更の速さは神がかりと言われるんだが
むしろオブジェクト指向信仰、RDB嫌いはコケ案件にいる印象
(オブジェクト指向自体はゴリゴリに使うよ、でも使いどころが違う)
89デフォルトの名無しさん
垢版 |
2021/06/01(火) 21:18:50.88ID:Lmdhl1K7
>>88
ステータスを更新したときのタイムスタンプはどこに保持するん?
2021/06/01(火) 21:39:52.70ID:uwqmKkHK
>>88
>「見積から入金まで」って、ライフサイクルのことですよ

それは何のライフサイクルかな?
91デフォルトの名無しさん
垢版 |
2021/06/06(日) 11:41:01.21ID:9mmqAG88
88 じゃないけどたぶんこれ
https://www.youtube.com/watch?v=YNvv6fcxpRQ
2021/06/06(日) 15:33:21.99ID:7cVrq2u/
全然関係なくて草
類まれなる絶壁チューバー
93Mb
垢版 |
2021/06/08(火) 15:01:32.54ID:cE9t806p
>>73
昔は「算体主導型言語」とか言ってたなぁ。
Java なんかは GOTO 文はねーわ(構造化ステートメントで書け、という話だ)
広域変数はねーわ(シングルトン実装しろ、という話だ)で、
「こんな言語で開発ができるのかぁ〜!」と思ったが、
慣れると普通にできるので感心した。
catch & throw はあるわ、動的メモリ管理はあるわ、
わりと至れり尽くせりな感じなので気に入っている。

あえて難をいえば、BASIC の SWAP 文がないのと、
LOOP-UNTIL-DO-REPEAT 文がないことかな。
while(true)から break で脱出するのはいいのだが、
ループ内変数の初期化をしようと思うと、
「{」とかをいきなり書く破目になるのはいまひとつ。
94デフォルトの名無しさん
垢版 |
2021/06/08(火) 18:04:29.85ID:ys6CeGEV
>>93
おじいちゃん、いまはdropWhile,takeWhile,forEachを使うんだよ
95Mb
垢版 |
2021/06/09(水) 15:17:19.90ID:toklvVmn
使いこなせるやつが何人いるかだな。
功を狙ざれ日すなわち危うし、という話もあるし。
つーか、Java 9 って最新バージョンだろ?
もう一個バージョンが上がってくれるのを待ちたいところだ。
96Mb
垢版 |
2021/06/09(水) 15:20:08.33ID:toklvVmn
×「功を狙ざれ日すなわち危うし」
〇「技を得て功を練らざれば、すなわち危うし」
97デフォルトの名無しさん
垢版 |
2021/06/09(水) 19:33:03.27ID:YKvIUGd6
おじいちゃん、Javaはいま16だよ
98デフォルトの名無しさん
垢版 |
2021/06/11(金) 11:15:11.08ID:242Lp4d+
『高スペック人材』なら、外資に転職すればいい話だよね?

「6年勤めたNTTを退職しました」という記事が、注目を浴びているようですが、この筆者がNTTを辞めた理由が、
私が32年前(1986年)にNTTを辞めた理由とあまり変わらないのに、少々驚きました。
私がNTTを辞めた件に関しては、これまで色々なところで話しては来たのですが、まとまって文章にしたこと
がなかったので、これを機会に書くことにしました。
https://lite.blogos.com/article/341485/

なのにそれが使い潰されるってのは、完全な自己責任では?

「東大・京大あたりの出身者はやはり頭が良く、物事の本質をしっかり考え、理にかなったことを言います。
ただ、自分の考えに自信を持ちすぎ、周囲に合わせて柔軟に行動するということができません。また、
会社では一見無駄な業務や下積み仕事があるわけですが、高スペック人材は自分が無駄だと判断したら止めてしまったり、
手を抜いたりします。結果として、職場で浮いてしまい、あまり評価されません」(エネルギー・経営者)
https://toyokeizai.net/articles/-/430519?display=b
99デフォルトの名無しさん
垢版 |
2021/06/11(金) 11:31:07.77ID:242Lp4d+
プログラマーにしても、求められる能力が昔と今とで変わってきている!

なぜコードを一行も書けない人間が管理するのか
https://medaka.5ch.net/test/read.cgi/prog/1524449821/

ソフトウェア最大手の「マイクロソフト」が、業績不振のため全従業員の約5%に当たる最大5000人
に及ぶリストラ策を検討してることが明らかになった。
ロイター通信によると、対象はリサーチ・ディベロップメント、マーケティング、セールス、ファイナンス、
リーガル、ヒューマンリソース、ITとなっており、今後1年半を掛けて行われるとのこと。
また、この内の1400人は本日付で解雇される模様。
https://www.fukeiki.com/2009/01/microsoft-job-cut.html
100デフォルトの名無しさん
垢版 |
2021/06/11(金) 11:42:48.75ID:242Lp4d+
このテのエリート人材はもう要らない!

トヨタ自動車で勤務していた男性(当時28)が2017年に自殺したのは、上司のパワーハラスメントが原因として
労災認定されたことを巡り、トヨタが遺族側と和解していたことが7日、分かった。トヨタ幹部と遺族側代理人
が明らかにした。和解は4月7日付。豊田章男社長が遺族に直接謝罪し、再発防止策を説明したという。
https://www.nikkei.com/article/DGXZQOUF070GK0X00C21A6000000/

ひと昔前なら模範社員として出世していたに違いない『高スペック人材』も、今は使い潰されるだけ!
101デフォルトの名無しさん
垢版 |
2021/06/11(金) 11:58:57.98ID:242Lp4d+
ゼネスト?

https://mobile.twitter.com/mas__yamazaki/status/1402868968134647810

山崎 雅弘
@mas__yamazaki
返信先:
@mas__yamazaki
さん
もし国民の多くが、個人としての自尊心を健全な形で持っている国なら、自国の政府トップがこれだけ自国民の命と健康を後回しにして特定の営利イベント開催を強行しようとする時、ゼネスト等で対抗してもおかしくないと思う。

それが本物の民主主義国。経済的に裕福かどうか、職業が何かは関係ない。
https://twitter.com/5chan_nel (5ch newer account)
102デフォルトの名無しさん
垢版 |
2021/06/11(金) 17:35:16.18ID:kjfonFYR
ひろゆき氏:試算してみたことがあるんですが、できそうなんですよね。毎月7万円を国民に配ろうと思うと、約90兆円あれば可能です。
 そのためには、生活保護をなくしてベーシックインカムで一本化したり、お金持ちから多く税金を取るため
に相続税を増やしたり、高齢者も医療費の3割負担をお願いしたり。そうやっていけば、実現可能です。
https://diamond.jp/articles/-/273191
2021/06/12(土) 00:43:39.62ID:5WmNz19V
>>102
海外移住出来ない法律が必要
104Mb
垢版 |
2021/06/12(土) 14:26:41.13ID:yUTryCt0
なんか、このスレ寂れてんのか?
「オブジェクト指向」というのは、
「オブジェクト・オリエンテッド」の日本語訳だろ?
で、「オリエンテーション」というのは「光は東方より」っつって
アレクサンダー大王が東征したワケだ。
昔は「オブジェクト・オリエンテッド」を「算体主導型」と訳していた。
つーか、C 言語の「参照」と「実体」や、「構造体」みたいなモノを、
「メッセージを投げるとメッセージが返ってくる」という
「メッセージング」に帰着させただけの話で、古いコーディングスタイルを
知っている世代にとっては、わりと受け入れやすい概念だと思われ。
105デフォルトの名無しさん
垢版 |
2021/06/12(土) 14:36:31.33ID:RadmeEVr
おじいちゃん、何回同じ話するの
2021/06/12(土) 18:35:27.34ID:uK7pkuCM
>>105
公演会場の数だけ
107デフォルトの名無しさん
垢版 |
2021/06/13(日) 03:44:57.58ID:yuwBqkDc
メソッド単位での単一責任原則が守られてないオブジェクトは拡張するのが難しい
オブジェクト指向の闇
108デフォルトの名無しさん
垢版 |
2021/06/14(月) 11:53:15.15ID:LnG83xz5
>>98
東大京大でも院から転入した学歴ロンダが居るからそういうのは排除しないと

>会社では一見無駄な業務や下積み仕事があるわけですが、
>高スペック人材は自分が無駄だと判断したら止めてしまったり、
>手を抜いたりします。

手を抜くというより例えばいちいち手作業やってるのをあほらしいから
プログラミングして自動化してもそれでも手を抜いたと言われる会社なら辞めた方が良い
日本には不合理な精神論が蔓延している
109デフォルトの名無しさん
垢版 |
2021/06/14(月) 12:14:14.93ID:TE2ntQhj
>>101
>特定の営利イベント開催

今問題になってるIT相のNTT干す発言も立派な生贄パワハラ確定だが
IT相は臀痛出身でさもありなんだと思うわ
体質が染みついてるんだろう
110デフォルトの名無しさん
垢版 |
2021/06/14(月) 12:17:33.80ID:TE2ntQhj
NTTじゃないなNECだった
>>98 >>108 責任取れ
111デフォルトの名無しさん
垢版 |
2021/06/15(火) 21:18:04.16ID:kvwlPYi1
>>108
そういえば、「IDE 使用禁止」「ソースコード管理ツール使用禁止」
みたいな現場が昔あったっけ。
「工数の水増し」のために開発効率を落としているとしか思えなかったが、
当時は携帯電話が売れてたからそれで通ってたんだろうなぁ。
ゲームとか携帯とかは基本イベントドリブンだから
オブジェクト志向とは相性がいいんだが、
C++とか使ってると「そもそもコンパイルが通らない」とかいった
事態が起きるのでどんどん工数が膨らむ。
残業・休出を減らして開発効率を上げて
工数を圧縮して納期を短縮するとかいった発想は、
たぶん派遣業者にとっては許しがたいことなので、
オブジェクト志向なんていうのは
異端思想なんだろうな、と思う。
112デフォルトの名無しさん
垢版 |
2021/06/16(水) 01:09:10.61ID:6J1+Z3Pi
残業減らして納期短縮?
113デフォルトの名無しさん
垢版 |
2021/06/16(水) 16:20:55.86ID:uJQ6HHCX
そもそもコンパイルが通らない?
2021/06/16(水) 17:37:34.93ID:rKENZv+K
そもそも日本語として成立してないの気付いてなさそうだ
知ったかくん哀れ
115デフォルトの名無しさん
垢版 |
2021/06/16(水) 18:17:19.54ID:5mM/xZpb
ネットで拾ってきたC++のコードがCコンパイラで使えない!とお怒りのようです
116デフォルトの名無しさん
垢版 |
2021/06/16(水) 22:40:59.38ID:zL6K3y52
解雇されたエンジニアが、社長、副社長、人事部トップ3人を銃殺するという事件がシリコンバレーで起った。
警察に捕まった47歳のエンジニア、ジング・ウー(Jing Wu)は、ワイアレス半導体のベンチャー企業
SiPort(シポート)の元社員。3人の子供の父親であるウーは不動産投資に手を出し、17軒の不動産を持っている。
しかし、このところの不動産市況の暴落ですべての計算が狂ったようだ。
自分で弁護士を雇えないほど資金繰りは苦しいようで、日本の国選弁護人に相当する米国の公共弁護士がついた。
中国から米国に移民したウーは、不動産投資で子供の教育費などにあてようと資産運用を図ったことが裏目に出た様子。
そこへきて勤務先から「業績遂行能力不足」を理由に11月14日、解雇を言い渡された。彼はいったんシポート社
を出て銃を忍ばせ、シッド・アグラワルCEO、副社長のブライアン・プグ、人事部のマリリン・ルイスに退職後
の相談と面会を求め、同日午後4時、会議室で3人を射殺した。
https://toyokeizai.net/articles/amp/2466?display=b&;amp_event=read-body
117デフォルトの名無しさん
垢版 |
2021/06/16(水) 22:47:00.55ID:HI6xt2b+
>>116
チャンコロなんか野放しにしておくからそういうことが起こる。
二階とかの親中議員を放置しておくとその内日本が中国の一部にされてしまうぞ。
2021/06/17(木) 12:05:51.67ID:EQR7Wr8E
漏れも親日じゃない相手には反中で対応するのは賛成だが
たまたま犯罪者が中国人だったたけですべての中国人を問題視するのは
プログラマとしての資質を疑うレベル

不動産投資に失敗したなら自己責任
銃社会が問題
119デフォルトの名無しさん
垢版 |
2021/06/17(木) 21:36:14.19ID:zUmwodpA
確かに。
1つの事象を見て全体がそうだと決めつけるような
分析力の低い人間にプログラミングは無理だと思う。
2021/06/17(木) 22:21:07.28ID:qQJq6wCc
プログラミングとはカスリもしない問題をこじつけ
善人ぶって正論かのような言葉を並べ本質を見誤る愚者
或いは被害拡大を狙った偽善者
121デフォルトの名無しさん
垢版 |
2021/06/17(木) 22:37:41.01ID:LOJFuKN6
ところで「チンポがシコシコする」という日本語表現は、学術的に正しいと言えるのか?

チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。

オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、自ら勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。

違うか?

「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
122デフォルトの名無しさん
垢版 |
2021/06/18(金) 08:21:50.18ID:K6IV+2I9
何とも甘い連中だ
チャンコロ放置した結果どうなった?
5chがチャンコロからサイバー攻撃を受けて今何種類ものブラウザが使えなくなっているじゃねーか。
お前らは一々こいつはいいゴキブリだから殺さない、こいつは悪いゴキブリだから殺すとかやってんのか?
台湾がやられたら次は日本だぞ?殺るか殺られるかのときにそんな甘っちょろいこと言ってるから
中国を牽制している他の国々と足並みが揃わない。このままではレッドチームに吸収されるぞ。
123デフォルトの名無しさん
垢版 |
2021/06/18(金) 11:00:42.73ID:qEfWUkBU
そうだねコロナDNAワクチンで遺伝子弄られて
思考が5Gで政府に筒抜けになるから君に逃げ場は無いね。
124デフォルトの名無しさん
垢版 |
2021/06/18(金) 11:56:11.52ID:7Huy+AZL
ブラウザやクラッキングを言うならロシアも中韓朝以上に危険
125デフォルトの名無しさん
垢版 |
2021/06/19(土) 17:34:54.53ID:MHPjPgrJ
https://mobile.twitter.com/oburicco/status/1405526640570953731

ぴえまる🥺輪郭2点脂肪移植DT10ヶ月
@oburicco
去勢はコストカットw w w wたしかに最大の投資すぎる天才じゃんみんな去勢しろ
https://twitter.com/5chan_nel (5ch newer account)
2021/06/21(月) 12:20:26.23ID:ESTe/Cdm
アランケイが考えていたのはインターフェース指向だったという話を聞いたことがあるな。
インターフェースで機能への参加権を付与する感じっぽい。

printableとかupdatableとか。
127デフォルトの名無しさん
垢版 |
2021/06/24(木) 15:58:03.82ID:xOyx/c6u
>>115
> ネットで拾ってきたC++のコードがCコンパイラで使えない!とお怒りのようですC++はC コンパイラにプリプロセッサという皮を被せただけで、
C のコンパイラは基本的にマクロプリプロセッサなので、
ヘッダの巡回参照をすると簡単に無限ループに入りこんで落ちる。
Java が多重継承を禁止していないのは、そのあたりのチェックが
面倒臭いからだと思われる。
C++は、「二枚重ねだが気持よくないし、安全でもない」とか。
ゲーム業界を含むディジタルのコンテンツ処理の業界に
首を突っこんでみると、「C++ のコンパイルエラーを消すだけの
単純なお仕事です www」とかいった話は、けっこうあるわけだが。
128デフォルトの名無しさん
垢版 |
2021/06/24(木) 16:02:50.85ID:xOyx/c6u
>>126
> アラン・ケイが考えていたのはインターフェース指向だったという話を
聞いたことがあるな。
たぶんアラン・ケイではないけれども、「『オブジェクト志向』という
ネーミングは失敗だった。『メッセージング志向』と名づけていれば
よかった」という反省の弁を述べていた有名な人はいる。
129デフォルトの名無しさん
垢版 |
2021/06/25(金) 20:50:35.01ID:8d9Ppd4I
カプセル化についてどうしても分からないんだけど
オブジェクト指向やインスタンスについて
Wikipediaを調べると
「クラスの中で作ったデータ構造やアルゴリズムを修正したくなった時に、それらをクラスの外側に影響にせずにクラス内の範囲に
収めることができる」と書いてあるけど

それってクラスやインスタンスが出て来る前から
関数だって同じでしょ?

クラスやインスタンスというものを使う理由になってるのかな
関数と何がちがうの?

それに関数やインスタンスのメソッドだって
引数の構成を変えたくなったり追加の引数が欲しくなったら
外部に影響を与えざるを得ないのでは?
(続く)
130デフォルトの名無しさん
垢版 |
2021/06/25(金) 20:51:07.41ID:8d9Ppd4I
(続き)
確かにクラスやインスタンスはプロパティの変数を
内部に保持できるところは新しいが
しかしそれをドットで格納や参照しちゃうと
肝心のカプセル化が壊れてしまうっていうんだから
結局は関数のローカル変数と同じだ


インスタンス内で保持するプロパティは
そもそもコンストラクタの引数か
メソッドの引数を経由して流れてくるものなんだから
そういう意味では、クラスとインスタンスは
関数と根本的な意味で違いがないのでは?


わざわざクラスとインスタンスとメソッドのように
複雑にしたのなら、
関数にはない何か素晴らしいメリットがあるのだろうか?
そうじゃなきゃ単に構文が複雑になっただけのように思えるが。
(疑問終わり)
2021/06/25(金) 21:25:10.29ID:7fH3vpXY
ゼロリスクとかないし
上流の人が下流の変な行いを制限するための仕組み
132デフォルトの名無しさん
垢版 |
2021/06/25(金) 22:05:11.75ID:5F2XL1Xe
スコープがクラス内である変数(クラス変数)に相当するものが、
関数にあったっけ?

クラス変数がカプセル化のキーだと思う。
133デフォルトの名無しさん
垢版 |
2021/06/25(金) 22:24:11.75ID:5F2XL1Xe
以下でfileとfがカプセル化および、手続き化できてると思う。
マネージャーからは、Catalogが保持するfileとfは見えないのが正しい。

class Catalog
 atter_reader :file
 atter_accessor :f

 def initialize(file:)
  @file = file
 end
  
 def open
  @f = open(file, 'r')
 end

 def output(var:)
  f.puts(var)
 end
end

class Manager
 def makeCatalog
  c = Catalog.new(file: 'カタログ名.txt')
  c.open
  c.output(var: '書き込みたい内容')
 end
end
134デフォルトの名無しさん
垢版 |
2021/06/25(金) 22:40:21.64ID:5F2XL1Xe
外側に影響を出さずに修正する例

class Catalog
 atter_accessor :f

 def initialize(file:)
  @file = file
 end
  
 def open
  @f = open(file, 'r')
 end

 def output(var:)
  f.puts(var)
 end

 private

 def file
  "#{@file[0, 2]}\#{@file}"
 end
end

class Manager
 def makeCatalog
  c = Catalog.new(file: 'カタログ名.txt')
  c.open
  c.output(var: '書き込みたい内容')
 end
end
2021/06/25(金) 22:53:02.93ID:eNSUt1x8
クラス変数はいつになったら出てくるのん?
136デフォルトの名無しさん
垢版 |
2021/06/25(金) 23:10:24.13ID:YN5s3pHX
すまぬ。
インスタンス変数の間違いだった・・・。
2021/06/26(土) 01:49:46.90ID:WPp8qNv5
関数の場合はクロージャでキャプチャする変数がインスタンス変数みたいなもの
fileやfをキャプチャした一連のクロージャを連想配列や構造体に入れて返す関数を書けばいい

Catalog = Struct.new("Catalog", :open, :output)

def make_catalog(file:)
 f = nil
 Catalog.new(
  open: -> { f = open(file, 'a') },
  output: -> var: { f.puts(var) }
 )
end

c = make_catalog(file: 'カタログ名.txt')
c.open.()
c.output.(var: "Write Something")
138デフォルトの名無しさん
垢版 |
2021/06/26(土) 02:05:19.25ID:jug2ShuU
その書式でメソッド書くのはきつくない?
2021/06/26(土) 05:29:29.35ID:+EKqv5Ba
>>129
結局何が聞きたいのかさっぱり分からん。

カプセル化は「必要最小限の物だけを見せる」単純化の方法であって
オブジェクト指向とは直接関係がない。

インスタンスのメリットはごちゃごちゃ言ってないでコード書けば一発で分かる。
畳の上で水泳の練習をして泳げるようになるのは天才だけ。
凡人は実際に水に入って泳がないと上達しないよ
2021/06/26(土) 10:59:04.51ID:Rie4kKQj
まぁ OOで終わっている人が多いからな。 Cで仮想テーブルまで作ってやっている人が居たが、単にOOオタクというだけだった。
OOの上にコンポーネントやバウンタリー構造を構築する方が大事で、SOLID原則を実現するためにOOPを使うという事を知らない人だらけ。
企業のファイナンスや基幹経験も無しに、小規模ユーティリティーでビジターとかデザパタハイが歳食っても治らない。
ビジターで一回、全修正でひどい目に合わないとわからないのかも。
2021/06/27(日) 06:53:14.21ID:edyl0XAn
がん細胞の如くソース撒き散らされたマジックナンバー。
定数ラベルにしてあれば1行の修正。

難しいこと言ってるが原点は定数記号。
142デフォルトの名無しさん
垢版 |
2021/06/27(日) 08:14:48.33ID:sNBPWRnW
>>141
それまったく違うよ。
定数を直接参照させると変化を吸収できないから、
メソッドに包んでメッセージでオブジェクトを参照するんだよ。
2021/06/27(日) 11:40:01.24ID:N2ruTaG4
変化はポインタtoポインタ、ジャンプテーブルで解決。
144デフォルトの名無しさん
垢版 |
2021/06/27(日) 11:44:04.42ID:U1pSP8r9
π って
#include <math.h> で
M_PI
使うのと
#define myPI 3.14hogehoge
するのとどっちが良い?
2021/06/27(日) 12:16:41.98ID:FB9ZSvE6
オブジェクト嗜好って、C言語的には所詮構造体、共用体、ポインタの組み合わせなんだよなと思ってしまう。
2021/06/27(日) 12:37:46.84ID:2gHjXwTf
それと関数へのポインタな
2021/06/27(日) 12:41:11.83ID:G7M856dZ
大抵のオブジェクト指向ω言語は
c で構造体 (FILE *) の例が一番良く合うと思うが
self とか this とかを第一パラメータ省略出来るだけで
やってることは同じ
148デフォルトの名無しさん
垢版 |
2021/06/28(月) 21:49:59.55ID:hb08z3M6
「ループって結局gotoなんだよな」って謎のうわごと言ってる変な人が涌いたなぁ…
というこの感じ、わかりますかね?
149デフォルトの名無しさん
垢版 |
2021/06/29(火) 09:39:43.72ID:FQiEOJle
>>148
そのうわごとはある意味合っている
中間言語に変換して見てみれば
条件分岐による指定アドレスへの
ブランチ命令やジャンプ命令になるから
2021/06/29(火) 19:18:22.85ID:B7EiqjVa
>>148
まぁ形としてgotoを使わず書くのが構造化ってことやから
2021/06/29(火) 19:20:40.15ID:z+Vt20Ug
下らん。自明。
152デフォルトの名無しさん
垢版 |
2021/07/01(木) 15:09:55.43ID:i0Niwzqk
>>150
強盗退治のダイクストラ大先生の気持はわかるのだが、
goto を退治しようと思うと、変数スコープをどうするかとか、
受け皿としての構造化ステートメントをどうするかとかいった
問題もある。
LOOP - UNTIL - DO - REPEAT 構文なんかは、
変数スコープとか無限ループの中からの break とか、
けっこうややこしい話がある。
べつに批判というわけではなくて、
爺いの繰り言だと思ってくれ。
153デフォルトの名無しさん
垢版 |
2021/07/02(金) 06:08:53.71ID:1mPaPsjo
>>152
変数のスコープとgotoって何か関係するの?
154デフォルトの名無しさん
垢版 |
2021/07/02(金) 10:44:14.20ID:xu7tv1xS
>>150
javascript のオブジェクト指向がクラス指向じゃなくて
プロトタイプベースだってしきりに宣伝されていた時期があったが
あれこそ只の言い訳なんだよ
155デフォルトの名無しさん
垢版 |
2021/07/02(金) 10:46:12.72ID:xu7tv1xS
>>152 のじじいには是非とも longjump と exception の違いについて解説してもらいたい
2021/07/02(金) 21:54:55.09ID:QH8xfbBh
>>153
スコープを設けることで
スコープ内へ、あるいはスコープ外へのgotoはできないようにした。
157デフォルトの名無しさん
垢版 |
2021/07/06(火) 14:46:59.64ID:C2l77xOE
「仕事ができる社員には、入社した頃から優秀で何でもできちゃうというタイプもいますが、経験を積んで
段階的に良くなっていくということがあります。一方、仕事ができない社員は、せっかく経験を積んでも、
教育訓練を受けても、能力・スキルがなかなか上がりません。自分の能力やパフォーマンスが低いという自覚
がないから、そういう残念な状態がずっと続いてしまうんでしょうね」(サービス)
https://toyokeizai.net/articles/amp/437325?page=2
158デフォルトの名無しさん
垢版 |
2021/07/08(木) 09:45:26.96ID:55hhGJGn
>>155
> 是非とも longjump と exception の違いについて解説してもらいたい
階層のあるロジックで、途中の階層でファイル開けたりするじゃん。
まぁ、最近の実行環境とかだったら、自働的に閉じてくれるだろうけど、
ハックアタックとか喰らったりすると、処理がおっつかなくなって
システムが落ちたりするわけだよ。
例外を拾うと、戻ってくる途中で後始末してさらに上に例外を投げる、とか
できるから、なんぼか安全でユーザに親切なコードを書ける。
ただし、これは OO に限った話じゃなくて、昔の Lisp にも
キャッチ&スローはあった。
Lisp 的な使い方だと、「タイマーを仕掛けておいて、あるアルゴリズムを
実行中にタイムアウトしたら、例外で呼び元に戻って別のアルゴリズムを
試す」みたいなこともできる。
2021/07/08(木) 11:23:32.18ID:2xQyyxJV
ロングジャンプするとスタックはどうなるの?
2021/07/08(木) 11:37:56.66ID:qzQUzceM
そのままじゃないの?
ロングジャンプと関数呼び出しのちがいがわからない
2021/07/08(木) 11:40:31.56ID:qzQUzceM
アセンブラの話かと思った
162デフォルトの名無しさん
垢版 |
2021/07/09(金) 15:21:32.46ID:CPOxdqYe
>>159
>>160
ローカル変数を積んだヒープもリターンアドレスを積んだスタックも、
ぜーんぶチャラにされてしまうので、C 言語だったらそういった情報は
グローバル変数に積んでおくしかないと思う。
C 言語というのは、
C のソース ⇒ マクロ 展開の後のソース ⇒ マクロアセンブラのソース
⇒ 展開後のネイティブアセンブラのソース ⇒ ネイティブなマシンのコード
ということになっているので、「マクロアセンブラのソース」と
「逆アセンブルしたネイティブなコード」(でなければダンプしたバイナリ)を
比較すりゃあいいんじゃねぇ? つーてもそこからリンカが動くわけだから、
シンボルは解決されていないわけで、「あっちゃとこっちゃでラベルの
シンボルが同じなのに型が違う」とかいった話があったりするので
けっこう面倒臭いんだが。
つーても、こういう話は OO とはなんにも関係がなくて、
単に Java が間に仮想機械を挟んでいるだけの話だと思うが。
163デフォルトの名無しさん
垢版 |
2021/07/09(金) 15:28:01.63ID:CPOxdqYe
>>161
> アセンブラの話かと思った
うん、本当に その通りだ。
隠蔽体質が限界に来ちゃったんで、「いっぺん VM で切り分けようよ」と
いう話になって、IEEE の数値表現とかで「C の構造体の穴」とかの
話は別枠にしようというのが、もともとの話(OO と全然関係のない
話でスマソ)だ。
164デフォルトの名無しさん
垢版 |
2021/07/09(金) 15:34:42.87ID:CPOxdqYe
>>160
> ロングジャンプと関数呼び出しのちがいがわからない
正確にいうと「関数呼出しの戻り」だと思う。
一段上に戻るのが、普通の「関数呼出しの戻り」で、
途中の呼出しのためにスタックやヒープに積んどいた
情報をぜんぶすっ飛ばしてチャラにしちゃうのが longjump 。
そのときの情報が半端に残っているもんだから、
うっかり別プロセスから呼ばれたときにゴミを拾ってややこしいことになる。
Java でも「これ、スレッドフリーで実装してるから」というのを
宣言してないメソッドを使うと、ややこしいことが起きた時代があったげな。
どっとはらい。
2021/07/10(土) 13:45:47.10ID:keCdkflV
馬鹿だw
166デフォルトの名無しさん
垢版 |
2021/07/11(日) 13:38:07.40ID:AB3pchpm
>>165
> 馬鹿だw
誰が? www
「文句があるなら、四百字詰めの原稿用紙に、
テンとマルを数えて三枚以下にまとめて火曜日までに提出しやがれ!」
2021/07/11(日) 18:06:50.71ID:UkcAZW7O
自覚はあるようだ
2021/07/12(月) 14:49:21.34ID:LBA0QktL
自覚があれば許されるって問題じゃないがな
■ このスレッドは過去ログ倉庫に格納されています
5ちゃんねるの広告が気に入らない場合は、こちらをクリックしてください。

ニューススポーツなんでも実況