Κοινή χρήση τεχνολογίας

[C]Πακέτο

2024-07-12

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

1. Ορισμός συσκευασίας

Η ενθυλάκωση είναι ένα από τα τρία βασικά χαρακτηριστικά του αντικειμενοστρεφούς προγραμματισμού (OOP) (ενθυλάκωση, κληρονομικότητα, πολυμορφισμός). Αναφέρεται στο συνδυασμό δεδομένων (ιδιοτήτων) και μεθόδων (συναρτήσεων) για τη λειτουργία αυτών των δεδομένων σε μια ανεξάρτητη μονάδα (κλάση), κρύβοντας όσο το δυνατόν περισσότερο τις εσωτερικές λεπτομέρειες του αντικειμένου και εκθέτοντας μόνο τη διεπαφή στον έξω κόσμο. Ο σκοπός αυτού είναι να προστατεύσει τα δεδομένα του αντικειμένου, να αποτρέψει την άμεση πρόσβαση εξωτερικού κώδικα στις εσωτερικές δομές δεδομένων του αντικειμένου, να μειώσει τα σφάλματα και να απλοποιήσει την πολυπλοκότητα.

2. Ο σκοπός της συσκευασίας

  1. απόκρυψη δεδομένων: Προστατέψτε τα δεδομένα του αντικειμένου από άμεση εξωτερική πρόσβαση και αποτρέψτε την παράνομη τροποποίηση των δεδομένων.
  2. Καθαρή διεπαφή: Με την έκθεση περιορισμένων διεπαφών (μεθόδων), ο εξωτερικός κώδικας μπορεί να αλληλεπιδράσει με το αντικείμενο μόνο μέσω αυτών των διεπαφών, διευκρινίζοντας έτσι τη συμπεριφορά του αντικειμένου.
  3. Modular: Ενσωματώστε τα σχετικά δεδομένα και λειτουργίες μαζί για να βελτιώσετε την αρθρωτή και επαναχρησιμοποίηση του κώδικα.

3. Μέθοδοι υλοποίησης ενθυλάκωσης σε C++

  1. Χρήση Class : Κατά τον ορισμό μιας κλάσης, ορίστε τα μέλη δεδομένων (ιδιότητες) ως ιδιωτικά ή προστατευμένα και ορίστε τις μεθόδους λειτουργίας αυτών των δεδομένων ως δημόσιες. Με αυτόν τον τρόπο, ο εξωτερικός κώδικας δεν μπορεί να έχει άμεση πρόσβαση στα ιδιωτικά μέλη της κλάσης, αλλά μπορεί να έχει πρόσβαση σε αυτά μόνο έμμεσα μέσω δημόσιων μεθόδων.

  2. τροποποιητής πρόσβασης

    • public: Προσβάσιμο με οποιονδήποτε εξωτερικό κωδικό.
    • protected: Είναι δυνατή η πρόσβαση μόνο στην ίδια την κλάση και τις παράγωγες κλάσεις (υποκλάσεις).
    • private: Η πρόσβαση είναι δυνατή μόνο εντός της ίδιας της κλάσης, όχι σε παράγωγες κλάσεις.
  3. Κατασκευαστής και καταστροφέας : Αρχικοποιήστε το αντικείμενο μέσω του κατασκευαστή και καθαρίστε τους πόρους που καταλαμβάνει το αντικείμενο μέσω του καταστροφέα. Αποτελούν επίσης μέρος της ενθυλάκωσης επειδή ελέγχουν τον κύκλο ζωής του αντικειμένου.

4. Παράδειγμα

Παρακάτω είναι ένα απλό παράδειγμα περιτυλίγματος C++ που δείχνει αRectangleΥλοποίηση της (ορθογώνιας) τάξης.

  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. }

Σε αυτό το παράδειγμα,Rectangleγενικόςwidthκαιheight Οι ιδιότητες γίνονται ιδιωτικές και ο εξωτερικός κωδικός δεν μπορεί να έχει άμεση πρόσβαση σε αυτές.Αντίθετα, χρησιμοποιούμε δημόσιες μεθόδους όπως π.χsetWidthgetHeightκαιgetArea ) για πρόσβαση και τροποποίηση αυτών των ιδιωτικών ιδιοκτησιών. Αυτή η μέθοδος υλοποιεί την ενθυλάκωση δεδομένων και παρέχει μια σαφή διεπαφή για εξωτερική χρήση.