Τάξεις εναντίον δομών
Μερικές από τις κύριες έννοιες των αντικειμενοστρεφών γλωσσών προγραμματισμού (OO) είναι η ενθυλάκωση, η κληρονομικότητα και ο πολυμορφισμός. Η κλάση και η δομή είναι δύο από τις κατασκευές/εργαλεία OO, τα οποία βοηθούν τους προγραμματιστές να επιτύχουν αυτές τις έννοιες στις περισσότερες από τις εξερχόμενες γλώσσες προγραμματισμού OO (η Java δεν παρέχει δομές). Οι τάξεις είναι μια αφηρημένη αναπαράσταση αντικειμένων του πραγματικού κόσμου. Οι δομές μοιάζουν πολύ με κλάσεις με παρόμοια χρήση, αλλά έχουν λίγους περιορισμούς σε σύγκριση με τις κλάσεις. Και οι δύο κλάσεις και η δομή χρησιμοποιούνται για την ομαδοποίηση παρόμοιου τύπου δεδομένων μαζί.
Τι είναι τα Μαθήματα;
Οι τάξεις απεικονίζουν την αφηρημένη αναπαράσταση αντικειμένων του πραγματικού κόσμου, ενώ οι σχέσεις απεικονίζουν τον τρόπο με τον οποίο κάθε τάξη συνδέεται με άλλες. Τόσο οι κλάσεις όσο και οι σχέσεις έχουν ιδιότητες που ονομάζονται χαρακτηριστικά. Οι μέθοδοι στις κλάσεις αντιπροσωπεύουν ή καθορίζουν τη συμπεριφορά αυτών των κλάσεων. Οι μέθοδοι και τα χαρακτηριστικά των κλάσεων ονομάζονται μέλη της κλάσης. Συνήθως, η ενθυλάκωση επιτυγχάνεται καθιστώντας τα χαρακτηριστικά ιδιωτικά, δημιουργώντας παράλληλα δημόσιες μεθόδους που μπορούν να χρησιμοποιηθούν για πρόσβαση σε αυτά τα χαρακτηριστικά. Ένα αντικείμενο είναι το παράδειγμα μιας κλάσης. Η κληρονομικότητα επιτρέπει στο χρήστη να επεκτείνει κλάσεις (που ονομάζονται υποκλάσεις) από άλλες κλάσεις (που ονομάζονται υπερτάξεις). Ο πολυμορφισμός επιτρέπει στον προγραμματιστή να αντικαταστήσει ένα αντικείμενο μιας κλάσης στη θέση ενός αντικειμένου της υπερκλάσης του. Συνήθως, τα ουσιαστικά που βρίσκονται στον ορισμό του προβλήματος γίνονται απευθείας κλάσεις στο πρόγραμμα. Και ομοίως, τα ρήματα γίνονται μέθοδοι. Δημόσιος, ιδιωτικός και προστατευμένος είναι οι τυπικοί τροποποιητές πρόσβασης που χρησιμοποιούνται για τις κλάσεις. Ένα διάγραμμα κλάσεων δείχνει τις τάξεις των συστημάτων, τις σχέσεις μεταξύ των κλάσεων και τα χαρακτηριστικά τους.
Τι είναι οι δομές;
Όπως αναφέρθηκε παραπάνω, οι δομές μοιάζουν πολύ με κλάσεις με παρόμοια χρήση, αλλά έχουν ελαφρώς περιορισμένες δυνατότητες από τις κλάσεις. Στην πραγματικότητα, οι κλάσεις μπορούν να θεωρηθούν ως επέκταση των δομών. Για παράδειγμα, οι δομές είναι ίδιες με τις κλάσεις στη C++, αλλά έχουν δημόσια μέλη από προεπιλογή. Μια δομή μπορεί να οριστεί από το χρήστη για να αναπαραστήσει έναν τύπο που είναι σύνθετος. Παρόμοια με τις κλάσεις, οι δομές περιέχουν μέλη που μπορούν να ανήκουν σε πολλούς τύπους. Η λέξη-κλειδί struct χρησιμοποιείται για τον ορισμό μιας δομής σε C και C++, ενώ η λέξη-κλειδί Structure χρησιμοποιείται για το ίδιο σε γλώσσες προγραμματισμού. NET.
Ποια είναι η διαφορά μεταξύ Τάξεων και Δομών;
Αν και οι κλάσεις και οι δομές είναι παρόμοιες κατασκευές που απαντώνται σε γλώσσες προγραμματισμού, έχουν λεπτές διαφορές. Τυπικά, η κλάση είναι μια επέκταση της δομής και επομένως οι δομές έχουν κάποιους σχετικούς περιορισμούς. Για παράδειγμα, οι δομές μπορούν να θεωρηθούν ίδιες με τις κλάσεις στη C++, αλλά τα μέλη δεν είναι δημόσια από προεπιλογή στις κλάσεις (σε αντίθεση με τις δομές). Αυτό στην πραγματικότητα σημαίνει ότι μπορείτε να ορίσετε μια κλάση και μια δομή με ακριβώς τα ίδια χαρακτηριστικά χρησιμοποιώντας τους κατάλληλους τροποποιητές πρόσβασης στη C++. Ωστόσο, στο C, οι δομές δεν μπορούν να περιέχουν συναρτήσεις ή υπερφορτωμένες λειτουργίες. Οι λέξεις-κλειδιά class και struct χρησιμοποιούνται για τον ορισμό μιας κλάσης και μιας δομής στη C++, αντίστοιχα. Όταν πρόκειται για γλώσσες. NET (C, VB. NET, κ.λπ.), η κλάση είναι ένας τύπος αναφοράς, ενώ η δομή είναι ένας τύπος τιμής. Και συνήθως, οι δομές χρησιμοποιούνται για μικρότερα αντικείμενα, αλλά οι κλάσεις χρησιμοποιούνται για μεγαλύτερα αντικείμενα που διατηρούνται στη μνήμη για μεγαλύτερες περιόδους.