Ενθυλάκωση σε Java

Σε τι είναι η ενθυλάκωση Java?

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

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

Μάθετε την ενθυλάκωση στο Java με Παράδειγμα

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

class Account {
    private int account_number;
    private int account_balance;

    public void show Data() {
        //code to show data 
    }

    public void deposit(int a) {
        if (a < 0) {
            //show error 
        } else
            account_balance = account_balance + a;
    }
}

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

Προσέγγιση 1: Προσπαθεί να καταθέσει ένα μη έγκυρο ποσό (ας πούμε -100) στον τραπεζικό σας λογαριασμό χειραγωγώντας τον κωδικό.

Ενθυλάκωση σε Java

Τώρα, το ερώτημα είναι - Είναι αυτό εφικτό? Ας ερευνήσουμε. Συνήθως, μια μεταβλητή σε μια κλάση ορίζεται ως "ιδιωτική" όπως φαίνεται παρακάτω. Μπορεί να προσπελαστεί μόνο με τις μεθόδους που ορίζονται στην κλάση. Καμία άλλη κλάση ή αντικείμενο δεν μπορεί να έχει πρόσβαση σε αυτά.

Ενθυλάκωση σε Java

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

Ενθυλάκωση σε Java

Προσέγγιση 2: Η πρώτη προσέγγιση του χάκερ απέτυχε να καταθέσει το ποσό. Στη συνέχεια, προσπαθεί να καταθέσει ένα ποσό -100 χρησιμοποιώντας τη μέθοδο «κατάθεσης».

Ενθυλάκωση σε Java

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

Ενθυλάκωση σε Java

Έτσι, δεν εκθέτετε ποτέ τα δεδομένα σας σε εξωτερικό μέρος. Κάτι που κάνει την εφαρμογή σας ασφαλή.

Ενθυλάκωση σε Java

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

Κρύβονται δεδομένα Java

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

Getter και Setter μπαίνουν Java

Getter και Setter μπαίνουν Java είναι δύο συμβατικές μέθοδοι που χρησιμοποιούνται για την ανάκτηση και την ενημέρωση των τιμών μιας μεταβλητής. Χρησιμοποιούνται κυρίως για τη δημιουργία, τροποποίηση, διαγραφή και προβολή των τιμών των μεταβλητών. Η μέθοδος ρυθμιστή χρησιμοποιείται για την ενημέρωση τιμών και η μέθοδος λήψης χρησιμοποιείται για την ανάγνωση ή την ανάκτηση των τιμών. Είναι επίσης γνωστά ως βοηθοί και μεταλλάκτες.

Ο παρακάτω κώδικας είναι ένα παράδειγμα μεθόδων λήψης και ρυθμιστή:

class Account{ 
private int account_number;
private int account_balance; 
    // getter method
	public int getBalance() {
        return this.account_balance;
    }
    // setter method
	public void setNumber(int num) {
        this.account_number = num;
    }
}

Στο παραπάνω παράδειγμα, η μέθοδος getBalance() είναι μέθοδος getter που διαβάζει την τιμή της μεταβλητής account_balance και η μέθοδος setNumber() είναι μέθοδος ρυθμιστή που ορίζει ή ενημερώνει την τιμή για τη μεταβλητή account_number.

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

Συχνά η ενθυλάκωση παρεξηγείται με Αφαίρεση. Ας διαβάσουμε-

  • Η ενθυλάκωση αφορά περισσότερο το "Πώς" να επιτύχετε μια λειτουργικότητα
  • Η αφαίρεση αφορά περισσότερο το «Τι» μπορεί να κάνει μια τάξη.

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

Πλεονεκτήματα της ενθυλάκωσης σε Java

  • Η ενθυλάκωση δεσμεύει τα δεδομένα με τις σχετικές λειτουργίες τους. Εδώ οι λειτουργίες σημαίνουν "μέθοδοι" και τα δεδομένα σημαίνει "μεταβλητές"
  • Διατηρούμε λοιπόν τις μεταβλητές και τις μεθόδους σε ένα μέρος. Αυτό το μέρος είναι "τάξη". Η τάξη είναι η βάση για την ενθυλάκωση.
  • Με Java Ενθυλάκωση, μπορείτε να αποκρύψετε (περιορίσετε την πρόσβαση) σε κρίσιμα μέλη δεδομένων στον κώδικά σας, γεγονός που βελτιώνει την ασφάλεια
  • Όπως συζητήσαμε νωρίτερα, εάν ένα μέλος δεδομένων δηλωθεί ως "ιδιωτικό", τότε μπορεί να προσπελαστεί μόνο εντός της ίδιας κλάσης. Καμία εξωτερική τάξη δεν μπορεί να έχει πρόσβαση σε μέλος δεδομένων (μεταβλητή) άλλης κλάσης.
  • Ωστόσο, εάν χρειάζεται να αποκτήσετε πρόσβαση σε αυτές τις μεταβλητές, πρέπει να χρησιμοποιήσετε δημόσιος "λήπτης" και "ρυθμιστής" μεθόδους.

Συνοψίστε αυτήν την ανάρτηση με: