Συνάθροιση σε Java

Artículo revisado y aprobado por nuestro equipo editorial, siguiendo los criterios de redacción y edición de YuBrain.


Η συγκέντρωση είναι ένας τύπος συσχέτισης μεταξύ κλάσεων που μπορεί να εκτελεστεί σε διάφορες αντικειμενοστρεφείς γλώσσες προγραμματισμού, όπως η Java. Είναι μια διαδικασία που επιτρέπει στον κώδικα να επαναχρησιμοποιηθεί γρήγορα και αποτελεσματικά, καθιστώντας τα προγράμματα πολύ πιο εύκολο να γραφτούν και να λειτουργήσουν πιο αποτελεσματικά.

Σε γενικές γραμμές, η συνάθροιση είναι η αναφορά σε μια κλάση σε μια άλλη κλάση. Αυτό δημιουργεί αυτό που ονομάζεται σχέση HAS-A μεταξύ της κλάσης που περιέχει και της κλάσης που περιέχει. Αυτές οι σχέσεις χαρακτηρίζονται από μονής κατεύθυνσης, καθώς υπονοούν ότι η μία από τις κλάσεις περιέχει την άλλη. αυτό εμποδίζει να συμβεί το αντίθετο.

Για παράδειγμα, μπορούμε να πούμε ότι μια εταιρεία, η οποία μπορεί να θεωρηθεί από προγραμματιστική άποψη ως κλάση αντικειμένων, έχει ένα σύνολο υπαλλήλων. Αυτά, με τη σειρά τους, μπορούν επίσης να θεωρηθούν ως αντικείμενα με τις δικές τους ιδιότητες. Στην περίπτωση αυτή, η κλάση που περιέχει είναι η εταιρεία, ενώ η κλάση που περιέχει είναι οι εργαζόμενοι. Αυτή η σχέση έχει νόημα μόνο προς αυτή την κατεύθυνση, δηλαδή από την εταιρεία στον εργαζόμενο. Η σχέση προς την αντίθετη κατεύθυνση δεν έχει νόημα, αφού θα ήταν σαν να λέμε ότι ο εργαζόμενος περιέχει την εταιρεία. Το ότι αυτό δεν βγάζει νόημα δείχνει ότι είναι μονόδρομη σχέση.

Συνάθροιση σε διαγράμματα τάξης

Στην Ενοποιημένη Γλώσσα Μοντελοποίησης (UML), η οποία είναι ένας τύπος καθολικής οπτικής γλώσσας που δημιουργήθηκε για το σχεδιασμό πολύπλοκων συστημάτων λογισμικού, χρησιμοποιούνται διαγράμματα κλάσεων για να περιγράψουν τη δομή και τα χαρακτηριστικά ενός συστήματος. Σε αυτά τα διαγράμματα κάθε τάξη και οι σχέσεις της με τις άλλες αναπαρίστανται με γεωμετρικά σχήματα. Στην περίπτωση συνάθροισης, αυτή η σχέση αντιπροσωπεύεται από ένα κοίλο διαμάντι στο πλάι της κλάσης που περιέχει, το οποίο συνδέεται μέσω ενός ευθύγραμμου τμήματος με την κλάση που περιέχει. Για παράδειγμα:

Συνάθροιση σε Java

Αυτή είναι μια σχέση συνάθροισης που υποδεικνύει ότι η τάξη Well περιέχει την κατηγορία Duck.

Πώς υλοποιείται η συγκέντρωση στην Java;

Η υλοποίηση της συνάθροισης στην Java είναι σχετικά απλή. Είναι απλώς θέμα δημιουργίας δύο κλάσεων και μετά αναφορά της πρώτης κλάσης μέσα στη δεύτερη.

Εκτός από τη δημιουργία μιας σχέσης “έχω ένα” ή “πρέπει να”, η συνάθροιση Java χαρακτηρίζεται από μια ασθενή σχέση μεταξύ του αντικειμένου κοντέινερ και του περιεχομένου. Αυτό σημαίνει ότι η καταστροφή του ενός δεν συνεπάγεται την καταστροφή του άλλου. Για να κατανοήσουμε αυτό το είδος σχέσης, η σχέση μεταξύ ενός δασκάλου και των μαθητών του μπορεί να ληφθεί ως παράδειγμα. Στην περίπτωση αυτή, η εξαφάνιση ή ο θάνατος του εκπαιδευτικού δεν έχει ως αποτέλεσμα την εξαφάνιση ή τον θάνατο των μαθητών του.

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

Παράδειγμα συγκέντρωσης

Ο παρακάτω κώδικας αποτελεί παράδειγμα της υλοποίησης της συνάθροισης ως μια μορφή συσχέτισης μεταξύ δύο κλάσεων που χρησιμοποιούν Java. Το παράδειγμα αφορά ένα πρόγραμμα για να παρακολουθείτε ποιοι υπάλληλοι μιας εταιρείας έχουν δικό τους αυτοκίνητο και ποιοι όχι, καθώς και ποιοι έχουν ποδήλατα και ποιοι όχι.

Εφόσον επιδιώκουμε να δημιουργήσουμε μια σχέση που να δείχνει ότι ο εργαζόμενος “έχει” αυτοκίνητο ή/και ότι ο εργαζόμενος “έχει” ποδήλατο, είναι μια σχέση αθροίσματος μεταξύ της τάξης στην οποία θα ανήκει ο εργαζόμενος (την οποία θα ονομάσουμε Υπάλληλος , για ευνόητους λόγους) και δύο επιπλέον κατηγορίες, μία για το αυτοκίνητο και μία για το ποδήλατο.

Το πρώτο πράγμα που πρέπει να κάνετε σε αυτές τις περιπτώσεις είναι να δημιουργήσετε τις αντίστοιχες κλάσεις. Σε αυτή την περίπτωση, υπάρχουν τρεις κατηγορίες: μία για το αυτοκίνητο, μία για το ποδήλατο και μία για τον εργαζόμενο. Το παρακάτω σχήμα δείχνει τον κώδικα για τη δημιουργία αυτών των κλάσεων, οι οποίες ονομάζονται Car, Bicycle και Employee.

Συνάθροιση σε Java

Στον παραπάνω κώδικα μπορείτε επίσης να δείτε ότι κάθε κλάση έχει ορισμένα χαρακτηριστικά που σχετίζονται με αυτήν. Στην περίπτωση του αυτοκινήτου, έχει ως χαρακτηριστικά το μοντέλο, το χρώμα και τις πινακίδες κυκλοφορίας, όλα συνδέονται με το αυτοκίνητο. Το ίδιο συμβαίνει και με το ποδήλατο, το οποίο συνδέεται με αριθμό πινακίδας και μοντέλο.

Όταν εξετάζουμε την κλάση Employee, παρατηρούμε ότι αυτή η κλάση έχει τα χαρακτηριστικά monbreemp , που αντιπροσωπεύει το όνομα του υπαλλήλου και empid, που αντιπροσωπεύει τον αριθμό αναγνώρισης του υπαλλήλου. Στη συνέχεια, αναφέρεται στις κατηγορίες Car and Bike, δημιουργώντας τη συσχέτιση συνάθροισης μεταξύ αυτών των κατηγοριών. Τέλος, δημιουργείται ρεκόρ υπαλλήλου μαζί με το αυτοκίνητο και το ποδήλατό του.

Σημειώστε ότι σε αυτό το παράδειγμα, η αναφορά στις κατηγορίες Car and Bike εντός της κατηγορίας Employee καθιστά δυνατή την πρόσβαση στα χαρακτηριστικά ποδηλάτου και αυτοκινήτου μέσα από την κατηγορία Employee.

Το αποτέλεσμα αυτού του προγράμματος θα είναι:

________Στοιχεία υπαλλήλου________

Όνομα υπαλλήλου: Xavier

Αριθμός Ταυτότητας Υπαλλήλου: 210921

________Στοιχεία αυτοκινήτου υπαλλήλου________

Μοντέλο αυτοκινήτου: Corolla

Χρώμα αυτοκινήτου: Πράσινο

Πινακίδα αυτοκινήτου: XFZ-043

________Στοιχεία ποδηλάτου υπαλλήλου________

Μοντέλο ποδηλάτου: MERIDA

Πιάτα ποδηλάτου: LAA-11B

βιβλιογραφικές αναφορές

-Διαφήμιση-

Israel Parada (Licentiate,Professor ULA)
Israel Parada (Licentiate,Professor ULA)
(Licenciado en Química) - AUTOR. Profesor universitario de Química. Divulgador científico.

Artículos relacionados