OOPs Concepts in Java

Ουπς έννοιες στη java

Τι είναι το OOPS;

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

Το OOP που σημαίνει "Αντικειμενοστραφής Προγραμματισμός" είναι μια ευρέως γνωστή και ευρέως χρησιμοποιούμενη έννοια σε σύγχρονες γλώσσες προγραμματισμού όπως Java.

OOPs Concepts in Java με παραδείγματα

Ακολουθούν γενικές έννοιες των OOPs Java:

1) Τάξη

The τάξη είναι μια από τις Βασικές έννοιες των OOP που είναι μια ομάδα παρόμοιων οντοτήτων. Είναι μόνο ένα λογικό συστατικό και όχι η φυσική οντότητα. Ας καταλάβουμε αυτό το ένα από τα OOP Concepts για παράδειγμα, εάν είχατε μια κατηγορία που ονομάζεται "Ακριβά αυτοκίνητα", θα μπορούσε να έχει αντικείμενα όπως Mercedes, BMW, Toyota, κ.λπ. Οι ιδιότητές της (δεδομένα) μπορεί να είναι η τιμή ή η ταχύτητα αυτών των αυτοκινήτων. Ενώ οι μέθοδοι που μπορούν να εκτελεστούν με αυτά τα αυτοκίνητα είναι η οδήγηση, η όπισθεν, το φρενάρισμα κ.λπ.

2) Αντικείμενο

Ένα αντικείμενο μπορεί να οριστεί ως παρουσία μιας κλάσης και μπορεί να υπάρχουν πολλαπλές παρουσίες μιας κλάσης σε ένα πρόγραμμα. Ένα αντικείμενο είναι ένα από τα Java Έννοιες OOPs που περιέχουν τόσο τα δεδομένα όσο και τη συνάρτηση που λειτουργεί στα δεδομένα. Για παράδειγμα – καρέκλα, ποδήλατο, μαρκαδόρος, στυλό, τραπέζι, αυτοκίνητο κ.λπ.

3) Κληρονομικότητα

Κληρονομία είναι ένα από τα Βασικά Concepts των OOP στα οποία ένα αντικείμενο αποκτά τις ιδιότητες και τις συμπεριφορές του γονικού αντικειμένου. Δημιουργεί μια σχέση γονέα-παιδιού μεταξύ δύο τάξεων. Προσφέρει ισχυρό και φυσικό μηχανισμό οργάνωσης και δομής οποιουδήποτε λογισμικού.

4) Πολυμορφισμός

Πολυμορφισμός αναφέρεται σε μία από τις έννοιες του OOPs στο Java που είναι η ικανότητα μιας μεταβλητής, αντικειμένου ή συνάρτησης να παίρνει πολλαπλές μορφές. Για παράδειγμα, στα αγγλικά, το ρήμα τρέξιμο έχει διαφορετικό νόημα αν το χρησιμοποιήσετε με ένα λάπτοπ, έναν αγώνα ποδιών, να επιχείρηση. Εδώ, καταλαβαίνουμε την έννοια του τρέξιμο με βάση τις άλλες λέξεις που χρησιμοποιούνται μαζί με αυτό. Το ίδιο ισχύει και για τον Πολυμορφισμό.

5) Αφαίρεση

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

6) Ενθυλάκωση

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

7) Σύλλογος

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

8) Συνάθροιση

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

9) Σύνθεση

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

Πλεονεκτήματα των OOPs (Σύστημα Αντικειμενοστρεφούς Προγραμματισμού):

  • OOPs Concepts in Java προσφέρουν εύκολη στην κατανόηση και σαφή αρθρωτή δομή για προγράμματα.
  • Τα αντικείμενα που δημιουργούνται για Αντικειμενοστραφή Προγράμματα μπορούν να επαναχρησιμοποιηθούν σε άλλα προγράμματα. Έτσι εξοικονομεί σημαντικό κόστος ανάπτυξης.
  • Τα μεγάλα προγράμματα είναι δύσκολο να γραφτούν, αλλά εάν η ομάδα ανάπτυξης και σχεδιασμού ακολουθεί τις έννοιες του OOPS, τότε μπορεί να σχεδιάσει καλύτερα με ελάχιστα ελαττώματα.
  • Βελτιώνει την αρθρωτή διάταξη του προγράμματος επειδή κάθε αντικείμενο υπάρχει ανεξάρτητα.

Σύγκριση του OOPS με άλλα στυλ προγραμματισμού με τη βοήθεια ενός παραδείγματος

Ας καταλάβουμε με παράδειγμα πώς Java OOPs Concepts διαφέρουν από άλλες προσεγγίσεις προγραμματισμού.

Γλώσσες προγραμματισμού μπορούν να ταξινομηθούν σε 3 βασικούς τύπους

  1. Μη δομημένες γλώσσες προγραμματισμού: Η πιο πρωτόγονη από όλες τις γλώσσες προγραμματισμού που έχουν διαδοχική ροή ελέγχου. Ο κώδικας επαναλαμβάνεται σε όλο το πρόγραμμα
  2. Γλώσσες Δομημένου Προγραμματισμού: Έχει μη διαδοχική ροή ελέγχου. Η χρήση συναρτήσεων επιτρέπει την επαναχρησιμοποίηση του κώδικα.
  3. Αντικειμενοστρεφείς γλώσσες προγραμματισμού: Συνδυάζει δεδομένα και δράση μαζί.

Πατήστε εδώ εάν το βίντεο δεν είναι προσβάσιμο

Ας κατανοήσουμε αυτούς τους 3 τύπους με ένα παράδειγμα.

Ας υποθέσουμε ότι θέλετε να δημιουργήσετε ένα Τραπεζικό Λογισμικό με λειτουργίες όπως

  1. • Παρακαταθήκη
  2. Ανάληψη
  3. Εμφάνιση υπολοίπου

Μη δομημένες γλώσσες προγραμματισμού

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

int account_number=20;
int account_balance=100;

Ας υποθέσουμε ότι έγινε κατάθεση 100 δολαρίων.

account_balance=account_balance+100

Στη συνέχεια, πρέπει να εμφανίσετε το υπόλοιπο του λογαριασμού.

printf(“Account Number=%d,account_number)
printf(“Account Balance=%d,account_balance)

Τώρα αποσύρεται το ποσό των 50 δολαρίων.

account_balance=account_balance-50

Και πάλι, πρέπει να εμφανίσετε το υπόλοιπο του λογαριασμού.

printf(“Account Number=%d,account_number)
printf(“Account Balance=%d,account_balance)

Μη δομημένος προγραμματισμός

Για οποιαδήποτε περαιτέρω λειτουργία κατάθεσης ή ανάληψης – θα επαναλάβετε τις ίδιες γραμμές ξανά και ξανά.

Δομημένος Προγραμματισμός

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

Δομημένος Προγραμματισμός

Αντικειμενοστραφής προγραμματισμός

Στο πρόγραμμά μας, ασχολούμαστε με δεδομένα ή εκτελούμε συγκεκριμένες λειτουργίες στα δεδομένα. Στην πραγματικότητα, η κατοχή δεδομένων και η εκτέλεση ορισμένων λειτουργιών σε αυτά τα δεδομένα είναι πολύ βασικό χαρακτηριστικό σε οποιοδήποτε πρόγραμμα λογισμικού. Οι ειδικοί στον προγραμματισμό λογισμικού σκέφτηκαν να συνδυάσουν τα Δεδομένα και Operaθέσεις. Ως εκ τούτου, η γέννηση του Αντικειμενοστρεφούς Προγραμματισμού που συνήθως ονομάζεται OOPS. Ο ίδιος κώδικας στις αντικειμενοστρεφείς γλώσσες προγραμματισμού θα έχει τα ίδια δεδομένα και κάποια ενέργεια που θα εκτελείται σε αυτά τα δεδομένα.

Class Account{
    int account_number;
    int account_balance;
public void showdata(){
    system.out.println(“Account Number”+account_number)
    System.out.println(“Account Balance”+ account_balance)
}
}

Αντικειμενοστραφής προγραμματισμός

Συνδυάζοντας δεδομένα και δράση, θα έχουμε πολλά πλεονεκτήματα έναντι του δομικού προγραμματισμού, π.

  • Αφαίρεση
  • Ενθυλάκωση
  • Κληρονομία
  • Πολυμορφισμός

Αναλύονται με περισσότερες λεπτομέρειες στα επόμενα σεμινάρια