👨👨👦👦 Ομαδοποίηση Αντικειμένων σε Κλάσεις: Αφαιρετικότητα και Ενθυλάκωση
Κατά τη διαδικασία της διαγραμματικής αναπαράστασης, είδαμε ότι κάθε αντικείμενο περιέχει τις δικές του ιδιότητες και μεθόδους. Ο στόχος της ομαδοποίησης αυτών των αντικειμένων σε κλάσεις είναι να απλοποιήσουμε και να βελτιστοποιήσουμε τη δομή τους.
Σε κάθε αντικειμενοστραφή εφαρμογή, το αντικείμενο είναι μια ανεξάρτητη μονάδα που ενθυλακώνει (κρύβει) τα δεδομένα του και τις μεθόδους του από τον εξωτερικό κόσμο. Αυτό προστατεύει τα δεδομένα του από απρόσμενες αλλαγές και επιτρέπει την ασφάλεια στις διαδικασίες του προγράμματος.
Κλάσεις (Classes) 🏷️
Ο γενικός τύπος ενός αντικειμένου ονομάζεται κλάση (class) και καθορίζει τις αρχικές ιδιότητες και τη συμπεριφορά κάθε αντικειμένου που προέρχεται από αυτή. Μια κλάση αποτελεί ένα αφαιρετικό (abstract) στοιχείο και μπορεί να παράγει ένα άπειρο πλήθος δομικά ίδιων αντικειμένων.
Για παράδειγμα, αν έχουμε την κλάση Σκύλος στο παιχνίδι «Η Φάρμα των Ζώων», θα μπορούσαμε να έχουμε πολλά σκυλάκια με διαφορετικά χαρακτηριστικά, όπως ράτσα, μέγεθος, χρώμα, και συμπεριφορές όπως «Τρώω()», «Κοιμάμαι()», «Τρέχω()». 🎮🐕
| **Κλάση ** | Ιδιότητες | Μεθόδοι |
|---|---|---|
| Σκύλος | Ράτσα | Τρώω() |
| Χρώμα | Κοιμάμαι() | |
| Μέγεθος | Τρέχω() | |
| Όνομα | ||
| Ηλικία |
Εικόνα: Μερικά αντικείμενα της κλάσης «Σκύλος» 🐕:
| Όνομα | Ράτσα | Μέγεθος | Χρώμα | Ηλικία |
|---|---|---|---|---|
| Κάτια | Τσόου τσόου | Μικρό | Καφέ | 1 έτους |
| Σοφία | Σιχ Τσου | Μικρό | Λευκό | 6 μηνών |
| Μπρούνο | Γερμανικός Ποιμενικός | Μεσαίο | Μαύρο | 4 μηνών |
| Γκας | Ροτβάιλερ | Μεγάλο | Μαύρο | 3 ετών |
| Ρούντι | Γκρέιτ Ντέιν | Μεγάλο | Μαύρο | 3 ετών |
Παράδειγμα: «Αποστολή λουλουδιών» 💐
Ας δούμε πώς μπορούμε να ομαδοποιήσουμε αντικείμενα σε κλάσεις στην ιστορία της αποστολής λουλουδιών. Όλοι οι ανθοπώλες, όπως ο Γιώργος και ο Τζοβάνι, μπορούν να αποτελέσουν αντικείμενα της κλάσης «Ανθοπώλης», με τις ίδιες ιδιότητες και μεθόδους.
Εικόνα 4.5: Διαγραμματική Αναπαράσταση Κλάσεων του προβλήματος «Αποστολή λουλουδιών».
| Κλάση | Ιδιότητες | Μεθόδοι |
|---|---|---|
| Πελάτης | Όνομα, Διεύθυνση, Email | ΚάνειΠαραγγελία() |
| Ανθοπώλης | Όνομα, Κατάστημα, ΑΦΜ | ΔέχεταιΠαραγγελία() |
| Ταχυμεταφορέας | Όνομα, Τηλέφωνο | ΠαραδίδειΑνθοδέσμη() |
| Ανθοδέτης | Όνομα, Ειδικότητα | ΕτοιμάζειΑνθοδέσμη() |
Η ομαδοποίηση των αντικειμένων σε κλάσεις απλοποιεί την εφαρμογή και διευκολύνει τη συντήρησή της, καθώς επιτρέπει τη δημιουργία πολλών παρόμοιων αντικειμένων με κοινές ιδιότητες και μεθόδους.
Με αυτό τον τρόπο, δημιουργούμε ένα αποδοτικό και ευέλικτο σύστημα αντικειμενοστραφούς προγραμματισμού!