Java Abstraction- Mastering OOP με Abstraction σε Java



Αυτό το άρθρο σχετικά με την Java Abstraction θα σας βοηθήσει να κατανοήσετε τη χρήση του Abstract class και Interface και πώς να το επιτύχετε χρησιμοποιώντας το Abstraction.

Στο προηγούμενο ιστολόγιο, μάθατε για στην Ιάβα. Τώρα σε αυτό το blog, θα κατανοήσουμε έναν ακόμη σημαντικό πυλώνα δηλαδή Java Abstraction της οποίας η κύρια λειτουργικότητα είναι η απόκρυψη των εσωτερικών λεπτομερειών εφαρμογής.

Θα καλύψω τα παρακάτω θέματα σε αυτό το άρθρο:





Μπορείτε επίσης να περάσετε από αυτήν την ηχογράφηση του όπου μπορείτε να κατανοήσετε τα θέματα με λεπτομερή τρόπο με παραδείγματα.

επιτραπέζια δεδομένα ανάμειξης αριστερή ένωση



Αφαίρεση στο OOP

Όταν μιλάμε γενικά για αφαίρεση, η γλώσσα λογισμικού είναι ένα παράδειγμα της Αφαίρεσης. Ας πάρουμε ένα παράδειγμα και γράψτε μια δήλωση ως

x = y + z

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



Τι είναι η αφαίρεση Java;

Η αφαίρεση δεν είναι παρά η ποιότητα της αντιμετώπισης ιδεών παρά των γεγονότων. Ασχολείται βασικά με την απόκρυψη των εσωτερικών λεπτομερειών και την εμφάνιση των βασικών πραγμάτων στον χρήστη.

Κλήση - Αφαίρεση Java -Edureka

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

μετασχηματισμούς στην πληροφορική με παράδειγμα

α) Περίληψη κλάσης

β) Διεπαφή

Ας κατανοήσουμε αυτές τις έννοιες με περισσότερες λεπτομέρειες.

Περίληψη τάξη

Η κλάση περίληψης περιέχει τη λέξη-κλειδί «αφηρημένη». Αλλά τι ακριβώς σημαίνει; Εάν κάνετε την κλάση αφηρημένη, δεν μπορεί να τεκμηριωθεί, δηλαδή δεν μπορείτε να δημιουργήσετε ένα αντικείμενο μιας αφηρημένης κλάσης. Επίσης, μια αφηρημένη τάξη μπορεί να περιέχει αφηρημένες καθώς και συγκεκριμένες μεθόδους.

Σημείωση: Μπορείτε να επιτύχετε αφαίρεση 0-100% χρησιμοποιώντας μια αφηρημένη τάξη.

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

Ας δούμε τη σύνταξη μιας αφηρημένης τάξης:

Abstract class Sports {// abstract class sports Abstract void jump () // αφηρημένη μέθοδος}

Διεπαφή

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

Βασικά, το Interface είναι μια ομάδα σχετικών μεθόδων με κενά σώματα. Ας κατανοήσουμε τις διεπαφές λαμβάνοντας ένα παράδειγμα μιας διεπαφής Shape με τις σχετικές μεθόδους.

δημόσιο σχήμα διεπαφής {public void draw () public double getArea ()}

Αυτές οι μέθοδοι πρέπει να υπάρχουν σε κάθε «σχήμα», σωστά; Αλλά η δουλειά τους θα είναι διαφορετική.

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

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

Δημόσια τάξη Circle υλοποιεί Shape {private double radius public Circle (double r) {this.radius = r} void draw () {System.out.println ('Drawing Circle')} public double getArea () {return Math.PI * this.radius * this.radius} public double getRadius () {return this.radius}} δημόσια τάξη Test {public static void main (String args []) {Shape c = new Circle (8) c.draw () Σύστημα. out.println ('Περιοχή =' + c.getArea ())}}

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

Παράδειγμα αφαίρεσης σε πραγματικό χρόνο στην Java

Ας υποθέσουμε ότι έχουμε το Sport ως διεπαφή. Εδώ, η εφαρμογή θα παρέχεται από μαθήματα που ονομάζονται 'Μπάντμιντον' και 'Ποδόσφαιρο'. Σε ένα πραγματικό σενάριο, ένας τελικός χρήστης δεν θα γνωρίζει την κλάση εφαρμογής. Ως εκ τούτου, ένα αντικείμενο της κλάσης εφαρμογής μπορεί να παρέχεται με την εργοστασιακή μέθοδο. Η εργοστασιακή μέθοδος μπορεί να χρησιμοποιηθεί για τη δημιουργία ενός αντικειμένου κλάσης υλοποίησης βάσει κάποιου κριτηρίου.
Ας εφαρμόσουμε το ίδιο και δημιουργήστε μια διεπαφή που ονομάζεται Sport.java.

public Interface Sport {void play ()} // Τώρα, θα δημιουργήσουμε μια τάξη με το όνομα «Badminton» δημόσια τάξη Το Badminton υλοποιεί το Sport {@Override public void play () {System.out.println ('Playing badminton')}} // Στη συνέχεια ας δημιουργήσουμε την τελευταία μας τάξη 'Ποδόσφαιρο' δημόσια τάξη Το ποδόσφαιρο εφαρμόζει το Sport {@Override public void play () {System.out.println ('Playing football')}

Το τελευταίο βήμα είναι να δημιουργήσετε μια κύρια τάξη με το όνομα 'SportInterface'.

public SportInterface {public static void main (String args []) {// ο κωδικός σας εδώ}}

Όταν εκτελείτε το παραπάνω πρόγραμμα, η έξοδος θα είναι όπως φαίνεται παρακάτω:

τι έχει σχέση στη java
Παίζοντας μπάντμιντον ------------------- Παίζοντας ποδόσφαιρο

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

Αφαίρεση έναντι ενθυλάκωσης

Αφαίρεση Ενθυλάκωση
Επιλύει το πρόβλημα σε επίπεδο σχεδίασηςΕπιλύει το πρόβλημα σε επίπεδο εφαρμογής
Χρησιμοποιείται για απόκρυψη ανεπιθύμητων δεδομένων και για την παροχή σχετικών αποτελεσμάτωνΕνθυλάκωση σημαίνει απόκρυψη του κώδικα και των δεδομένων σε μια ενιαία μονάδα για την προστασία δεδομένων από τον έξω κόσμο
Εξωτερική διάταξη - χρησιμοποιείται από την άποψη του σχεδιασμούΕσωτερική διάταξη - χρησιμοποιείται από την άποψη της εφαρμογής

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

Τώρα που έχετε καταλάβει 'Τι είναι η αφαίρεση Java', ρίξτε μια ματιά στο από την Edureka, μια αξιόπιστη διαδικτυακή εταιρεία εκμάθησης με δίκτυο περισσότερων από 250.000 ικανοποιημένων μαθητών σε όλο τον κόσμο. Το μάθημα εκπαίδευσης και πιστοποίησης Java J2EE και SOA της Edureka έχει σχεδιαστεί για φοιτητές και επαγγελματίες που θέλουν να γίνουν προγραμματιστές Java. Το μάθημα έχει σχεδιαστεί για να σας δώσει μια πρώτη αρχή στον προγραμματισμό Java και να σας εκπαιδεύσει τόσο για βασικές όσο και για προχωρημένες ιδέες Java μαζί με διάφορα πλαίσια Java όπως το Hibernate & Spring.

Έχετε μια ερώτηση για εμάς; Παρακαλώ αναφέρετέ το στην ενότητα σχολίων αυτού του ιστολογίου 'Java Abstraction' και θα επικοινωνήσουμε μαζί σας το συντομότερο δυνατό.