Kapselung in Java-OOPs mit Beispiel


Was ist Kapselung in Java?

Kapselung in Java ist ein Mechanismus, um Variablen (Daten) und Methoden (Code) zu einer einzigen Einheit zusammenzufassen. Es ist der Prozess des Verbergens von Informationentails und Schutz der Daten und des Verhaltens des Objekts. Es ist eines der vier wichtigen OOP-Konzepte. Die Encapsulate-Klasse lässt sich leicht testen und eignet sich daher auch besser für Unit-Tests.

In diesem Tutorial lernen Sie-

Klicken Sie hier wenn das Video nicht zugänglich ist

Lernen Sie Kapselung anhand eines Beispiels

Um zu verstehen, was Kapselung im Detail ist, beachten Sie Folgendeswing Bankkontoklasse mit Einzahlungs- und Show-Saldo-Methoden

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;
    }
}

Angenommen, es ist einem Hacker gelungen, an den Code Ihres Bankkontos zu gelangen. Jetzt versucht er, den Betrag -100 auf zwei Arten auf Ihr Konto einzuzahlen. Sehen wir uns seine erste Methode oder Herangehensweise an.

Annäherung an 1: Er versucht, durch Manipulation des Codes einen ungültigen Betrag (z. B. -100) auf Ihr Bankkonto einzuzahlen.

Kapselung in Java

Nun stellt sich die Frage: Ist das möglich? Lassen Sie uns untersuchen.

Normalerweise wird eine Variable in einer Klasse wie unten gezeigt als „privat“ festgelegt. Der Zugriff ist nur mit den in der Klasse definierten Methoden möglich. Keine andere Klasse oder kein anderes Objekt kann darauf zugreifen.

Kapselung in Java

Wenn ein Datenelement privat ist, bedeutet dies, dass nur innerhalb derselben Klasse auf es zugegriffen werden kann. Keine externe Klasse kann auf private Datenelemente oder Variablen einer anderen Klasse zugreifen.

In unserem Fall kann der Hacker also keinen Betrag von -100 auf Ihr Konto einzahlen.

Kapselung in Java

Nähere dich 2: Der erste Ansatz des Hackers schlug fehl, den Betrag einzuzahlen. Als nächstes versucht er, mithilfe der Einzahlungsmethode einen Betrag von -100 einzuzahlen.

Kapselung in Java

Die Methodenimplementierung verfügt jedoch über eine Prüfung auf negative Werte. Der zweite Ansatz schlägt also ebenfalls fehl.

Kapselung in Java

Somit geben Sie Ihre Daten niemals an Dritte weiter. Das macht Ihre Anwendung sicher.

Kapselung in Java

Der gesamte Code kann als Kapsel betrachtet werden, und Sie können nur über die Nachrichten kommunizieren. Daher der Name Kapselung.

Datenverstecken in Java

Datenverstecken in Java versteckt die Variablen einer Klasse vor anderen Klassen. Der Zugriff kann nur über die Methode ihrer aktuellen Klasse erfolgen. Es verbirgt die Implementierung details von den Benutzern. Aber mehr als nur das Verstecken von Daten dient es der besseren Verwaltung oder Gruppierung zusammengehöriger Daten.

Um einen geringeren Kapselungsgrad in Java zu erreichen, können Sie Modifikatoren wie „protected“ oder „public“ verwenden. Mit der Kapselung können Entwickler einen Teil des Codes problemlos ändern, ohne dass sich dies auf andere auswirkt.

Getter und Setter in Java

Getter und Setter in Java sind zwei herkömmliche Methoden zum Abrufen und Aktualisieren von Werten einer Variablen. Sie werden hauptsächlich zum Erstellen, Ändern, Löschen und Anzeigen der Variablenwerte verwendet. Die Setter-Methode wird zum Aktualisieren von Werten und die Getter-Methode zum Lesen oder Abrufen der Werte verwendet. Sie werden auch als Accessor und Mutator bezeichnet.

Die folgendenwing Code ist ein Beispiel für Getter- und Setter-Methoden:

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;
    }
}

Im obigen Beispiel ist die Methode getBalance() eine Getter-Methode, die den Wert der Variablen account_balance liest, und die Methode setNumber() ist eine Setter-Methode, die den Wert für die Variable account_number festlegt oder aktualisiert.


Abstraktion vs. Kapselung

Kapselung wird oft missverstanden Abstraktion. Lass uns lernen-

  • Bei der Kapselung geht es mehr darum, „wie“ eine Funktionalität erreicht wird
  • Bei der Abstraktion geht es mehr darum, „Was“ eine Klasse tun kann.

Ein einfaches Beispiel, um diesen Unterschied zu verstehen, ist ein Mobiltelefon. Wo die complex Die Logik auf der Platine ist in einem Touchscreen gekapselt und die Schnittstelle wird bereitgestellt, um sie zu abstrahieren.

Vorteile der Kapselung in Java

  • Bei der Kapselung werden die Daten mit den zugehörigen Funktionen verknüpft. Hier bedeuten Funktionalitäten „Methoden“ und Daten „Variablen“.
  • Daher bewahren wir Variablen und Methoden an einem Ort auf. Dieser Ort ist „klasse“. Klasse ist die Basis für die Kapselung.
  • Mit Java Encapsulation können Sie kritische Datenelemente in Ihrem Code ausblenden (den Zugriff einschränken), was die Sicherheit erhöht
  • Wenn ein Datenelement, wie bereits erwähnt, als „privat“ deklariert ist, kann nur innerhalb derselben Klasse darauf zugegriffen werden. Keine externe Klasse kann auf Datenelemente (Variablen) einer anderen Klasse zugreifen.
  • Wenn Sie jedoch auf diese Variablen zugreifen müssen, müssen Sie diese verwenden öffentlicher „Getter“ und „Setter“ Methoden.