オブジェクト指向

1:名無しID:K+cE+bmT0.net
まともにわかりやすく説明してるサイトも本も無いし、
みんな違う事言うし 結局なんなんだこれ
3:名無し: ID:MBoyZNtP0.net
それがオブジェクト指向さ
4:名無しID:K+cE+bmT0.net
>>3
え?どれ?
10:名無しID:K+cE+bmT0.net
>>4
ほとんど細かく別ファイルにわけてメソッド化して
戻ってきた値をまた別のメソッドに渡すみたいなんをメインでやればいいの?
関連記事


12:名無し: ID:QmBs7S3r0.net
>>10
それのどこがオブジェクト指向なんよ
14:名無しID:K+cE+bmT0.net
>>12
じゃあ何がオブジェクト指向なん結局
5:名無し: ID:AE1laISRa.net
要するに
必要な機能以外は見せないようにしましょう
機能の中身を知らなくても使えるように作りましょう
6:名無し: ID:kVa2vNzF0.net
自分もよくわからんけど、一人で自分のためのツールを開発する分には必要ないと思うんだよなぁ
7:名無し: ID:f0TuHXuSp.net
カプセル化(クラス化)
継承
汎化
ポリフォーリズム

以上の概念を身につけて企業に入れ

13:名無しID:K+cE+bmT0.net
>>7
汎化は聴いたことなかったわ
ちなみにもうエンジニアとして働いてる
8:名無し: ID:MiUCWXDy0.net
ポリモーフィズムでは?
9:名無し: ID:nU4VhzKl0.net
多態性
11:名無し: ID:AE1laISRa.net
インターフェースと抽象クラスの違いを
知識0の人間に1発で理解させられる様になればプロ
15:名無しID:K+cE+bmT0.net
結局オブジェクト指向って言いたいだけで
実際は大して重要でも何でもないんじゃん?
16:名無し: ID:4YPtqFLG0.net
一人で完結してて大きいもの作らないなら別にそれでいいと思うよ
18:名無しID:K+cE+bmT0.net
>>16
それっぽくしたいんじゃぁ
17:名無し: ID:NQsbYLEi0.net
仕組み知らねーけど動けばいいんだろ?がオブジェクト指向
25:名無しID:K+cE+bmT0.net
>>17
とにかく別ファイルにクラス作ってどんどん分けてけってことでしょ?
28:名無し: ID:lWHRiPTo0.net
>>25
こういう適当な思想により無駄無駄無駄にクラスとメソッドが大量生成されてわけわかんなくなってる物みたことあるわ
20:名無し: ID:AE1laISRa.net
int num[10]
char str[10]

これらの長さを調べたいって時に
わざわざint用の関数とchar用の関数を作るんじゃなく
intだろうがcharだろうが使える関数を作った方が使い易いし楽だろ

29:名無しID:K+cE+bmT0.net
>>20
オブジェクト志向かんけいある?
30:名無し: ID:nU4VhzKl0.net
>>29
多態性の話では?
34:名無し: ID:AE1laISRa.net
>>29
思い切り関係ある

「動物」クラスの「鳴き声」メソッドは
「犬」クラスに継承すると「ワンワン」
「猫」クラスに継承すると「ニャー」になる

↑このくそ分かりにくい下手な例え見たことあるだろ

40:名無しID:K+cE+bmT0.net
>>34
チュートリアルで出てくるような
生物→動物→人間→プログラマー
みたいな継承関係を作るタイミングがそんなないわ
ゲーム以外で使えないんだろうな
21:名無し: ID:MiUCWXDy0.net
オブジェクト指向という言葉はオブジェクトに注目してしまうからネーミングとしては失敗で
オブジェクト間のメッセージのやりとりを意識するものらしい
27:名無し: ID:K8cyOsZf0.net
>>21
Cから始めたからメッセージって言われるとプロセス間通信を連想しちゃうんだよなぁ
この辺の用語の取っ付きにくさがわかりづらさを助長してるんだと思う
32:名無しID:K+cE+bmT0.net
>>21
メッセージのやりとりって具体的に?
23:名無し: ID:4G0aEaUU0.net
とりあえずこれだけ読んどけ
http://qiita.com/shibukawa/items/2698b980933367ad93b4
31:名無し: ID:4G0aEaUU0.net
しまった、>>23よりその前の『10年』の方がよっぽど読むべきだわ
35:名無し: ID:xXBaXR4cd.net
メソッド!インスタンス!オーバーライド!クラス!

こんな単語を言いたいだけじゃないかってやつ結構いるよね

45:名無しID:K+cE+bmT0.net
>>35
こんな分かりづらい概念を理解していることを強要するなんて理不尽

37:名無し: ID:AE1laISRa.net
>>35
ええ……
インスタンスはともかく
他のはどう言い換えるんだ……

本日のおすすめ記事
【悲報】透明のチューブの中を車が飛んでる世界、実現しなかった(´;ω;`)

46:名無し: ID:4G0aEaUU0.net
>>37
別にメソッドやらオーバーライドやらクラスやらなんてなくてもOOPはできるんだよ
例えばJavaScriptではプロパティのみで全く同じ事ができる
51:名無し: ID:AE1laISRa.net
>>46
出来る出来ないではなく
プログラミングはメジャーな手法を使うのが正義だしなぁ……
55:名無し: ID:4G0aEaUU0.net
>>51
その「メジャーな手法」てのが、Javaの手法でしかないっていうね
58:名無し: ID:AE1laISRa.net
>>55
そりゃメソッドとかクラスとか言うならJava、C#あたりだろ
JavaScriptならそれに応じた言い方するだろ
何が言いたいんだ
62:名無し: ID:4G0aEaUU0.net
>>58
つまり「Javaの文法で書けばどんな書き方をしてもOOPになるわけじゃねーよ」ってこと
67:名無しID:K+cE+bmT0.net
>>62
オブジェクト志向じゃないと動かない文法にしてくれよもう
80:名無し: ID:4G0aEaUU0.net
>>67
それは不可能
何故ならOOPは『いかに機能を設計するか』の部分が重要だから

OOPに限らないが、動作として全く同じであっても、『プログラムの意図』が変われば『正しい書き方』も変わるのがプログラミング
プログラミング言語はプログラマーの意図なんてわからないので、そんな文法は作れない
だからお前が作るんだよ

77:名無し: ID:AE1laISRa.net
>>62
でも一番メジャーなオブジェクト指向のやり方を教えるのが早いぞ
82:名無し: ID:4G0aEaUU0.net
>>77
Javaのやり方を単に真似ただけのJavaプログラムが正しいOOPになるとでも?
86:名無しID:K+cE+bmT0.net
>>77
つまりBはそれだと関数Aの中にネストしちゃっていいの?
61:名無し: ID:UJjFDRFDd.net
グローバル変数無しで組み込みってどうするの?
やっぱ構造体のポインタ型でアロー演算子ぶっこみ?
66:名無しID:K+cE+bmT0.net
>>61
日本語でたのむ
107:名無し: ID:p/Ho2UJv0.net
>>66
マジ日本語苦手民なんか?必死が頭悪すぎてビックリするわ
63:名無し: ID:pn/D1a5Ra.net
(´・ω・`)外で使わない変数をグローバルにする理由はなかろう
(´・ω・`)無意味にアクセス権限増やすとバグの元になるやで
69:名無しID:K+cE+bmT0.net
>>63
ほかのクラスから使いたい変数はどうするの?
72:名無し: ID:nU4VhzKl0.net
>>69
そもそも直接見なくていいようにする
74:名無しID:K+cE+bmT0.net
>>72
でも本当は?
81:名無し: ID:nU4VhzKl0.net
>>74
参照しないといけないような設計が悪い
75:名無し: ID:oHWEl3mq0.net
憂鬱なプログラマのためのオブジェクト指向開発講座とかいう悪書
78:名無しID:K+cE+bmT0.net
>>75
良書カモン
85:名無し: ID:oHWEl3mq0.net
>>78
ティモシィ・バッドのオブジェクト指向プログラミング入門
ちょっと古いが基礎的な考えは変わらん

オブジェクト指向プログラミング入門
オブジェクト指向プログラミング入門

94:名無し: ID:+LwQLjrG0.net
>>85
ちょっとってレベルか?
83:名無し: ID:DnqkD38ud.net
組み込みc言語でグローバル使わないとか俺には無理どうしたらいいか教えて欲しい
89:名無し: ID:p/Ho2UJv0.net
>>83
教えて欲しかったら土下座でもしてくれ
84:名無し: ID:dENADN170.net
class aaa{
private $abc;

public function getAbc(){
return $this->abc:
}
}

class xxx{
public function getXyz(){
$a = new aaa();
return $a->getAbc(); // クラスAAAのabcをとってくる
}
}

87:名無しID:K+cE+bmT0.net
>>84
このくらい分かるよ
でも継承とかポリなんとかとか全部含めてオブジェクト志向なんでしょ?
92:名無し: ID:dENADN170.net
>>87
まあ、その辺は実装されている良いプログラムを見て、
良い先輩に「なんでこうなんですか?」って聞いてみればいい。

良い職場で、良いプログラムで、良い開発をしなければ、
オブジェクト指向とか良くわからないまま過ぎていく。

93:名無し: ID:7hs+HdwM0.net
>>84
これ
$aのアドレス行方不明にならない?
98:名無し: ID:4G0aEaUU0.net
>>93
行方不明ってどういうこと?
メモリリークって意味なら>>84はPHPだから参照カウントが0になった瞬間にちゃんと消えるぞ
103:名無し: ID:7hs+HdwM0.net
>>98
なるほど
そういう仕組みか
96:名無し: ID:AE1laISRa.net
2chに文字を書き込む時
お前が文字を書いて
書き込みボタンを押すまでの間に
俺がお前の書き込み内容を書き換える事が出来たら困るだろ
だから俺とお前の書き込み機能は
同じ機能だけど別々の物なんだよ

クラスはこの書き込み機能の仕様や設計書
この設計書を元に俺やお前にそれぞれ別の書き込み機能を作り出して渡すのがインスタンス(実体)化

この書き込み機能には2chのサーバーと通信するメソッドがあるが
それは俺たちには見えないし作り替えたりもできない
これが隠蔽

この書き込み機能は
スマホの場合は携帯会社の提供する回線で
PCの場合は光回線で通信する
だけど俺たちは同じように書き込みボタンを押すだけでいい
これがポリモーフィズム(多態性)

104:名無し: ID:8Vh8Wd+Zd.net
オブジェクト指向はただの宗教だよ

1.よく言われる「オブジェクト指向のメリット」はすべて、
「オブジェクト指向だの手続き型だの関係なく、適切にモジュール化されたプログラムは読みやすく、保守しやすい」ということに過ぎない
ゆえに、「オブジェクト指向固有のメリット」などというものは存在しない

2.オブジェクト指向は自体は、プログラムの複雑さを軽減しない
「カプセル化」なんていうのは、オブジェクト指向特有の性質でも何でもなく、構造化プログラミングの時代から行われてきたこと
そしてこれは、呼び出し元の処理が単純になるだけで、プログラムそのものの複雑さを軽減しない
むしろ、オブジェクト指向プログラミングのスタイルではたいてい、プログラムの最小単位がグローバル変数に似た状態を多く持つことが多く、デバッグを困難にしている

105:名無し: ID:jcAR5yMm0.net
>>104
適切にモジュール化されたプログラムは読みやすく、保守しやすい

これって本当にそうなの?
読むのにおすすめのオープンソースあったら教えてくれ

111:名無し: ID:4G0aEaUU0.net
>>104
>プログラムの最小単位がグローバル変数に似た状態を多く持つことが多く
これってOOP理解してない奴が書くからじゃない?
113:名無し: ID:ohC/DDBxd.net
やっぱりLispが最強の言語よね

ラムダ式を組み立てるマクロ
ラムダ式を組み立てるマクロを組み立てるマクロ

このふたつを使えば、とても抽象的なことができる

115:名無し: ID:4G0aEaUU0.net
>>113
C++でも同じ事はできるが、C++より文法がスマートなのがいい
118:名無し: ID:dAu0yA7xa.net
>>113
そんなあなたは

On Lisp
Let Over Lambda

を読もう
いや、もう既に読んでるか?

116:名無し: ID:CtpmU6r80.net
例えば位置を初期化する時
setPosition(Default)←×
setDefalutPosition()←◯
なるべく抽象化して外からは弄らせないように
するのがオブジェクト志向
117:名無し: ID:cD8502BO0.net
Windowsプログラミングだと
Visual Studioで簡単に作れるよね
ウィンドウの中にボタンとかテキストボックスとかぽちぽち置ける
でもいろんな動作させなきゃいけないからめんどいよね
設定画面とかたくさんフォーム部品配置しないといけないし
その内容に応じて設定ファイルに記録するとか
108:名無し: ID:pn/D1a5Ra.net
(´・ω・`)とりあえずたくさん書け
119:名無し: ID:E6KpluEZa.net
(´・ω・`)望む機能が作れるのなら言語はなんでもいいのさ

プログラミング勉強して3年たつけど オブジェクト指向わかんねの関連記事


2chまとめのまとめ

猿でもわかるjavascriptの解説が分からなかったんだが…

#include ← これ

【画像あり】メルカリに、とうとう女神が出品されるwwwwww

ドラゴンボール朝(韓国)にありがちなことを書くスレ

【画像あり】iPhone8さん、新たなモックアップ画像が公開されるwww

ソシャゲCMの「弊社、クソ儲かってますけど何か?(ドンッ)」感は異常

有機ELテレビ、LGとの価格差が2倍もあるけど日本製って勝てるの?

オワタあんてな

GEEK速報をTwitterでフォローするならこちらwwwwwwwwww

2chまとめのまとめ

【GEEK速報名物】割れ厨一斉検挙へwwwwwwwww

家電屋の店員「!」シュババババ 服屋の店員「!」シュババババ

【悲報】ニコニコ動画ガチでヤバいwww

池上彰「新聞テレビは真実を隠してるという誤解が広がり、ネットの方が信頼できるという人が増えてる」

ハードディスクを安全・確実に処分する方法

有機ELテレビ、LGとの価格差が2倍もあるけど日本製って勝てるの?

SoftBank 孫社長「日本のスマホメーカーは全滅してきている」

彡(゚)(゚)「はぇー無音のカメラのアプリ そんなのあるんか……」

ヤマトが来ねえからドライバーに直電して「おまえら再配達嫌ってるから俺から取りに行ってやるよどこ走ってんの今?」って詰めたったwwwww

引用元:2chscから

オブジェクト指向でなぜつくるのか 第2版
オブジェクト指向でなぜつくるのか 第2版