オブジェクト指向について、調べれば調べるほど疑問が募ります。低レベルで粗末な疑問かも知れませんが、ご教授願いたいです。
・データと振る舞いをまとめる?
まとめると何か良いことあるの?
ファイルあるいはモジュールにはまとまってるよね?
丁度いい単位があるのに、何故わざわざオブジェクトという概念を導入するの?
(Javaには1ファイル1クラスという文化あるらしいけど)
・カプセル化?
モジュールのimport, exportでも実現出来るよね?
(構造体などへのアクセスを制限できれば)
・ポリモーフィズム?
別にデータと振る舞いをまとめなくても実現出来るよね?
・モノのように扱いたい?
モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?
オブジェクト指向を教えてくれ!
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2021/03/16(火) 17:06:02.41ID:VhqTt8972デフォルトの名無しさん
2021/03/16(火) 17:14:31.50ID:mcRR7cz/ オブジェクトはクラスのことだとわかるけど
モジュールはなんだろ、パッケージのこと?
モジュールはなんだろ、パッケージのこと?
2021/03/16(火) 17:17:49.88ID:mbk3cz74
> ・データと振る舞いをまとめる?
> まとめると何か良いことあるの?
データが複数ある場合に、データごと振る舞いが
決まっているということが明確になります。
> ファイルあるいはモジュールにはまとまってるよね?
データと振る舞いがまとまっていません
> (構造体などへのアクセスを制限できれば)
それができないから、オブジェクト指向があります
> 別にデータと振る舞いをまとめなくても実現出来るよね?
データごとに振る舞いが変わるということが明確に表現できます。
> モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?
関数もモノとして扱えば、モノに対して関数を割り当てることが出来ます。
> まとめると何か良いことあるの?
データが複数ある場合に、データごと振る舞いが
決まっているということが明確になります。
> ファイルあるいはモジュールにはまとまってるよね?
データと振る舞いがまとまっていません
> (構造体などへのアクセスを制限できれば)
それができないから、オブジェクト指向があります
> 別にデータと振る舞いをまとめなくても実現出来るよね?
データごとに振る舞いが変わるということが明確に表現できます。
> モノとして扱いたいときに扱えば良くない? なんでわざわざ全てをオブジェクトにするの?
関数もモノとして扱えば、モノに対して関数を割り当てることが出来ます。
2021/03/16(火) 17:20:32.30ID:vDQQ/7BC
用語に振り回されてプログラムできなくなるアホの典型例
2021/03/16(火) 17:22:59.10ID:mbk3cz74
たとえば 4980012345678901 という値は VISAのクレジットカード番号ですが、
これがただの文字列であれば、クレジットカード番号とした正しいかをチェックする
validate() メソッドがあるわけがないことがわかります。
4980012345678901 という値に対してクレジットカード番号というクラスを割り当てると
この値に対する validate() メソッド が存在することが容易に推測できます。
これがただの文字列であれば、クレジットカード番号とした正しいかをチェックする
validate() メソッドがあるわけがないことがわかります。
4980012345678901 という値に対してクレジットカード番号というクラスを割り当てると
この値に対する validate() メソッド が存在することが容易に推測できます。
6デフォルトの名無しさん
2021/03/16(火) 17:24:31.39ID:VhqTt897 >>2
オブジェクトとクラスごっちゃにして説明してすみません。
モジュールは大雑把にいうとファイルのことを指して言いました。Pythonでいうとfile, Rustでいうとmod module_name { }のことです。node.jsではfileです
オブジェクトとクラスごっちゃにして説明してすみません。
モジュールは大雑把にいうとファイルのことを指して言いました。Pythonでいうとfile, Rustでいうとmod module_name { }のことです。node.jsではfileです
7デフォルトの名無しさん
2021/03/16(火) 17:47:22.67ID:kqeQk11d >> 3
回答ありがとうございます。
> データと振る舞いがまとまっていません
では、何をまとめたものなのでしょうか?
> それができないから、オブジェクト指向があります
構造体へのアクセスを制限する機能があれば、メソッドをまとめなくとも十分なのでは?という意味です
> 関数もモノとして扱えば、モノに対して関数を割り当てることが出来ます。
曖昧な表現で申し訳ないです。モノというのは値のことではなく、メソッドを生やしたオブジェクトである必要があるのか?という意味です。
この疑問の答えは「データが複数ある場合に、データごと振る舞いが決まっているということが明確になります。」という回答に含まれると思いますが。
回答ありがとうございます。
> データと振る舞いがまとまっていません
では、何をまとめたものなのでしょうか?
> それができないから、オブジェクト指向があります
構造体へのアクセスを制限する機能があれば、メソッドをまとめなくとも十分なのでは?という意味です
> 関数もモノとして扱えば、モノに対して関数を割り当てることが出来ます。
曖昧な表現で申し訳ないです。モノというのは値のことではなく、メソッドを生やしたオブジェクトである必要があるのか?という意味です。
この疑問の答えは「データが複数ある場合に、データごと振る舞いが決まっているということが明確になります。」という回答に含まれると思いますが。
2021/03/16(火) 17:50:10.18ID:mbk3cz74
> では、何をまとめたものなのでしょうか?
データと振る舞い
> 構造体へのアクセスを制限する機能があれば、メソッドをまとめなくとも十分なのでは?という意味です
構造体へのアクセスを制限するには、データと振る舞いをまとめないと無理
> 曖昧な表現で申し訳ないです。モノというのは値のことではなく、メソッドを生やしたオブジェクトである必要があるのか?という意味です。
関数には名前という属性があります。どのような引数を渡せるかという情報を持っています。
明らかに関数以外の情報を持ったモノです
データと振る舞い
> 構造体へのアクセスを制限する機能があれば、メソッドをまとめなくとも十分なのでは?という意味です
構造体へのアクセスを制限するには、データと振る舞いをまとめないと無理
> 曖昧な表現で申し訳ないです。モノというのは値のことではなく、メソッドを生やしたオブジェクトである必要があるのか?という意味です。
関数には名前という属性があります。どのような引数を渡せるかという情報を持っています。
明らかに関数以外の情報を持ったモノです
9デフォルトの名無しさん
2021/03/16(火) 17:57:50.12ID:kqeQk11d >>5
回答ありがとうございます。
データに対して、「クレジットカード番号」という型を割り当て、
クレジットカード番号に対して処理できる関数を用意すれば解決なように思えるですが、
わざわざオブジェクトに付属するメソッドという概念を用いるメリットがわかりません。
回答ありがとうございます。
データに対して、「クレジットカード番号」という型を割り当て、
クレジットカード番号に対して処理できる関数を用意すれば解決なように思えるですが、
わざわざオブジェクトに付属するメソッドという概念を用いるメリットがわかりません。
2021/03/16(火) 18:05:30.02ID:Oe0YkKcP
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 【おこめ券】鈴木農相 米価維持の意図「一切ない」 [ぐれ★]
- バリ島で男子生徒ら集団万引きか、防犯カメラ映像が拡散 京都の大谷中学・高校が「窃盗行為」謝罪★6 [七波羅探題★]
- 【苺ましまろ】立民衆院議員、人気漫画の水着少女画像を「醜悪」タイ人少女の性搾取事件と関連付け…党内で反発 [少考さん★]
- 「残業キャンセル界隈」若者が増加?「職務放棄」との批判も…“定時退社の権利”どこまで通用するか [七波羅探題★]
- 中国軍機レーダー照射、トランプ氏沈黙突く 試される日本外交 ★5 [蚤の市★]
- 【猫】ネコは女性よりも男性の飼い主にニャーニャー鳴くことが研究で明らかに アンカラ大 [少考さん★]
- 【高市悲報】中国軍「公海で空母の発着訓練するって事前通告したのになんで自衛隊機は急接近してきたんだ…?」中国軍困惑 [931948549]
- なりたくない苗字、満場一致で決まる
- 【速報】中国人の凶悪犯罪が急増!害国人の変遷、韓国→ベトナム→中国へ🏡
- 警視庁、税金で公式サイトにオセロゲームを設置 [834922174]
- 高市首相「コメ増産を進める」 [834922174]
- 【豪報】湿布、効くwwwwwwwwwwwwwwwwwwwwwwwww [279254606]
