Encapsulation σε Java - Πώς να κυριαρχήσετε OOPs με Encapsulation;



Αυτό το άρθρο σχετικά με το Encapsulation in Java θα σας βοηθήσει να κατανοήσετε τις βασικές έννοιες της απόκρυψης λεπτομερειών εφαρμογής μαζί με διάφορα απλά παραδείγματα.

Ο Αντικειμενοστρεφής Προγραμματισμός ή πιο γνωστός ως OOPs είναι ένας από τους σημαντικότερους πυλώνες της Java που έχει αξιοποιήσει τη δύναμη και την ευκολία χρήσης του. Για να γίνετε επαγγελματίας προγραμματιστής Java, πρέπει να έχετε έναν άψογο έλεγχο των διαφόρων σαν , Αφαίρεση , Ενθυλάκωση και Πολυμορφισμός. Μέσω του μέσου αυτού του άρθρου, θα σας δώσω μια πλήρη εικόνα για μια από τις πιο σημαντικές έννοιες των OOPs, δηλ. Encapsulation στην Java και πώς επιτυγχάνεται.

Ακολουθούν τα θέματα, θα συζητήσω σε αυτό το άρθρο:





διαφορά μεταξύ bigdata και hadoop

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



Εισαγωγή στην ενθυλάκωση

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

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



Ενθυλάκωση - Ενθυλάκωση σε Java-EdurekaΗ ενθυλάκωση σε Java μπορεί να επιτευχθεί με:

  • Δήλωση των μεταβλητών μιας κλάσης ως ιδιωτικών.
  • Παροχή δημόσιων ρυθμιστών και μεθόδων λήψης για την τροποποίηση και προβολή των τιμών των μεταβλητών.

Τώρα, ας δούμε τον κώδικα για να κατανοήσουμε καλύτερα την ενθυλάκωση:

δημόσια τάξη Μαθητής {private String name public String getName () {return name} public void setName (String name) {this.name = name}} class Test {public static void main (String [] args) {Student s = new Student () s.setName ('Harry Potter') System.out.println (s.getName ())}}

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

Ας δούμε ένα ακόμη παράδειγμα και κατανοήστε σε βάθος το Encapsulation. Σε αυτό το παράδειγμα, η κατηγορία αυτοκινήτου έχει δύο πεδία - το όνομα και το topSpeed. Εδώ, και τα δύο δηλώνονται ως ιδιωτικά, πράγμα που σημαίνει ότι δεν είναι προσβάσιμα απευθείας εκτός της τάξης. Έχουμε κάποιες μεθόδους λήψης και ρύθμισης, όπως getName, setName, setTopSpeed ​​κ.λπ., και δηλώνονται ως δημόσιες. Αυτές οι μέθοδοι εκτίθενται σε 'εξωτερικούς' και μπορούν να χρησιμοποιηθούν για την αλλαγή και ανάκτηση δεδομένων από το αντικείμενο αυτοκινήτου. Έχουμε μία μέθοδο για να ορίσουμε την τελική ταχύτητα του οχήματος και δύο μεθόδους λήψης για να ανακτήσουμε τη μέγιστη τιμή ταχύτητας είτε σε MPH είτε σε KMHt. Βασικά, αυτό είναι που κάνει η ενθυλάκωση - κρύβει την εφαρμογή και μας δίνει τις αξίες που θέλουμε. Τώρα, ας δούμε τον παρακάτω κώδικα.

πακέτο Edureka δημόσια τάξη Αυτοκίνητο {private String name private double topSpeed ​​public Car () {} public String getName () {return name} public void setName (String name) {this.name = name} public void setTopSpeed ​​(double speedMPH) {topSpeed = speedMPH} δημόσιο διπλό getTopSpeedMPH () {return topSpeed} δημόσιο διπλό getTopSpeedKMH () {return topSpeed ​​* 1.609344}}

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

περάστε από την τιμή και περάστε από το java αναφοράς
πακέτο Edureka δημόσια τάξη Παράδειγμα {public static void main (String args []) Car car = new Car () car.setName ('Mustang GT 4.8-liter V8') car.setTopSpeed ​​(201) System.out.println (car. getName () + «η κορυφαία ταχύτητα στο MPH είναι» + car.getTopSpeedMPH ()) System.out.println (car.getName () + «η κορυφαία ταχύτητα στο KMH είναι» + car.getTopSpeedKMH ())

μικρόo, έτσι μπορεί να επιτευχθεί το Encapsulation στην Java. Τώρα, ας προχωρήσουμε περαιτέρω και να δούμε γιατί χρειαζόμαστε το Encapsulation.

Γιατί χρειαζόμαστε Encapsulation στην Java;

Η ενθυλάκωση είναι απαραίτητη στην Java επειδή:

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

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

class Student {int id String name} δημόσια τάξη Demo {public static void main (String [] args) {Student s = new Student () s.id = 0 s.name = 's.name = null}}

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

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

Οφέλη της ενθυλάκωσης

    • Απόκρυψη δεδομένων: Εδώ, ένας χρήστης δεν θα έχει ιδέα για την εσωτερική εφαρμογή της τάξης. Ακόμη και ο χρήστης δεν θα γνωρίζει πώς η κλάση αποθηκεύει τιμές στις μεταβλητές. Θα γνωρίζει μόνο ότι μεταβιβάζουμε τις τιμές σε μια μέθοδο ρύθμισης και ότι οι μεταβλητές αρχικοποιούνται με αυτήν την τιμή.
    • Αυξημένη ευελιξία: Εδώ, μπορούμε να κάνουμε τις μεταβλητές της τάξης ως μόνο για ανάγνωση ή μόνο για εγγραφή ανάλογα με τις απαιτήσεις μας. Σε περίπτωση που θέλετε να κάνετε τις μεταβλητές ως μόνο για ανάγνωση, τότε πρέπει να παραλείψουμε τις μεθόδους ρύθμισης όπως το setName (),setAge() κ.λπ. ή εάν θέλουμε να κάνουμε τις μεταβλητές ως μόνο εγγραφή, τότε πρέπει να παραλείψουμε τις μεθόδους λήψης όπως getName (), getAge () κ.λπ. από το παραπάνω πρόγραμμα.
    • Επαναχρησιμοποίηση: Βελτιώνει επίσης την επαναχρησιμοποίηση και εύκολο στην αλλαγή με νέες απαιτήσεις.

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

μετατροπή δυαδικού σε ακέραιο java

Ένα παράδειγμα εγκλεισμού σε πραγματικό χρόνο

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

δημόσια κλάση τηλεόρασης {ιδιωτικό διπλό πλάτος ιδιωτικό διπλό ύψος ιδιωτικό διπλό Screensize ιδιωτικό int maxVolume print int volume ιδιωτική boolean power δημόσια τηλεόραση (διπλό πλάτος, διπλό ύψος, διπλή οθόνη μέγεθος) (int κανάλι) {switch (channel) {case1: return 34.56 case2: return 54.89 case3: return 73.89 case1: return 94.98} return 0} public int μείωσηVolume () {if (0volume) volume ++ return volume}} class class {public static void main (String args []) {Television t = new Television (11.5,7,9) t.powerSwitch () t.channelTuning (2) t.decreaseVolume () t.increaseVolume () τηλεόραση. // Το σφάλμα ρίχνει καθώς η μεταβλητή είναι ιδιωτική και δεν είναι δυνατή η πρόσβαση εκτός της κλάσης}}

Στο παραπάνω παράδειγμα, έχω δηλώσει όλες τις μεταβλητές ως ιδιωτικές και μεθόδους, κατασκευαστές και τάξη ως δημόσιες. Εδώ, οι κατασκευαστές, οι μέθοδοι μπορούν να προσεγγιστούν εκτός της τάξης. Όταν δημιουργώένα αντικείμενοτης κλάσης Τηλεόρασης, μπορεί να έχει πρόσβαση στις μεθόδους και τους κατασκευαστές που υπάρχουν στην τάξη, ενώ οι μεταβλητές που δηλώνονται με τον ιδιωτικό τροποποιητή πρόσβασης είναι κρυφές. Γι 'αυτό όταν προσπαθείτε να αποκτήσετε πρόσβαση μεταβλητή πλάτους στο παραπάνω παράδειγμα, ρίχνειένα λάθος. Έτσι κρύβονται οι λεπτομέρειες εσωτερικής εφαρμογής από τις άλλες κατηγορίες. Έτσι επιτυγχάνεται το Encapsulation στην Java.

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

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

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