Ο όρος είναι αντικειμενοστραφής προγραμματισμός. Στον αντικειμενοστραφή προγραμματισμό, το πρόγραμμα οργανώνεται σε αντικείμενα, τα οποία αναπαριστούν συνολικά ένα πρόβλημα ή μια εφαρμογή. Τα αντικείμενα αυτά επικοινωνούν μεταξύ τους μέσω μηνυμάτων, και κάθε αντικείμενο έχει το δικό του σύνολο δεδομένων και μεθόδων για την επεξεργασία αυτών των δεδομένων.
Ο αντικειμενοστραφής προγραμματισμός παρέχει το πλεονέκτημα της επαναχρησιμοποίησης του κώδικα, καθώς κάθε αντικείμενο μπορεί να επαναχρησιμοποιηθεί σε πολλές διαφορετικές περιπτώσεις χωρίς να χρειάζεται να γραφτεί επιπλέον κώδικας. Επιπλέον, ο αντικειμενοστραφής προγραμματισμός επιτρέπει στους προγραμματιστές να διαχωρίσουν τον κώδικα σε διαφορετικά τμήματα, καθιστώντας τον πιο ευανάγνωστο και εύκολο στη συντήρηση.
Ο αντικειμενοστραφής προγραμματισμός έχει πολλά πλεονεκτήματα σε σχέση με τον προγραμματισμό διαδικαστικής λογικής:
- Ταχύτητα και ευκολία εκτέλεσης: Ο αντικειμενοστραφής προγραμματισμός επιτρέπει τη χρήση πολλαπλών νημάτων εκτέλεσης ταυτόχρονα, βελτιώνοντας έτσι την απόδοση των εφαρμογών.
- Καθαρή δομή προγραμμάτων: Ο αντικειμενοστραφής προγραμματισμός επιτρέπει τη χρήση καθαρών και σαφών δομών κώδικα, που καθιστούν την ανάγνωση και τη συντήρηση των προγραμμάτων ευκολότερη και γρηγορότερη.
- Αρχή του “Μην επαναλαμβάνεσαι” (DRY): Ο αντικειμενοστραφής προγραμματισμός επιτρέπει τη χρήση επαναχρησιμοποιήσιμου κώδικα, καθώς οι μέθοδοι και οι κλάσεις μπορούν να επαναχρησιμοποιηθούν σε διάφορες περιπτώσεις.
- Συντομότερος χρόνος ανάπτυξης εφαρμογών: Ο αντικειμενοστραφής προγραμματισμός επιτρέπει την ανάπτυξη εφαρμογών με λιγότερο κώδικα και μικρότερο χρόνο ανάπτυξης, καθώς οι αντικειμενοστραφείς εφαρμογές απαιτούν λιγότερο κώδικα από τις διαδικαστικές εφαρμογές.
- Ευκολία στη διαχείριση του κώδικα: Ο αντικειμενοστραφής προγραμματισμός επιτρέπει στους προγραμματιστές να διαχωρίζουν τον κώδικα σε μικρότερα κομμάτια και να τον οργανώνουν σε λογικές κλάσεις και μεθόδους, καθιστώντας τον πιο εύκολο στη διαχείριση και την ανάπτυξη.
Συνολικά, ο αντικειμενοστραφής προγραμματισμός είναι μια προηγμένη τεχνική προγραμματισμού που προσφέρει πολλά πλεονεκτήματα σε σχέση με τον προγραμματισμό διαδικαστικής λογικής. Η χρήση του μπορεί να βοηθήσει τους προγραμματιστές να δημιουργήσουν αναπαράσταση του πραγματικού κόσμου με μεγαλύτερη ακρίβεια, να διατηρήσουν τον κώδικα πιο οργανωμένο και εύκολο στη συντήρηση, και να επιταχύνουν τη διαδικασία ανάπτυξης εφαρμογών.
Οι κλάσεις και τα αντικείμενα είναι οι δύο βασικές έννοιες του αντικειμενοστραφούς προγραμματισμού στην Java.
Μια κλάση είναι ένα πρότυπο ή μια ορισμένη δομή, η οποία περιγράφει τα χαρακτηριστικά και τις λειτουργίες που θα έχουν τα αντικείμενα που θα δημιουργηθούν από αυτήν την κλάση. Με άλλα λόγια, η κλάση αποτελεί το σχέδιο ή το πρότυπο των αντικειμένων.
Τα αντικείμενα αποτελούν τα πραγματικά παραδείγματα της κλάσης. Δημιουργούνται από μια κλάση, και κάθε αντικείμενο έχει τις δικές του τιμές για τα χαρακτηριστικά που έχουν καθοριστεί στην κλάση.
Για παράδειγμα, μια κλάση “Car” θα περιέχει χαρακτηριστικά όπως ο αριθμός των πορτών, η μέγιστη ταχύτητα και η μάρκα του αυτοκινήτου. Αν δημιουργήσουμε ένα αντικείμενο αυτής της κλάσης, θα έχει τιμές για αυτά τα χαρακτηριστικά, όπως ο αριθμός των πορτών του αυτοκινήτου, η μέγιστη ταχύτητα και η μάρκα του.
[adinserter block=”2″]
Στην Java, οι κλάσεις και τα αντικείμενα είναι σημαντικά για τον αντικειμενοστραφή προγραμματισμό, καθώς επιτρέπουν στους προγραμματιστές να δημιουργήσουν κώδικα που ανταποκρίνεται στον πραγματικό κόσμο και στη δομή των πραγμάτων.
Η δημιουργία μιας κλάσης αποτελείται από τη δήλωση των μελών της κλάσης, όπως τα χαρακτηριστικά και οι μέθοδοι. Οι μέθοδοι είναι συναρτήσεις που περιλαμβάνουν λειτουργίες που εκτελούνται στα αντικείμενα που δημιουργούνται από την κλάση.
Για παράδειγμα, η κλάση “Car” μπορεί να έχει μια μέθοδο που επιστρέφει τη μέγιστη ταχύτητα του αυτοκινήτου, μια άλλη μέθοδο που επιταχύνει το αυτοκίνητο και μια τρίτη μέθοδο που επιβραδύνει το αυτοκίνητο.
Για να δημιουργήσετε ένα αντικείμενο από μια κλάση, πρέπει να χρησιμοποιήσετε τη λέξη-κλειδί “new” και το όνομα της κλάσης, στη συνέχεια μπορείτε να αναθέσετε το αντικείμενο σε μια μεταβλητή.
Για παράδειγμα, αν έχουμε μια κλάση “Car” με τα χαρακτηριστικά “number_of_doors”, “
max_speed” και “brand”, μπορούμε να δημιουργήσουμε ένα αντικείμενο “car1” ως εξής:
Car car1 = new Car();
Το παραπάνω κώδικας δημιουργεί ένα αντικείμενο “Car” με τα προεπιλεγμένα χαρακτηριστικά της κλάσης.
Αφού δημιουργήσετε ένα αντικείμενο από μια κλάση, μπορείτε να αναθέσετε τιμές στα χαρακτηριστικά του αντικειμένου με τη χρήση του τελεστή “.” (dot operator). Για παράδειγμα, αν θέλουμε να ορίσουμε τον αριθμό των πορτών στο αυτοκίνητο “car1” στο 4, μπορούμε να το κάνουμε ως εξής:
car1.number_of_doors = 4;
Τέλος, μπορείτε να καλέσετε μια μέθοδο της κλάσης από ένα αντικείμενο με τη χρήση του τελεστή “.”. Για παράδειγμα, αν θέλουμε να καλέσουμε τη μέθοδο “accelerate” για το αυτοκίνητο “car1”, μπορούμε να το κάνουμε ως εξής:
car1.accelerate();
Ο αντικειμενοστραφής προγραμματισμός επιτρέπει τη δημιουργία σύνθετων δομών δεδομένων και συστημάτων, και αποτελεί μια πολύ χρήσιμη μέθοδος για την ανάπτυξη λογισμικού.
Παράδειγμα:
Έστω ότι θέλουμε να δημιουργήσουμε μια κλάση “Rectangle” για να αντιπροσωπεύει ένα ορθογώνιο με ύψος και πλάτος, και να παρέχει μια μέθοδο για τον υπολογισμό της εμβαδού του.
public class Rectangle { int height; int width; public int calculateArea() { return height * width; } }
Παραπάνω έχουμε δημιουργήσει μια κλάση “Rectangle” με δύο χαρακτηριστικά “height” και “width” και μια μέθοδο “calculateArea” που υπολογίζει το εμβαδόν του ορθογωνίου.
Για να χρησιμοποιήσουμε την κλάση, δημιουργούμε ένα αντικείμενο της κλάσης με τη χρήση του τελεστή “new” και το όνομα της κλάσης:
Rectangle rect = new Rectangle();
Έπειτα, μπορούμε να ορίσουμε το ύψος και το πλάτος του ορθογωνίου χρησιμοποιώντας τα χαρακτηριστικά του αντικειμένου “rect”:
rect.height = 5; rect.width = 10;
Τέλος, μπορούμε να καλέσουμε τη μέθοδο “calculateArea” για να υπολογίσουμε το εμβαδόν του ορθογωνίου:
int area = rect.calculateArea(); System.out.println("The area of the rectangle is: " + area);
Παραπάνω εκτυπώνουμε την τιμή της μεταβλητής “area”, η οποία θα πρέπει να είναι ίση με 50 (5 * 10).