オブジェクト指向がわからない

1: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 09:58:12.577 ID:AsSlmcuMM
class使えばオブジェクト指向なの?

4: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 09:58:58.695 ID:FFl8e8bga
クラスで提供したい機能だけが外から使えるならオブジェクト指向だよ

5: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 09:59:20.312 ID:AsSlmcuMM
>>4
意味わかんね

13: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:03:43.359 ID:FFl8e8bga

>>5
エアコンでユーザに提供されてる機能はリモコンで操作出来る範囲に限るだろ?
でも実際は熱い空気を冷やしたり、排気したりとユーザが使わない内部の機能がある
その、ユーザに必要な機能しか触らせないのがオブジェクト指向

ちょっとこなれると
エアコンと冷蔵庫の「冷やす」という機能は同じ部品を使おう
とかそういうこともしだす

16: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:05:13.433 ID:AsSlmcuMM
>>13
難しいことを隠蔽するって書いたあったけど結局難しい処理はクラス内のメソッドに書くんだし同じじゃない?

20: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:08:30.249 ID:FFl8e8bga
>>16
難しいこととかじゃなく
例えばエアコンのリモコンに「冷房」と「空気を冷やす」ボタンが並んでたら混乱するだろ?
だから「空気を冷やす」機能は「冷房」の中で使うだけだから、ユーザには見せない
そうして使う機能を間違えないようにしたのがオブジェクト指向

24: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:10:01.964 ID:AsSlmcuMM
>>20
メソッド名が冷房で実際の処理が空気を冷やすってこと?

34: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:13:45.519 ID:FFl8e8bga

>>24
そんな感じ
「冷房」メソッドは「空気を冷やす」メソッドと「風を送り出す」メソッド等で構成されてる

要はオブジェクト指向ってのは
他の人に使わせてもミスのしにくい設計にしましょうって思想

6: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 09:59:47.747 ID:EpLLdIqTa
教本に書いてあんだろ

9: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:01:34.745 ID:AsSlmcuMM
>>6
3ページくらいしかない

7: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:00:14.040 ID:jRZlWwwIa
うろ覚えだけどプログラムを部品の組み合わせで作って同じとこは共通化しよう
みたいな考え方だったと思う

8: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:01:27.106 ID:9HeIXckT0
俺は逆にオブジェクト指向以外がわからない

10: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:01:51.968 ID:AsSlmcuMM
>>8
教えてよ

14: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:03:55.764 ID:dzNLb0phK
わかるやつ世界に10人もいない説

15: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:04:10.844 ID:l3PMIy5/0
オブジェクト指向はオワコン

18: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:07:02.307 ID:L4PuEI8ha
オブジェクト指向という言葉を偉そうにいう奴はたくさんいるがそれを簡潔に説明できるやつは一人も見たことない
つまりそういうこと
みんなほんとはなんとなくしかわかってない

19: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:08:10.450 ID:AsSlmcuMM
>>18
オブジェクト指向だけで一冊本出てるじゃん
あれって意味ある?

21: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:09:03.619 ID:L0uHoZGpH
モジュールに分けるのとの違いがわからん

26: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:10:52.278 ID:AsSlmcuMM
>>21
ほんこれ
モジュール内をさらに細分化するのがクラスと思ってる

23: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:09:24.374 ID:VSbAo40Od

俺は「憂鬱なプログラマのためのオブジェクト指向開発講座」
って本を読んで理解した

今ググったらダメな本らしいが

27: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:11:22.982 ID:J5IHyjPy0
>>1
まさか!?class使わずにコードを!?

28: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:11:49.956 ID:AsSlmcuMM
>>27
なんとなく使ってる

29: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:11:57.463 ID:CJpseuGk0
オブジェクトって呼び方自体なんか大仰でよくわからん
単純に要素と処理を持ってる箱なんじゃないの

32: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:13:06.730 ID:AsSlmcuMM
>>29
どう箱に分けるか
オブジェクトって言っても車オブジェクトかタイヤオブジェクトかネジオブジェクトかよくわからん

36: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:15:10.432 ID:CJpseuGk0
>>32
それはユーザーの自由にできるんじゃないの?
車だけ扱う人は車オブジェクトだけ見ればいいし
ちょっといじりたい人はマフラーオブジェクトとかハンドルオブジェクトも見ればいいし
設計・構築しなきゃいけないならネジオブジェクトまで見なきゃだし、みたいな
値・処理のユーザーに対するスコープをこちらの意図に沿って変えられる、程度の認識しかしてない

37: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:16:11.492 ID:AsSlmcuMM
>>36
一番操作しやすいオブジェクトっていうか関連したデータの集まりと考えればいいんだね

40: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:18:55.557 ID:J5IHyjPy0
>>29
new式で生成されるあいつがオブジェクトで
その、あいつをどうこうする手法がオブジェクト志向

46: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:24:34.790 ID:CJpseuGk0
>>40
なんだそれめっちゃ簡単じゃん

30: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:12:04.285 ID:9HeIXckT0
ゲームやってる?ゲームだとわかりやすいんだが

35: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:14:06.245 ID:AsSlmcuMM
>>30
やってるよ

41: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:20:49.829 ID:9HeIXckT0
>>35
やっぱり難しいわ
親子関係の一言につきる

33: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:13:34.266 ID:UVTVPiMx0
データと処理をオブジェクトごとにまとめて扱う考え方のこと

38: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:17:57.348 ID:AsSlmcuMM
MVCのコントローラクラスもよくわからない

39: 以下、無断転載禁止でVIPがお送りします 2018/10/02(火) 10:18:01.738 ID:eLp33WqM0
オブジェクト指向の言語って規模でかくなると親クラス弄りようがなくなるからある意味柔軟性がなくね?

43: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:22:06.928 ID:L0uHoZGpH
関数も内包する構造体って感じ?

44: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:22:53.614 ID:AsSlmcuMM
>>43
それは定義で定理じゃないんじゃない?

45: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:23:40.641 ID:0Do82wktM
ある機能を1つのオブジェクトとして表現する
システム全体を複数のオブジェクトとその相互作用として表現する
カプセル化→オブジェクトの内部状態を外部に公開しないかわりにメソッドを公開する、状態を変更できるのは自分自身のみ
ポリモーフィズム→適切に抽象化されたクラス階層を使ってサブクラスを特定のインタフェースを持ったスーパークラスとして扱う、サブクラスを新たに作って差し替えるだけで済むからいろいろ楽チン

48: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:31:48.413 ID:l4b62od0H
勘違いしやすいのは
オブジェクト志向って
成果物を効率よく作るためのフレームワークみたいなものではなく
一度作ったプログラムの変更や改修を容易にするための手法
究極言えば
一人で作るかつ変更があり得ないのであれば無用の賜物

49: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:34:45.745 ID:L0uHoZGpH
よくわからん
なんでメンテしやすいってことになるんだ?

50: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:38:23.253 ID:l4b62od0H
>>49
カプセル化によって必要なもの以外他のオブジェクトから隠蔽することでオブジェクト同士を粗結合にするから
あるオブジェクトを大幅変更しても他のオブジェクトを壊すことなく変更が加えられる可能性が高くなる

53: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:41:39.466 ID:9HeIXckT0
>>49
例えば
「押したら音がなって画面が光って今日の日付が表示されるボタン」があったとして一直線にこの命令を書くより
「押したらAとBとCをするボタン」「Aは音を出す」「Bは画面を光らせる」「Cは日付を表示する」って分けたほうが汎用性高いじゃん

55: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:44:44.004 ID:J5IHyjPy0
>>53
誕生日の時だけ音を変える遊びが捗るな

56: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:46:57.972 ID:L0uHoZGpH
>>53
やっぱ関数とかモジュールと同じじゃねえか

59: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:49:09.368 ID:9HeIXckT0
>>56
モジュールはよくわからんけど関数はちょっと違う

60: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:49:51.212 ID:q2oaxUWB6
>>59
戻り値がない
でもクラスにも実質戻り値あるよね

51: 以下、無断転載禁止でVIPがお送りします 2018/10/02(火) 10:38:24.259 ID:eLp33WqM0
むしろオブジェクト指向って変更しづらいものの代表格だと思うんだが
親クラスから子クラスが見えないんだぞ?

52: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:40:19.701 ID:l4b62od0H
>>51
だから一般的に継承は敬遠される
基本はインターフェースに対して実装をするのが良い

54: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:44:15.126 ID:0GEg7iRxd
メッセージパッシング

57: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:48:01.921 ID:q2oaxUWB6
オブジェクト指向を超える上位概念ないの?
なんか非効率な気がする

61: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:50:14.831 ID:cWtNXKtBr

数値を入れると二乗してくれる機械に2を入れたら4が出てきた!→手続き型

2に二乗しろって命令したら4が出てきた!→オブジェクト指向

62: 以下、無断転載禁止でVIPがお送りします 2018/10/02(火) 10:55:17.938 ID:eLp33WqM0
ラムダ式はオブジェクト指向って言っていいの?

63: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 10:56:38.886 ID:cWtNXKtBr
>>62
ラムダ式は関数定義を式でできるようにしただけでオブジェクト指向は関係ない

64: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 11:13:55.902 ID:WFttrp2Td
実装はコロコロ変わるもんなんだからこれからは仕様に依存しようず
オブジェクトそれぞれに責務を割り当てて他プログラムへの依存度を減らせばテストも変更もしやすくね?
って今は言われてるけどアラン・ケイがSmalltalkとか作った頃のは非同期のほうに焦点があってた気がする

65: 以下、5ちゃんねるからVIPがお送りします 2018/10/02(火) 12:13:03.681 ID:RtaUHAYGr
ぞい

引用元

http://viper.2ch.sc/test/read.cgi/news4vip/1538441892/

管理人からひと言

クラスはオブジェクトと思ってる

スポンサーリンク
スポンサーリンク
スポンサーリンク

シェアする

フォローする

スポンサーリンク
スポンサーリンク