Technology sharing

[C]Package

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

1. Definitio packaging

Encapsulation una est e tribus notis fundamentalibus programmandi obiecti ordinati (OOP) (encapsulation, hereditas, polymorphismus). Indicat coniungens notitias (proprietates) et modos (munerum) ad operandum data in independens unitas (classis), occultans singularia objecti quam maxime interna, et tantum exponendo instrumenti ad extra. Propositum huius rei notitias tueri est, ne externum codicem directe accedens internae notitiae obiecti structurae, errores minuat et implicationem simpliciorem reddat.

2. Ad packaging

  1. notitia latebras: Notitia objecti defende ab accessu directo externo et ne data e contra legem immutata sint.
  2. Patet interface: exponendo interfaces limitatas (methodos), codicem externum non nisi cum obiecto per has interfaces se occurrunt, ita ut mores obiecti aperiant.
  3. Modular: Encapsulate cognata notitia et operationes simul modularity et reusability codicis emendare.

3. Methodi ad effectum deducendi encapsulation in C ++

  1. per Classis : Cum definiens genus, notitias sodales (proprietates) quasi privatas vel tutas pone, et pone modos operandi has notitias publicas. Hoc modo, Codex externus ad privata classium membra directe accedere non potest, sed ea tantum indirecte per publicas methodos accedere potest.

  2. accessum determinatio

    • public: accessibilis per quemlibet codicem externum.
    • protected: Accessi non possunt nisi in ipsa classe et classibus derivatis (subclasses).
    • private: Nonnisi in ipso genere accessi, non classes derivatae.
  3. Constructor et destructor : Initialize obiectum per conditorem et mundare facultates ab obiecto per destructor occupatas. Sunt etiam pars encapsulationis quia vitam objecti regunt.

4. Exemplum

Infra exemplum simplex C++ ostendensRectangleExsecutio (rectangularis) classis.

  1. #include <iostream>
  2. class Rectangle {
  3. private:
  4. double width; // 矩形的宽
  5. double height; // 矩形的高
  6. public:
  7. // 构造函数
  8. Rectangle(double w, double h) : width(w), height(h) {}
  9. // 设置宽度
  10. void setWidth(double w) {
  11. width = w;
  12. }
  13. // 获取宽度
  14. double getWidth() const {
  15. return width;
  16. }
  17. // 设置高度
  18. void setHeight(double h) {
  19. height = h;
  20. }
  21. // 获取高度
  22. double getHeight() const {
  23. return height;
  24. }
  25. // 计算面积
  26. double getArea() const {
  27. return width * height;
  28. }
  29. };
  30. int main() {
  31. Rectangle rect(5.0, 10.0);
  32. std::cout << "Rectangle area: " << rect.getArea() << std::endl;
  33. rect.setWidth(7.0);
  34. std::cout << "New Rectangle area: " << rect.getArea() << std::endl;
  35. return 0;
  36. }

In hoc exemplo;Rectanglegeneraliswidthetheight Possessiones fiunt codice privato et externo, eas directe accedere non possunt.Pro publicis rationibus utimur utsetWidthgetHeightetgetArea ) ad has proprietates privatas accedere et mitigare. Haec methodus instrumentorum notitiae encapsulationis et instrumenti ad usum externum lucidum praebet.