jvmでは、クラスローディング時に初期化されるメソッド領域に関数がロードされ、ヒープ内のオブジェクトはパフォーマンスを向上させるためにこれらの関数を呼び出します。カプセル化は、データメンバーとメンバー関数のバインディングです。この場合、私はオブジェクトレベルでカプセル化を見ていません。 また、クラスに何千ものインスタンスがある場合、関数がさまざまなオブジェクトによって共有されたリソースとして表示されるため、同じ関数を何度も何度も何度も何度も何度も何度も何度も何度も繰り返しても問題ありません。
を明記してください。なぜカプセル化がオブジェクト内にないのか/私たちがカプセル化と呼んでいるのはどうしてですか?
答えて
機能は、Javaが機能を持っていない
、それだけで、常にクラスに関連付けられているメソッドを持つクラスのロード時に初期化された方法領域にロードされています。これらのメソッドのロード方法は、JVMによって異なります。 HotSpot JVMでは、メソッドを最適化し、JVMの存続期間にわたって多くの時間を再構築することができます。
クラス内の静的変数の初期化を一度行うことと、異なる時間にメソッドのコードを異なる方法で操作する方法を混同しないでください。
カプセル化は、データメンバーとメンバー関数のバインディングです。
私は同意しません。オブジェクト指向プログラミングでは、カプセル化は実装の詳細を隠すことです。オブジェクト上のメソッドの呼び出し側は、メソッドの実装方法や使用されるフィールドを知る必要はありません。
これは、関数がさまざまなオブジェクトで共有されているリソースとして表示されるため、同じ関数を何度も何度も何度も何度も何度も何度も何度も何度も繰り返しても大丈夫でしょうか。
メソッドは読み取り専用ですので、コピーは何個でも問題はありません。そのようなものとして、彼らはリソースの競合の源ではありません。
彼らはクラスそれらが結合している正確にどのように
であるとしてメンバーが一緒に結合されていないメソッドとインスタンスデータは重要ではありません。あなたが知る必要があるのは、オブジェクトにクラスがあり、そのクラスにメソッドがあることだけです。パフォーマンスに関係なく、任意の数のオブジェクトが同じクラスを持つことができます。 (メモリが不足する可能性を除いて)
ありがとうございます。情報は確かに良いです –
- 1. TypeScriptがプライベートフィールドをカプセル化しないのはなぜですか?
- 2. なぜ802.1Qは元のフレームをカプセル化しませんか?
- 3. カプセル化とオブジェクトへのポインタ
- 4. クラスなしのPHPカプセル化?
- 5. なぜリンカーはカプセル化を保持しませんか?
- 6. Eclipseのgetterとsettersがカプセル化されていない
- 7. Pythonのオブジェクトのカプセル化セキュリティ
- 8. カプセル化 - ゲッターセッターを使用して私のデータメンバーを公開しているのはなぜですか?
- 9. エンティティフレームワークとカプセル化
- 10. カプセル化とインターフェイス
- 11. カプセル化とメッセージオブジェクト
- 12. Javaはどのカプセル化メカニズムを提供していますか?
- 13. どのようにC#でカプセル化を隠すのですか?
- 14. カプセル化の指標は何ですか?
- 15. カプセル化は、私の割り当ては、プロセス処理の原則をカプセル化するために私を必要と予期しない動作を
- 16. AndroidのOnClickListenersがViewインターフェイスでカプセル化されているのはなぜですか?
- 17. PHP/MySQLでデータアクセスをカプセル化するには、どのような方法が良いですか?
- 18. Dictでカプセル化OrderedDict
- 19. オブジェクトのスライシングがカプセル化を中断しますか?
- 20. DLL内にクラスがカプセル化されています
- 21. 情報隠蔽とカプセル化の違いは何ですか?
- 22. カプセル化と大規模なC++オブジェクトのポインタによる返信
- 23. Qt5デザイナーとカプセル化
- 24. カプセル化と例外
- 25. ジャージーXML(JSON以外のカプセル化が必要なオブジェクト)のRESTfulサービス
- 26. 角でのCSSのカプセル化
- 27. JAVAでのカプセル化のレベル
- 28. これはPHPでのカプセル化の良い習慣ですか?
- 29. プライベート静的内部クラスにはカプセル化が推奨されていますか?
- 30. カプセル化を破ることなく別のオブジェクトのメソッドを呼び出す
オブジェクトは、1つのソフトウェアコンポーネントにまとめられた状態と動作です。 "オブジェクトにない"?違う。あなたは同じ機能を持つ多くのインスタンスを持つことができますが、共有されていません。それぞれは独自のカプセル化状態で動作します。 – duffymo
はい。しかし、メソッドはメソッド領域に格納され、Javaオブジェクトインスタンスはスタック領域に存在する参照IDを介してアクセスメソッドからヒープにあります。メソッドは同じで、異なるオブジェクトインスタンスによってアクセスされています。メソッドとインスタンスのデータメンバがクラスに含まれているので、私はカプセル化に疑問を抱いています。異なるインスタンスを作成して、同じ機能を何度も何度も共有しています。 –
間違っています。申し訳ありませんが、あなたはそれを取得しないでください。これはすべてのOO言語の一部であるアイデアです。できます。おそらくあなたが誤解したと認めても構わないのですか? – duffymo