■危険性
かつて偏差値の低い学校向けの情報処理系教科書において「カプセル化は大変すばらしいものであり絶対に使うように」と大体的に宣伝された。
一方、カリフォルニア大学バークレー校の有識者を中心とした「インターネットを作った人たち」は「階層化の有害性(RFC 3439)」として「カプセル化は絶対にやめろ」としている。
大雑把にいうと、教科書の上では素晴らしく、開発を始めた最初のうちは良いが、将来的な改修の際に隠蔽されたデータにアクセスできないと解決できない問題が出てきて、非常に高確率でデスマーチに陥るというのである。
オブジェクト指向の発案者であるアラン・ケイもコーディング規約(頭文字にアンダースコアを付けるなどの命名規則)で縛る程度にすることを推奨しており、アラン・ケイが関わったオブジェクト指向プログラミング言語にはどれも「private」などという概念はない。
ソースコードが存在し改修が可能であればカプセル化しても問題ない。ソースコードがあってもライセンス的に改修できない場合や、そもそもバイナリのライブラリしかない場合などは絶望的である。
https://monobook.org/wiki/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96(%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0)
探検
カプセル化は愚かな考え★3
■ このスレッドは過去ログ倉庫に格納されています
1デフォルトの名無しさん
2020/09/17(木) 06:37:21.26ID:rdOa/6ar2020/09/17(木) 06:37:28.60ID:rdOa/6ar
2020/09/17(木) 06:38:11.32ID:rdOa/6ar
2020/09/17(木) 06:38:36.19ID:rdOa/6ar
■仕様変更
それは雲の上で決まったことなので底辺社畜のITドカタにはどうすることもできない。
意見を言おうにも雲の上にいる奴らの顔すら知らない。
それこそが階層化で起きることだ。
オブジェクト指向云々ではない。
それは雲の上で決まったことなので底辺社畜のITドカタにはどうすることもできない。
意見を言おうにも雲の上にいる奴らの顔すら知らない。
それこそが階層化で起きることだ。
オブジェクト指向云々ではない。
5デフォルトの名無しさん
2020/09/17(木) 06:55:37.46ID:k60QR6Dx クソスレ立てるな
6デフォルトの名無しさん
2020/09/17(木) 10:53:48.09ID:ShdDUG77 関数型OSは、日本が主導したいものですな。
2020/09/17(木) 11:15:42.88ID:Ebl/PrBy
主導以前にそんなOSはどこの国からも実用化されません。
今のところ私の予言は的中しています。
今のところ私の予言は的中しています。
8デフォルトの名無しさん
2020/09/18(金) 13:38:30.43ID:l0yocru2 BSD系は基本的にそんな感じでしょ。
>>1のカプセル化は机上では素晴らしいが実際には云々というのも元祖BSDの開発者たちだし。
>>1のカプセル化は机上では素晴らしいが実際には云々というのも元祖BSDの開発者たちだし。
2020/09/18(金) 13:39:56.81ID:l0yocru2
BSD系OSを積むiPhone
その主力であるobjective-cもswiftもカプセル化なんてないからね
その主力であるobjective-cもswiftもカプセル化なんてないからね
2020/09/18(金) 16:03:39.49ID:6chszCpL
カプセル化という言葉を理解せずにカプセル化を語りたがるスレ主w
クソスレだがNGするのに役立ってる
クソスレだがNGするのに役立ってる
2020/09/19(土) 20:40:29.18ID:NknEv8eE
publicでいいからな
2020/09/19(土) 20:41:28.06ID:NknEv8eE
関数型が流行ったのもカプセル化の問題点をなんとかしようとした結果だろうしね
2020/09/19(土) 20:54:42.74ID:djZ0gifd
オブジェクト指向が間違って広まったのが悲劇の始まりだよね
2020/09/19(土) 20:55:48.52ID:okNEuTuK
カプセル化の問題点をなんとかしようとした結果じゃなくて
「ある種の問題」ではコードをシンプルに書けるからなだけだよw
だから関数型を使うと言っても全体を関数型言語で書くわけじゃなくて
「ある種の問題」に限って部分的に取り入れてる
「ある種の問題」ではコードをシンプルに書けるからなだけだよw
だから関数型を使うと言っても全体を関数型言語で書くわけじゃなくて
「ある種の問題」に限って部分的に取り入れてる
15デフォルトの名無しさん
2020/09/19(土) 20:56:03.13ID:gpcd5FRI 見えない内部状態で関数の挙動が変わるとか
常識的に考えて頭おかしいからな
常識的に考えて頭おかしいからな
16デフォルトの名無しさん
2020/09/19(土) 20:57:12.54ID:gpcd5FRI ひとりで書いてる時は問題ないんだけどね。
2020/09/19(土) 20:57:27.89ID:gpcd5FRI
零細企業で書いてる時も問題ない
2020/09/19(土) 20:58:40.17ID:gpcd5FRI
ひとつのシステムに複数の会社が絡むときにヤバくなる。
「あの会社が作った」と手を出せない。
「あの会社が作った」と手を出せない。
2020/09/19(土) 20:59:20.05ID:MKCi9adZ
状態は1個の構造体にまとめるべきだよね
20デフォルトの名無しさん
2020/09/20(日) 10:07:39.93ID:u7gAJbKe >>12
関数型言語は並列・並行処理を簡単に書けるってので、オブジェクト指向プログラミングでの並列・並行処理に限界を感じてたゲーム業界とかが注目してたね。
コアの数が増え続ければ今C++なのが関数型言語に置き換わるかもとかnvのおっさんが話してたのも今は懐かしい・・・。
当時は理論先行で思ったより簡単じゃ無かったんだけど、ライブラリも整備されて理論に実態が追い付いてきたんだけど、もう注目されないかも?
見限られるのが早過ぎたんや・・・。
関数型言語は並列・並行処理を簡単に書けるってので、オブジェクト指向プログラミングでの並列・並行処理に限界を感じてたゲーム業界とかが注目してたね。
コアの数が増え続ければ今C++なのが関数型言語に置き換わるかもとかnvのおっさんが話してたのも今は懐かしい・・・。
当時は理論先行で思ったより簡単じゃ無かったんだけど、ライブラリも整備されて理論に実態が追い付いてきたんだけど、もう注目されないかも?
見限られるのが早過ぎたんや・・・。
2020/09/21(月) 09:34:25.96ID:tan4kSln
nodejsみたいな関数型は理解に苦しむ人が多かったけど、
pythonの大流行で「カプセル化禁止のオブジェクト指向」が一般人にも広まった。
pythonの大流行で「カプセル化禁止のオブジェクト指向」が一般人にも広まった。
2020/09/21(月) 10:36:14.65ID:13UcesYH
カプセル化禁止のオブジェクト指向は
Python以外のどこで使われてるというの?
Python以外のどこで使われてるというの?
2020/09/21(月) 10:39:59.83ID:13UcesYH
pythonの大流行で「カプセル化の代わりにネームマングリングを使うオブジェクト指向」が一般人にも広まった。
と言うべきでは?
https://qiita.com/mounntainn/items/e3fb1a5757c9cf7ded63
> pythonにはprivate変数はありません。
> しかしprivate変数に近いことは実現できます。
> PEP8上のコーディング規約としては
> 「_」1つのprefixをclass内のみで利用する変数とされています。
> しかし、この変数はインスタンス化したオブジェクトからのアクセス時には
> 物理的な機構はなくカプセル化としての役目は果たせません。
_を付ける方法はカプセル化にはならない
> 「__」2つのprefixをつけた場合、
> ネームマングリング機構が働きます。
> 該当の変数名は「_class名」のprefixがついた変数名へと置換されます。
__をつけるとネームマングリングによって変数名が変わるので
よりよい擬似的なカプセル化の方法になる
と言うべきでは?
https://qiita.com/mounntainn/items/e3fb1a5757c9cf7ded63
> pythonにはprivate変数はありません。
> しかしprivate変数に近いことは実現できます。
> PEP8上のコーディング規約としては
> 「_」1つのprefixをclass内のみで利用する変数とされています。
> しかし、この変数はインスタンス化したオブジェクトからのアクセス時には
> 物理的な機構はなくカプセル化としての役目は果たせません。
_を付ける方法はカプセル化にはならない
> 「__」2つのprefixをつけた場合、
> ネームマングリング機構が働きます。
> 該当の変数名は「_class名」のprefixがついた変数名へと置換されます。
__をつけるとネームマングリングによって変数名が変わるので
よりよい擬似的なカプセル化の方法になる
2020/09/21(月) 10:59:25.78ID:apXLM6YN
>カプセル化禁止
そもそもメンバーの可視性制御ができなきゃカプセル化してないというわけでもないと思うが。
そもそもメンバーの可視性制御ができなきゃカプセル化してないというわけでもないと思うが。
25デフォルトの名無しさん
2020/09/21(月) 13:24:59.53ID:tan4kSln2020/09/21(月) 14:06:16.49ID:Yec037cY
オブジェクト指向における「カプセル化」は情報隠蔽のことじゃないんだよ
データとそれを扱うメソッドをオブジェクトという単位にまとめることがカプセル化
前者の意味で使ってるとしても可視性の制御は必須ではない
データとそれを扱うメソッドをオブジェクトという単位にまとめることがカプセル化
前者の意味で使ってるとしても可視性の制御は必須ではない
2020/09/21(月) 14:08:03.22ID:Yec037cY
Pythonのオブジェクト指向言語機能はショボいので本格的にOOやるやつは少数派
Objective-Cは可視性の制御可能
Cでもできるけどね
Objective-Cは可視性の制御可能
Cでもできるけどね
2020/09/21(月) 16:30:05.44ID:13UcesYH
カプセル化はPythonのようにネームマングリングを使う方法がオブジェクト指向として一般的!
2020/09/21(月) 16:52:34.51ID:frM+OBSN
30デフォルトの名無しさん
2020/09/21(月) 16:53:08.49ID:tan4kSln >>26
privateは何のためにあるの?
privateは何のためにあるの?
2020/09/21(月) 16:53:56.49ID:13UcesYH
32デフォルトの名無しさん
2020/09/21(月) 16:54:44.02ID:za73uCrq2020/09/21(月) 16:56:00.38ID:frM+OBSN
>>32
前スレみれば。俺に言うな。
前スレみれば。俺に言うな。
2020/09/21(月) 16:57:19.25ID:13UcesYH
>>29
Java Gold SE7対策問題 ? 問7
https://tech.pjin.jp/blog/2015/10/31/java-gold-se7%e5%af%be%e7%ad%96%e5%95%8f%e9%a1%8c-%e5%95%8f7/
Javaにおけるカプセル化について間違っているものを選んでください。
1. カプセル化とは、属性と操作を一体化させることである。
2. カプセル化されたクラスでは、インスタンス変数に対してむやみにアクセスされることを防ぐためにアクセス修飾子を「private」にすることが多い
3. カプセル化されたクラスでは、インスタンス変数の値を変更する手段としてメソッドが別途作成される事が多い
4. カプセル化されたクラスでは、インスタンス変数を操作するためのメソッドはアクセス修飾子を「public」にすることが多い
5. カプセル化を行うことで各オブジェクトの結びつきが弱くなり、プログラムの再利用性が高くなる
6. カプセル化を行うことで個々のオブジェクトの独立性が高まり、オブジェクト内部の変更が外部に影響しにくくなる。
7. カプセル化を行うことでソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用も安易になる。
正解は「(5)」となります。
(5)以外の説明はカプセル化の説明としてどれも正しいものになります。特に抑えておいていただきたい選択肢は以下の2つでしょうか。
Java Gold SE7対策問題 ? 問7
https://tech.pjin.jp/blog/2015/10/31/java-gold-se7%e5%af%be%e7%ad%96%e5%95%8f%e9%a1%8c-%e5%95%8f7/
Javaにおけるカプセル化について間違っているものを選んでください。
1. カプセル化とは、属性と操作を一体化させることである。
2. カプセル化されたクラスでは、インスタンス変数に対してむやみにアクセスされることを防ぐためにアクセス修飾子を「private」にすることが多い
3. カプセル化されたクラスでは、インスタンス変数の値を変更する手段としてメソッドが別途作成される事が多い
4. カプセル化されたクラスでは、インスタンス変数を操作するためのメソッドはアクセス修飾子を「public」にすることが多い
5. カプセル化を行うことで各オブジェクトの結びつきが弱くなり、プログラムの再利用性が高くなる
6. カプセル化を行うことで個々のオブジェクトの独立性が高まり、オブジェクト内部の変更が外部に影響しにくくなる。
7. カプセル化を行うことでソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用も安易になる。
正解は「(5)」となります。
(5)以外の説明はカプセル化の説明としてどれも正しいものになります。特に抑えておいていただきたい選択肢は以下の2つでしょうか。
35デフォルトの名無しさん
2020/09/21(月) 16:57:48.73ID:3ui/PrRI 世間でカプセル化と呼ばれてるものの99.9999%はprivateのことだな。
愚かなデファクトスタンダード
愚かなデファクトスタンダード
2020/09/21(月) 16:59:45.88ID:13UcesYH
https://qiita.com/tamekaji/items/6c19e3d05621741ee929
参考: 「徹底攻略 Java SE 11 Silver 問題集」から引用:
カプセル化は、ソフトウェアを分割する際に、関係するデータと
そのデータを必要する処理を1つにまとめ、無関係なものや関係性の低いものを
クラスから排除することで「何のためのクラスなのか?」というクラスの目的を
明確化するために行い、ほかのクラスに重複するデータや処理がない状態を目指すものです。
参考: 「徹底攻略 Java SE 11 Silver 問題集」から引用:
カプセル化は、ソフトウェアを分割する際に、関係するデータと
そのデータを必要する処理を1つにまとめ、無関係なものや関係性の低いものを
クラスから排除することで「何のためのクラスなのか?」というクラスの目的を
明確化するために行い、ほかのクラスに重複するデータや処理がない状態を目指すものです。
2020/09/21(月) 16:59:56.56ID:frM+OBSN
でも、privateが無い言語でもカプセル化ってあるけど?とかいう主張をしている人がいて衝突していた気がする。
2020/09/21(月) 17:01:18.08ID:13UcesYH
>>37
Pythonではprivateの代わりにネームマングリングを使います!
Pythonではprivateの代わりにネームマングリングを使います!
2020/09/21(月) 17:01:59.62ID:13UcesYH
2020/09/21(月) 17:04:39.17ID:13UcesYH
逆に必要なものを「publicにすること」と書いてあるなw
同じ意味のように見えて同じではない。
なぜなら全て必要なら全てpublicにしても「publicにすること」という
条件を守っているからカプセル化の定義とは矛盾しない
http://e-words.jp/w/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96.html
カプセル化とは、オブジェクト指向プログラミングにおいて、互いに関連するデータの集合と
それらに対する操作をオブジェクトとして一つの単位にまとめ、
外部に対して必要な情報や手続きのみを提供すること。
外から直に参照や操作をする必要のない内部の状態や構造は秘匿される。
同じ意味のように見えて同じではない。
なぜなら全て必要なら全てpublicにしても「publicにすること」という
条件を守っているからカプセル化の定義とは矛盾しない
http://e-words.jp/w/%E3%82%AB%E3%83%97%E3%82%BB%E3%83%AB%E5%8C%96.html
カプセル化とは、オブジェクト指向プログラミングにおいて、互いに関連するデータの集合と
それらに対する操作をオブジェクトとして一つの単位にまとめ、
外部に対して必要な情報や手続きのみを提供すること。
外から直に参照や操作をする必要のない内部の状態や構造は秘匿される。
2020/09/21(月) 17:04:54.88ID:frM+OBSN
2020/09/21(月) 17:06:58.85ID:yKEq5/us
2020/09/21(月) 17:08:09.08ID:13UcesYH
>>42
> そもそもpublicなら「遮蔽」にならんじゃん?
カプセル化はprivateにすることではない
カプセル化は(必要なものを)publicにすることだ
必要ないものをどうするかなんて決まっていない
> そもそもpublicなら「遮蔽」にならんじゃん?
カプセル化はprivateにすることではない
カプセル化は(必要なものを)publicにすることだ
必要ないものをどうするかなんて決まっていない
2020/09/21(月) 17:08:59.13ID:apXLM6YN
> カプセル化されたクラスでは、 … アクセス修飾子を「private」にすることが多い
前スレの人ってのは、これを カプセル化=アクセス修飾子を「private」にすること と解釈したんだろうか?
前スレの人ってのは、これを カプセル化=アクセス修飾子を「private」にすること と解釈したんだろうか?
2020/09/21(月) 17:09:40.98ID:QKDolBMK
「触るな危険」と「隠された真実」はかなり違うだろ。
2020/09/21(月) 17:10:21.60ID:13UcesYH
カプセル化において、必要ないものを
publicにしてコメントで内部用と書こうが、_プリフィックスをつけようが
Pythonのようにネームマングリングで呼び出しにくくしようが
どれでもいいのだ
必要なものをpublicにする。
必要ないものはどうでもいい。
publicにしてコメントで内部用と書こうが、_プリフィックスをつけようが
Pythonのようにネームマングリングで呼び出しにくくしようが
どれでもいいのだ
必要なものをpublicにする。
必要ないものはどうでもいい。
2020/09/21(月) 17:11:53.07ID:13UcesYH
2020/09/21(月) 17:13:56.04ID:QKDolBMK
>>47
privateは「隠された真実」だろ。
privateは「隠された真実」だろ。
2020/09/21(月) 17:16:21.58ID:13UcesYH
50デフォルトの名無しさん
2020/09/21(月) 17:22:09.73ID:SfcYXUEp2020/09/21(月) 17:22:50.39ID:zHMfW7me
>>49
そりゃ鮫島事件だろ
そりゃ鮫島事件だろ
52デフォルトの名無しさん
2020/09/21(月) 17:23:13.30ID:G3yMm26e >>49
プチエンジェル事件
プチエンジェル事件
2020/09/21(月) 17:23:47.73ID:13UcesYH
2020/09/21(月) 17:32:42.55ID:frM+OBSN
うーん、だめだ...見つからん。
記憶ソースですまん。
でも、黒本じゃない本(黒本と同じ会社が出版)の問題にもあったのは覚えている。
カプセル化の選択肢はこれでいいの?って感じたのは覚えているんだよ,,,。他の選択肢がありえないものだったから、消去法で一択だったけど。
まぁ、Oracle Javaにおけるカプセル化はフィールドをprivateにしてメソッドをpublicにすることなんだなって無理矢理納得したけど。
記憶ソースですまん。
でも、黒本じゃない本(黒本と同じ会社が出版)の問題にもあったのは覚えている。
カプセル化の選択肢はこれでいいの?って感じたのは覚えているんだよ,,,。他の選択肢がありえないものだったから、消去法で一択だったけど。
まぁ、Oracle Javaにおけるカプセル化はフィールドをprivateにしてメソッドをpublicにすることなんだなって無理矢理納得したけど。
2020/09/21(月) 17:33:56.90ID:BKUa/6+Z
カプセル化を考えるとき
隠す隠さないという発想に出るのは
あくまで実装ありきの考えだから
先にインタフェースを考え
再利用性や直交性のために先にデザインされ
あとからそれに実装を与えるのがカプセル化
publicにするものはそれがインタフェースだから
publicにしないものはそれが実装だから
隠す隠さないという発想に出るのは
あくまで実装ありきの考えだから
先にインタフェースを考え
再利用性や直交性のために先にデザインされ
あとからそれに実装を与えるのがカプセル化
publicにするものはそれがインタフェースだから
publicにしないものはそれが実装だから
2020/09/21(月) 17:34:41.41ID:13UcesYH
2020/09/21(月) 17:43:28.75ID:frM+OBSN
黒本から抜粋すると、
オブジェクト指向におけるカプセル化の特徴
・データがオブジェクト外に漏れることを防止できる
・オブジェクト内で保持する不変な値を保護できる
・クラスの実装を変更する際、呼び出し側への影響を軽減できる
というのはあるな。
まぁ、そりゃそうだわな。
オブジェクト指向におけるカプセル化の特徴
・データがオブジェクト外に漏れることを防止できる
・オブジェクト内で保持する不変な値を保護できる
・クラスの実装を変更する際、呼び出し側への影響を軽減できる
というのはあるな。
まぁ、そりゃそうだわな。
2020/09/21(月) 17:49:42.33ID:frM+OBSN
すまん、黒本じゃなかった。同じ会社の出している試験問題アプリの回答内容だったわ。
ていうか、いい加減に1のテンプレ変えようぜ。
定期的にこのスレくるけど、1の言うカプセル化の意味が本気でわからん。
ていうか、いい加減に1のテンプレ変えようぜ。
定期的にこのスレくるけど、1の言うカプセル化の意味が本気でわからん。
2020/09/21(月) 17:54:04.06ID:+MA8+KhA
2020/09/21(月) 18:16:13.76ID:fI5zzMAW
> めちゃくちゃな問題だね
> こんなの勉強して”正解”を覚えちゃうから
> 自分で考えなくなるんだろうね
↑理由が一切書いてないことに注目(笑)
こういうの多いね。難癖だけ付ける人。
> こんなの勉強して”正解”を覚えちゃうから
> 自分で考えなくなるんだろうね
↑理由が一切書いてないことに注目(笑)
こういうの多いね。難癖だけ付ける人。
2020/09/21(月) 18:26:45.54ID:frM+OBSN
>>59
Java Goldをとる人がオブジェクト指向に文句を言うことは無いと思う。
基本的に試験内容自体はJavaの実務経験(他言語の実務経験では無理)がないと解けない問題が多い。私が例(記憶)として挙げたのが珍例なだけで...。
何でもかんでもsetter,getterメソッドを用意して貧血ドメインなプログラムを平気で書くプログラマーは多いかもしれんが(根拠のない偏見)、少なくともJava Gold持つ奴がそんなクソコードを書くことはないと思う。思いたい。
Java Goldをとる人がオブジェクト指向に文句を言うことは無いと思う。
基本的に試験内容自体はJavaの実務経験(他言語の実務経験では無理)がないと解けない問題が多い。私が例(記憶)として挙げたのが珍例なだけで...。
何でもかんでもsetter,getterメソッドを用意して貧血ドメインなプログラムを平気で書くプログラマーは多いかもしれんが(根拠のない偏見)、少なくともJava Gold持つ奴がそんなクソコードを書くことはないと思う。思いたい。
2020/09/21(月) 19:16:33.69ID:isBduuhS
書くプログラムによるけどな。
データマイニングツール実装するならほぼフルアクセス必要なレコードが絶対に必要になる。
なぜならそれがドメインが求める機能だから。
データマイニングツール実装するならほぼフルアクセス必要なレコードが絶対に必要になる。
なぜならそれがドメインが求める機能だから。
2020/09/21(月) 19:16:56.12ID:+VWwNH4y
>>61
どんなに優秀な人間でも未来予測はできない。
どんなに優秀な人間でも未来予測はできない。
64デフォルトの名無しさん
2020/09/21(月) 19:42:08.62ID:zhVYtERB2020/09/21(月) 21:29:26.18ID:0qqDKwic
HSPってオワコンじゃね?
2020/09/21(月) 21:40:09.54ID:wwTdiRfD
2020/09/22(火) 02:25:08.88ID:jDcMk3G3
はっきりした定義は無い
2020/09/22(火) 03:13:46.62ID:bItwwpmo
> じゃあJava Goldを取るような人は
> カプセル化とな何か、どう定義しているの?
Java Goldを取る人が定義するのか?
Java Goldを取るような人はどういう定義をカプセル化と思ってるかだろ?
答えは>>34に書いてあるな。間違いを除いた以下がカプセル化の定義としてよく知られている。
1. カプセル化とは、属性と操作を一体化させることである。
2. カプセル化されたクラスでは、インスタンス変数に対してむやみにアクセスされることを防ぐためにアクセス修飾子を「private」にすることが多い
3. カプセル化されたクラスでは、インスタンス変数の値を変更する手段としてメソッドが別途作成される事が多い
4. カプセル化されたクラスでは、インスタンス変数を操作するためのメソッドはアクセス修飾子を「public」にすることが多い
6. カプセル化を行うことで個々のオブジェクトの独立性が高まり、オブジェクト内部の変更が外部に影響しにくくなる。
7. カプセル化を行うことでソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用も安易になる。
> カプセル化とな何か、どう定義しているの?
Java Goldを取る人が定義するのか?
Java Goldを取るような人はどういう定義をカプセル化と思ってるかだろ?
答えは>>34に書いてあるな。間違いを除いた以下がカプセル化の定義としてよく知られている。
1. カプセル化とは、属性と操作を一体化させることである。
2. カプセル化されたクラスでは、インスタンス変数に対してむやみにアクセスされることを防ぐためにアクセス修飾子を「private」にすることが多い
3. カプセル化されたクラスでは、インスタンス変数の値を変更する手段としてメソッドが別途作成される事が多い
4. カプセル化されたクラスでは、インスタンス変数を操作するためのメソッドはアクセス修飾子を「public」にすることが多い
6. カプセル化を行うことで個々のオブジェクトの独立性が高まり、オブジェクト内部の変更が外部に影響しにくくなる。
7. カプセル化を行うことでソフトウェアの保守性や開発効率が高まり、プログラムの部分的な再利用も安易になる。
2020/09/22(火) 03:16:09.36ID:bItwwpmo
ところでPythonやってる人は、カプセル化はprivateではない
ネームマングリング(__プリフィックスつけたメソッド名を内部名へ変更すること)のことだ
って思ってるのか?
ネームマングリング(__プリフィックスつけたメソッド名を内部名へ変更すること)のことだ
って思ってるのか?
2020/09/22(火) 03:17:30.33ID:jDcMk3G3
2020/09/22(火) 03:18:47.21ID:jDcMk3G3
Java Goldってこの程度なのか…
■ このスレッドは過去ログ倉庫に格納されています
ニュース
- 米大統領報道官「日本と強固な同盟維持、中国とも協力」 [少考さん★]
- 高市首相の答弁書に「台湾有事答えない」と明記 存立危機発言当時 ★2 [蚤の市★]
- ミス・ユニバース フィンランド代表の「つり目」写真が波紋… 本人釈明も批判やまず 協会謝罪「徹底的に検証」へ [冬月記者★]
- 【おこめ券】鈴木憲和農相 小泉前農相の備蓄米放出を“反省”「備蓄の円滑な運営を図ってまいります」 [Hitzeschleier★]
- JA全農が「新おこめ券」…来年9月末の有効期限を新設、必要経費のみ上乗せ ★2 [蚤の市★]
- 1人3千円の食品高騰対策、何に使える? あいまいなまま衆院通過 [蚤の市★]
- 【悲報】維新の政治資金でガールズバー、高市首相「良いか悪いかは国民の皆さまが判断されること」 [115996789]
- 【悲報】タンパク質さん、寿命を縮めることが判明
- 【マギレコ】VIPでマギアレコード&マギアエクセドラ【まどドラ】
- 中国人、ガチ超正論。「日本人がアイヌに対してやったことを『問題ない』とするなら、中国が日本人に同じことをしても文句ないだろう?」 [314039747]
- 衛生的に気持ち悪くて性風俗店行ったこと無いんだ
- 【悲報】新米、全く売れなくて倉庫が満杯になってしまうwwwwwwwwwwwwwwwwwwww [802034645]
