τα στοιχεία επικοινωνίας μου
Ταχυδρομείο[email protected]
2024-07-12
한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina
Η ενθυλάκωση είναι ένα από τα τρία βασικά χαρακτηριστικά του αντικειμενοστρεφούς προγραμματισμού (OOP) (ενθυλάκωση, κληρονομικότητα, πολυμορφισμός). Αναφέρεται στο συνδυασμό δεδομένων (ιδιοτήτων) και μεθόδων (συναρτήσεων) για τη λειτουργία αυτών των δεδομένων σε μια ανεξάρτητη μονάδα (κλάση), κρύβοντας όσο το δυνατόν περισσότερο τις εσωτερικές λεπτομέρειες του αντικειμένου και εκθέτοντας μόνο τη διεπαφή στον έξω κόσμο. Ο σκοπός αυτού είναι να προστατεύσει τα δεδομένα του αντικειμένου, να αποτρέψει την άμεση πρόσβαση εξωτερικού κώδικα στις εσωτερικές δομές δεδομένων του αντικειμένου, να μειώσει τα σφάλματα και να απλοποιήσει την πολυπλοκότητα.
Χρήση Class : Κατά τον ορισμό μιας κλάσης, ορίστε τα μέλη δεδομένων (ιδιότητες) ως ιδιωτικά ή προστατευμένα και ορίστε τις μεθόδους λειτουργίας αυτών των δεδομένων ως δημόσιες. Με αυτόν τον τρόπο, ο εξωτερικός κώδικας δεν μπορεί να έχει άμεση πρόσβαση στα ιδιωτικά μέλη της κλάσης, αλλά μπορεί να έχει πρόσβαση σε αυτά μόνο έμμεσα μέσω δημόσιων μεθόδων.
τροποποιητής πρόσβασης:
public
: Προσβάσιμο με οποιονδήποτε εξωτερικό κωδικό.protected
: Είναι δυνατή η πρόσβαση μόνο στην ίδια την κλάση και τις παράγωγες κλάσεις (υποκλάσεις).private
: Η πρόσβαση είναι δυνατή μόνο εντός της ίδιας της κλάσης, όχι σε παράγωγες κλάσεις.Κατασκευαστής και καταστροφέας : Αρχικοποιήστε το αντικείμενο μέσω του κατασκευαστή και καθαρίστε τους πόρους που καταλαμβάνει το αντικείμενο μέσω του καταστροφέα. Αποτελούν επίσης μέρος της ενθυλάκωσης επειδή ελέγχουν τον κύκλο ζωής του αντικειμένου.
Παρακάτω είναι ένα απλό παράδειγμα περιτυλίγματος C++ που δείχνει αRectangle
Υλοποίηση της (ορθογώνιας) τάξης.
- #include <iostream>
-
- class Rectangle {
- private:
- double width; // 矩形的宽
- double height; // 矩形的高
-
- public:
- // 构造函数
- Rectangle(double w, double h) : width(w), height(h) {}
-
- // 设置宽度
- void setWidth(double w) {
- width = w;
- }
-
- // 获取宽度
- double getWidth() const {
- return width;
- }
-
- // 设置高度
- void setHeight(double h) {
- height = h;
- }
-
- // 获取高度
- double getHeight() const {
- return height;
- }
-
- // 计算面积
- double getArea() const {
- return width * height;
- }
- };
-
- int main() {
- Rectangle rect(5.0, 10.0);
- std::cout << "Rectangle area: " << rect.getArea() << std::endl;
- rect.setWidth(7.0);
- std::cout << "New Rectangle area: " << rect.getArea() << std::endl;
- return 0;
- }
Σε αυτό το παράδειγμα,Rectangle
γενικόςwidth
καιheight
Οι ιδιότητες γίνονται ιδιωτικές και ο εξωτερικός κωδικός δεν μπορεί να έχει άμεση πρόσβαση σε αυτές.Αντίθετα, χρησιμοποιούμε δημόσιες μεθόδους όπως π.χsetWidth
、getHeight
καιgetArea
) για πρόσβαση και τροποποίηση αυτών των ιδιωτικών ιδιοκτησιών. Αυτή η μέθοδος υλοποιεί την ενθυλάκωση δεδομένων και παρέχει μια σαφή διεπαφή για εξωτερική χρήση.