[過去ログ] オブジェクト指向はクソじゃなかったよ Part3 (94レス)
上下前次1-新
このスレッドは過去ログ倉庫に格納されています。
次スレ検索 歴削→次スレ 栞削→次スレ 過去ログメニュー
1: 2018/11/22(木)20:14 ID:egOZHV+V(1) AAS
カプセル化(英語:encapsulation)とは、オブジェクト指向を構成する概念の一つで、
オブジェクト内部のデータを隠蔽したり(データ隠蔽)、オブジェクトの振る舞いを隠蔽したり、
オブジェクトの実際の型を隠蔽したりすることをいう。
偏差値の低い学校向けの情報処理系教科書において「大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心としたインターネットを作った人たちは「階層化の有害性」として
「絶対に使うな」としている。大雑把にいうと、その時は良くても、将来的な改修の際に隠蔽されたデータに
アクセスできないと解決できない問題が出てきて、結果的にデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で
縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」
という概念はない。
省7
2: 2018/12/17(月)14:20 ID:DklsKoO9(1) AAS
アナルプレイしたいです
3: 2019/05/11(土)18:10 ID:Se4Lj3bD(1/2) AAS
こっちのスレもあんのかよw
まともなシステムを開発した経験がある奴いる?
4(1): 2019/05/11(土)18:25 ID:D877RybE(1) AAS
まともなシステム開発 = オブジェクト指向開発ということでいいか?
5: 2019/05/11(土)19:42 ID:Se4Lj3bD(2/2) AAS
>>4
限定はしないが
6: 2019/10/07(月)22:03 ID:VbH2HhFT(1) AAS
ところで「チンポがシコシコする」という日本語表現は、文法的に正しいのだろうか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンボ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンボ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
7: [age] 2020/01/08(水)21:26 ID:0mytWgwM(1) AAS
age
8: 2020/01/09(木)01:52 ID:icgXcqUH(1) AAS
スレタイと本文がすでに喧嘩してる
9: 2020/01/16(木)15:04 ID:TuYxoCDY(1) AAS
オブジェクトのクラスは概念であり、インスタンスは現物である。
チンポはチンポでも人それぞれいろいろなチンポがある、それはクラスとしてのチンポ。
しかしながら自分のチンポは一つしかない、それがインスタンスなのである。
10: 2020/01/16(木)15:32 ID:l5J0jQZo(1/4) AAS
一般論としてのチンポ論と、自分のチンポが現在どうしているかは、明確に区別して考える!
staticなクラスメソッド・クラス変数は実行時にすでにメモリに呼び出されています。
これに対し非staticな変数やメソッドは、newでインスタンス化した時にメモリに呼び出されます。
staticなクラス変数は、処理の結果によって値が変わるのではなく、クラス毎で統一して持つ値になります。
11: 2020/01/16(木)15:42 ID:l5J0jQZo(2/4) AAS
非 static なメンバはインスタンスと関連して記憶されています。なので、クラスから非 static
なメンバへアクセスしようとすると、どのインスタンスの メンバ にアクセスしたいのかコンパイラは判別できません。
そのためクラスから非 static なメンバにアクセスすると、コンパイルエラーとなります。
同様にクラスに関連付けられた static なメソッドから 非 static なメンバにアクセスすると コンパイルエラーになります。
12: 2020/01/16(木)15:44 ID:l5J0jQZo(3/4) AAS
>そのためクラスから非 static なメンバにアクセスすると、コンパイルエラーとなります。
チンポは他人に見せるものではない!
13: 2020/01/16(木)15:51 ID:l5J0jQZo(4/4) AAS
チンポについて一般論として語るのは良いが、自分のチンポは隠蔽(カプセル化)されるものである!
14: 2020/01/18(土)16:22 ID:xirPIu0H(1/3) AAS
本体とチンポは、別々のインスタンスとして考えなければならない!
15: 2020/01/18(土)16:24 ID:xirPIu0H(2/3) AAS
本体とチンポは、マルチスレッドである!
16: 2020/01/18(土)16:45 ID:EsGjhCuG(1) AAS
本体とちんぽは着脱可能である!
17: 2020/01/18(土)20:48 ID:xirPIu0H(3/3) AAS
スレッドはメインルーチンとは独立して動くが、これはチンポが本体とは独立して勃起するのと同じ。
18: 2020/01/20(月)19:08 ID:L1zTlUe8(1/3) AAS
そこでまずこのクラスをスレッドとして動かすことが出来るようにしなければいけません。
スレッドとして動かす為にはThreadクラスのサブクラスとするか、Runnableインターフェースを
実装する必要がありますが、このクラスは既にAppletクラスのサブクラスであるためさらに
Threadクラスのサブクラスには出来ません。よってRunnableインターフェースを実装することになります。
19: 2020/01/20(月)19:15 ID:L1zTlUe8(2/3) AAS
どのタイミングで作成するかは場合によりますが、通常はアプレットが最初に開始された時
にスレッドを作成します。その為initメソッド内でスレッドを作成しましょう。
またThreadクラスのオブジェクトを作成する時に指定する引数にはスレッドとして動かすクラス
を指定するのでしたから、今回の場合は自分自身である「this」を指定します。
20: 2020/01/20(月)20:40 ID:L1zTlUe8(3/3) AAS
アプレットは、アプリケーションのように main メソッドを持っていません。しかし、
代わりにアプレットを実行、コントロールするためのメソッドを持っています。
まず、サンプルプログラムと実行方法を説明します。
import java.applet.Applet;
import java.awt.Graphics;
import java.awt.Color;
public class HelloApplet extends Applet {
String text;
public void init() {
text = "Hello, world!";
省20
21: 2020/01/20(月)20:49 ID:TMFwfrMm(1/2) AAS
継承するクラスをAppletからFrameに変更し,mainメソッドを持つクラスを作ってその中から
Frameのinitメソッドを呼び出す,基本的にそれだけです。
外部リンク:qiita.com
22: 2020/01/20(月)22:32 ID:TMFwfrMm(2/2) AAS
もちろん逆に、アプレットで作ったソフトを、配布用のアプリケーションにしたい場合も
Appletに代わるFrameを作成し、main()メソッドからインスタンスを生成して実行すればよいのです
23: 2020/01/21(火)10:47 ID:4bpWXhy/(1) AAS
/www.cis.shimane-u.ac.jp/~rokui/lecture/QA/lect4.html
24: 2020/01/21(火)11:57 ID:d8Oaqqlq(1/3) AAS
ゲームとアニメの違いは、プレイヤーが操作できるか否かだ。
25: 2020/01/21(火)13:54 ID:d8Oaqqlq(2/3) AAS
コペルニクス以前に「宇宙」「天体」は存在しない!
26: 2020/01/21(火)16:04 ID:3POOz5m6(1) AAS
アプレットの中でアニメーション(リアルタイムゲームを含む)をするのは結構
面倒である.まず,アプレットにはmainがない(書いても呼ばれない)ので,
明 示的にスレッドを作る必要がある.アプレットは Applet クラスのサブクラス で作らなくてはいけないので,Runnable インタフェースを継承することになる.
27: 2020/01/21(火)17:00 ID:d8Oaqqlq(3/3) AAS
処理はマルチスレッド、描画は同一アプレットで!
28: 2020/01/21(火)17:13 ID:0fQ1TphW(1/4) AAS
まずごく簡単なサンプルプログラムを作ってみよう。
29: 2020/01/21(火)17:17 ID:0fQ1TphW(2/4) AAS
描画アプレットは最後でいい
30: 2020/01/21(火)17:19 ID:0fQ1TphW(3/4) AAS
チンポはそれ自体が独立した生き物であり日々活動しているが、外から見えるのは「皮」だけ。
31: 2020/01/21(火)17:25 ID:0fQ1TphW(4/4) AAS
チンポがシコシコするそのメカニズムは、億兆の数式でも書ききれない。
外から見たチンポは、最後の表面的な描画アプレットにすぎない!
32: 2020/01/21(火)17:35 ID:E9LLdyau(1) AAS
描画はマルチスレッドしない、肉眼で見る光景は一つだから。
33: 2020/01/21(火)17:53 ID:9LxBEujF(1) AAS
もう疲れたよパトラッシュ
34: 2020/01/22(水)07:55 ID:XnuZbeSJ(1/2) AAS
アプリケーションとアプレットの共有
これまで、アプリケーションとアプレットを切り離して解説してきました
もちろん、それぞれの機能は別物です
ここで気になるのがアプレットとアプリケーションを組み合わせられないのかということです
つまり、コマンドラインからJDKの java コマンドで実行することができ
かつ、ブラウザでも見ることができるという代物です
35: 2020/01/22(水)08:02 ID:Qq2b8i1H(1) AAS
オブジェクト指向が万能薬のように扱われて
必要もないのに言語に組み込まれていった暗黒時代はクソだと思いたい
36: [age] 2020/01/22(水)10:05 ID:8UP+RZiZ(1) AAS
90年代にクソが量産されてその保守で苦しんでるみなさん
37: 2020/01/22(水)21:22 ID:XnuZbeSJ(2/2) AAS
public static void main(String [] args )
{
FrameApplet frame = new FrameApplet();
frame.init();
frame.setBounds( x, y, width, height );
frame.addWindowListener(
new WindowAdapter() {
public void windowClosing(WindowEvent e)
{ System.exit(0);}
}
省3
38: 2020/01/23(木)04:22 ID:b1RJU1gm(1) AAS
オブジェクト指向そのものはクソじゃなくてそれを使おうとするやつの頭がクソなだけでしょ
39: 2020/01/23(木)09:41 ID:nfNHCPGN(1/2) AAS
2015年6月29日月曜日
System.Drawing.Graphicsのマルチスレッド非対応問題
Graphics.DrawImageはマルチスレッド対応していない。
外部リンク[html]:redditchan.blogspot.com
40: 2020/01/23(木)10:09 ID:JgeeW2+j(1/3) AAS
キーリスナーとグラフィックを分離
41: 2020/01/23(木)13:53 ID:JgeeW2+j(2/3) AAS
フォーカスは通常、マウスカーソルによるクリックでセットできる。また、Tabキーによっても変更できる。
フォーカスがセットされた、もしくは外されたといったイベントを受け取るためのイベントリスナーはFocusListenerインターフェイスの実装クラスとする必要がある。
42: 2020/01/23(木)15:00 ID:nfNHCPGN(2/2) AAS
一つのコントローラは同時に一つのイベントリスナーしか実行しないため、
それぞれのリスナーの処理が並列処理されることはありません。
外部リンク[html]:www.intra-mart.jp
43: 2020/01/23(木)15:05 ID:JgeeW2+j(3/3) AAS
並行 : 複数の動作が論理的に順不同、もしくは同時に起こること
並列 : 複数の動作が物理的に同時に起こること
44: 2020/01/24(金)22:39 ID:CaliZgkn(1) AAS
論理的に順不同wバカなん?w
45: [age] 2020/01/26(日)23:38 ID:pipfilQo(1) AAS
物を知らない人間は自分を賢いと思い込む
ウーマンラッシュアワーの村本しかり
46: 2020/01/31(金)21:26 ID:BNs6JEUK(1) AAS
村本は賢いで?
アイツを叩いとる奴等が自分を賢いと思い込まされた不幸なブタばかりやわ
47(1): 2020/01/31(金)21:30 ID:MQmpFGUT(1) AAS
百田でさえ最近は安倍を見放しとるw
48: 2020/02/05(水)22:27 ID:+cvwmFfJ(1) AAS
外部リンク[mp4]:video.twimg.com
49: ◆QZaw55cn4c 2020/02/06(木)22:16 ID:6P0xXhLK(1) AAS
>>47
文春だったか新潮だったかで連載をみかけたことがあります
50: 2020/03/13(金)09:58 ID:xi9CPGhb(1) AAS
オブジェクト指向を否定する理由がよく分からんけど
動的ディスパッチと継承まで全部含めないと認めない勢はもっと分からん
51: 2020/05/05(火)03:16 ID:03z2FKoB(1) AAS
外部リンク[html]:erologz.com
52: 2020/05/26(火)09:42 ID:fDcZ5gJW(1) AAS
privateはあっても良い。というか、外部から勝手に変数書き換えられる事を防ぐ方法のない言語はないとまずいだろう。それがバグの温床になる。
最近の言語だとクラス変数(プロバティ)はリードオンリーにできたりするのもあるのでそういうのは直接的にprivate変数を作る必要を減らせる。(例えばKotlin等)。
実際には内部的にprivate変数があってゲッターのメソッドを呼ぶようにコンパイルされるだけのことだがわざわざ自分でゲッターを作ったり呼び出したり書かなくて済んで見た目がスッキリする。
53(1): 2020/05/26(火)10:26 ID:5zsa2F3Z(1) AAS
プロパティをリードオンリーって最近の言語っていうかC#でもできるじゃん?
Kotlinはそれのパクリでしょ?
54: 2020/05/27(水)07:57 ID:/u1yd5kF(1) AAS
いざというときのためのアクセス手段を排除しておく方が
結局は回りくどい事をたくさんしなくちゃいけなくなって
バグの温床になる
55: [age] 2020/05/30(土)23:58 ID:cB0ZATSK(1) AAS
いざというときは来ない
ヤグニ原則やでー
56: 2020/05/31(日)08:21 ID:+fMKQW9s(1) AAS
関数ポインタを型安全に扱う方法くらいに思っときゃいいよ。
57(1): 2020/05/31(日)12:43 ID:Jnw0anai(1) AAS
オブジェクト指向プログラムの新人教育には金正恩が解りやすいよね。
クラス→金正恩という概念
インスタンス→金正恩の実体でクラスからいくつでも生成可能
ガベージコレクション→要らなくなった実体の始末
58: 2020/05/31(日)14:00 ID:u66u8maC(1) AAS
>>57
全然わからんw
59: 2020/05/31(日)16:22 ID:UetBBPJT(1) AAS
月火水木金正日まで読んだ
60: 2020/05/31(日)22:36 ID:JRHRMyge(1) AAS
月火水木金正月
61: 2020/06/01(月)07:19 ID:AVsOuc1a(1) AAS
金正恩は設計図で、設計図から影武者と呼ばれる実体を数多く作り出している
これをテキストに書き出せばオブジェクト指向
最近現れた「顔違うじゃんこいつ誰だよ」って影武者は多態性を表している
62: 2020/06/10(水)07:55 ID:tCrL9OIp(1) AAS
安倍晋三 = new 金正恩();
63: 2020/06/11(木)19:31 ID:kcRACwfn(1) AAS
文 = new 金日成();
64: 2020/06/12(金)13:12 ID:Qkj+08r5(1) AAS
>>53
C#は知らんが、まあパクリなんだろうな。
てかKotlinは沢山パクリがあるような気がするが、こちらとしてはそれで使いやすくなるならそれで良い。
むしろもっとパクれと思う。
65: 2020/06/18(木)19:58 ID:n5xiCy8O(1/2) AAS
こちらで同意を得られなかったからニュース速報スレで騒いでるw
オブジェクト指向は愚かな考え
2chスレ:news
66: [age] 2020/06/18(木)19:59 ID:n5xiCy8O(2/2) AAS
age
67: 2020/06/19(金)14:19 ID:hJZaVrgb(1) AAS
ニュー速って人間いるのか?
68: 2020/08/24(月)12:09 ID:lmfLUas9(1) AAS
ところで「チンポがシコシコする」という日本語表現は、文法的に正しいのか?
チンポ「を」シコシコするのではなくて、チンポ「が」シコシコする。この場合、「チンポ」は主語となる。
オブジェクト指向で言う「集約」は2種類あって、全体(俺)と部分(チンポ)が繋がっている場合と、
全体(俺)と部分(チンポ)が別々になっている場合とが考えられる。けれども「チンポ」はそれ自体
が独立した生き物であり、所有者の意思とは無関係に、勃起して「シコシコする」。
例えば寝てる時にエロい夢みて朝起きてみたらチンコが勃起して射精してたとか。
違うか?
「胸がドキドキする」は良いが、「チンポがシコシコする」はダメな理由を、50字以内で述べろ!
69: 2020/08/24(月)13:00 ID:IRt6XS62(1) AAS
自動詞と他動詞の違い
70: 2020/08/26(水)10:16 ID:TgzufKyR(1) AAS
日本語に文法もクソもない
71: 2020/08/28(金)18:28 ID:BnzPgwao(1) AAS
多重継承は曖昧だというが、自然言語処理はその曖昧さが大切になる。チンポは随意筋であり不随意筋である。
最終的に,クラス階層は最上位クラスを含めた
最大8 階層から構成され,「伝統的な日本の絵画」
に属する用語に対応する 55 クラスと解説文中か
ら抽出した139 クラスが配置された。ただし,そ
のうち 32 クラスが複数の上位クラスをもつとい
う多重継承が示された。例えば,「ngyc:絵巻物」
は「ngyc:伝統的な日本の絵画」と,「ngyc:表具の
形式」の下位クラスである「ngyc:巻子」の 2 つの
クラスを継承する(図 2)。こうした多重継承は,
省9
72: 2020/08/29(土)09:12 ID:oUMAS3pz(1) AAS
金正恩はVMでありGC。人民はその上で動いたり消されたりする有象無象の存在に過ぎない。
73: 2020/08/29(土)11:29 ID:Do+gb0AF(1) AAS
VMやGCが手術失敗で植物状態になったらどうなるの?っと。
74: 2020/09/06(日)02:31 ID:QQYsdpvX(1) AAS
金日成←金正日←金正恩(継承関係)
75: 2020/10/04(日)12:56 ID:2fuJ2qWu(1) AAS
外部リンク[mp4]:video.twimg.com
76: 2020/10/08(木)13:15 ID:PsyY8tmH(1) AAS
画像リンク[jpg]:i.imgur.com
画像リンク[jpg]:i.imgur.com
77(1): 2020/11/29(日)08:37 ID:9l7L6WSM(1) AAS
今更だけどOOPアンチ絶滅した?
急に大人しくなった気がする。
78(2): 2021/10/22(金)21:31 ID:BPCPgSiw(1) AAS
>>77
外部リンク[html]:tabesugi.net
C++ はひどい言語だ。これは、多くの平均以下のプログラマーが使ってるために
さらに輪をかけてゲロゲロになっていて、どうしようもないゴミが
簡単に生産されるようになってる。正直いって、C を選ぶ理由が C++ プログラマーを
追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
C++ はトンでもなく悪い設計の元になりうる。どうせこの言語ではいつも STL やら
Boost やら、その他ゲロゲロベロベロの「素敵な」ライブラリの機能を使って、
それがあんたのプログラムに「役立つ」んだろうが、以下のことが起きる:
- うまく動かないときにもたらされる際限のない苦痛 (あと STL とか、特に Boost が
省11
79: 2021/10/30(土)02:09 ID:/YmEOZIF(1) AAS
>>78
意識高い系プログラマが本当のガンで
聞きかじりの非効率な抽象プログラミングモデルを持ち込んで
プロジェクトを保守不能に追い込むのは、よくあるパターン
80: 2022/08/13(土)15:56 ID:JbrEzaSr(1) AAS
オブジェクト指向の難しいところは属人性だと思う
オブジェクトの分け方は人それぞれ
デザインパターンはそれを整理するために生まれたものだと思う
オブジェクト指向なら誰が書いても同じようになりますということなら
扱いやすいんだけれどもそうではない
自分が書くのは良いけど他人が書いたものを読むのはつらい
オブジェクト指向はいろんな書き方ができるPerlのようなものだと思う
オブジェクト指向はPerlです
81: 2022/08/13(土)17:30 ID:9Y2sM84k(1/2) AAS
STLやBoostは移植できないような特別なシステムコールを要求しないから、移植できると言えるんですよ。
82(1): 2022/08/13(土)17:32 ID:9Y2sM84k(2/2) AAS
利那須さんが文句をつけてるのは、メタプログラミングが難しすぎるということで、オブジェクト指向と関係ないのでは?
83: 2022/08/13(土)20:54 ID:mt5asg0H(1) AAS
>>82
>>78
- 非効率な抽象プログラミングモデルで、2年たった後にこれらが実はそんなに
効率的じゃなかったことに気づくケース。でもそのときにはすでに全部の
コードがその素晴らしいオブジェクトモデルに依存していて、直すためには
アプリ全体を書き直さなきゃなんない。
84(1): 2022/08/14(日)10:56 ID:VI2zLni0(1) AAS
>正直いって、C を選ぶ理由が C++ プログラマーを追っぱらうため *だけ* だったとしても、それ自体、C を使う強力な理由になりうる。
ここは完全に同意
85: ハノン ◆QZaw55cn4c 2022/08/14(日)13:12 ID:Q+W1voks(1) AAS
>>84
でも C++11 の UTF-16 関係の機能 basic_string<char16_t> とかは重宝しているので、一概に C++ が悪いとはいえません
この前もwin32 の W 系を使うツールがちょろっと半日で書けちゃったし
2chスレ:tech
悪いのは「デザインパターン」だ!デザパタを強要するやつらだ!
86(1): 2022/08/16(火)11:17 ID:2x3mrzZQ(1) AAS
basic_string<char16_t> って obsoleted じゃないの?
87: 2022/08/17(水)22:02 ID:PoIxkbgz(1) AAS
>>86
ふーん、今はなにを使うの?
88: 2022/08/18(木)15:21 ID:E6+QXrSt(1) AAS
オブジェクト指向まじでいらなかったな
全然使ってないからクラスというものを忘れてたぞ
89: 2022/08/21(日)07:34 ID:WWmbtQML(1) AAS
本当に必要なのはオブジェクト指向ではなくて、
誰かがメンテしたそこそこ利便性のあるモジュールライブラリってだけだよな
そんなのFortranの時代からあるってーのw
90(1): 2022/08/21(日)09:56 ID:ecIOs+Jg(1) AAS
誰かが作った便利なライブラリがあるから言えることだろ
鳥の雛が親鳥が餌を運んできてくれるから翼なんていらないと言ってるようなもの
便利なライブラリはオブシコで作られてるってことを認識したが良い
91: 2022/08/21(日)12:48 ID:j3ukytx2(1) AAS
Cが出た時(すぐには)FORTRANからの置き換えが進まなかったのは
多次元配列のメモリ順が違ってたからだろうな
92: 2022/08/21(日)13:19 ID:calK6kMN(1) AAS
>>90
オブシコってw
93(1): 2022/08/21(日)14:33 ID:TydpFBMU(1) AAS
オブジェクト指向型ライブラリってこれだろ
v = クラスnew
v.setter(1234)
v.func()
別に関数のみを提供する形で
func( :a => 1234 )
newもセッターもゲッターもない風にデザインしたって余裕で作れる
94: 2023/03/02(木)00:06 ID:Narkquai(1) AAS
>>93
それ、ドメインモデル貧血症じゃね?
外部リンク:en.m.wikipedia.org
new可能な状態でsetter/getterつければオブジェクト指向って訳では無いよ
...ってことがURLの先で解説されてるから読んでみて
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.284s*