ただ...カプセル化を理解しているかどうか完全にはわかりません。たぶん、私はまだクラスでプログラミングを学んでいて、他の人が使用するような実世界のプログラムを作成していないという事実に関係しているのかもしれませんが、それが何を達成しようとしているのか理解できません. クラスのメンバーと関数の一部へのアクセスを制限していることを理解しています。しかし、誰からそれを制限するような..?プライベート データ メンバーを持っている例をいくつか見てきましたが、いずれにしてもデータ メンバーを操作できるようにするパブリックの get メソッドまたは set メソッドを持っています。では、何かがどのように制限されたり隠されたりしたのでしょうか?
私の本には次のように書かれています。
カプセル化には、次の 2 つの重要な利点があります。
- ユーザー コードは、カプセル化されたオブジェクトの状態を誤って破損することはありません。
- カプセル化されたクラスの実装は、ユーザー レベルのコードを変更しなくても、時間の経過とともに変更できます。"
私は彼らが使っている言葉について混乱していると思います。ユーザーコードがオブジェクトの状態をどのように破壊する可能性があるかについて、どのように、または誰かが私に例を与えることができますか?
私の質問はいたるところにあることは知っていますが、カプセル化について考えるときは私の心もそうなので、それについての私の考えをすべてカプセル化するのに苦労しています(..笑)