Verkapselung in Java
Was ist Kapselung in Java?
Verkapselung in Java ist ein Mechanismus, um Variablen (Daten) und Methoden (Code) zu einer einzigen Einheit zusammenzufassen. Dabei werden Informationsdetails ausgeblendet und Daten und Verhalten des Objekts geschützt. Dies ist eines der vier wichtigen OOP-Konzepte. Die Kapselungsklasse ist einfach zu testen und eignet sich daher auch besser für Unit-Tests.
Klicke . wenn das Video nicht zugänglich ist
Erfahren Sie mehr über Kapselung in Java mit Beispiel
Um zu verstehen, was Kapselung im Detail ist, betrachten Sie die folgende Bankkontoklasse mit Einzahlungs- und Saldoanzeigemethoden
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, einem Hacker ist es gelungen, Zugriff auf den Code Ihres Bankkontos zu erhalten. Nun versucht er, den Betrag von -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.
Nun stellt sich die Frage: Ist das möglich? Lassen Sie uns das untersuchen. Normalerweise wird eine Variable in einer Klasse als „privat“ festgelegt, wie unten gezeigt. Auf sie kann nur mit den in der Klasse definierten Methoden zugegriffen werden. Keine andere Klasse oder kein anderes Objekt kann auf sie zugreifen.
Wenn ein Datenelement privat ist, bedeutet dies, dass nur innerhalb derselben Klasse darauf zugegriffen werden kann. Keine externe Klasse kann auf private Datenelemente oder Variablen einer anderen Klasse zugreifen. In unserem Fall kann ein Hacker also keinen Betrag von -100 auf Ihr Konto einzahlen.
Nähere dich 2: Der erste Versuch des Hackers schlug fehl. Als nächstes versucht er, mit der Methode „Einzahlung“ einen Betrag von -100 einzuzahlen.
Die Methodenimplementierung verfügt jedoch über eine Prüfung auf negative Werte. Der zweite Ansatz schlägt also ebenfalls fehl.
Somit geben Sie Ihre Daten niemals an Dritte weiter. Das macht Ihre Anwendung sicher.
Man kann sich den gesamten Code als eine Kapsel vorstellen, und die Kommunikation erfolgt nur über die Nachrichten. Daher der Name Kapselung.
Daten verstecken in Java
Daten verstecken in Java versteckt die Variablen einer Klasse vor anderen Klassen. Sie können nur über die Methode ihrer aktuellen Klasse aufgerufen werden. Es verbirgt die Implementierungsdetails vor den Benutzern. Aber mehr als das Verstecken von Daten dient es der besseren Verwaltung oder Gruppierung verwandter Daten. Um einen geringeren Grad an Kapselung zu erreichen in Javakönnen Sie Modifikatoren wie „geschützt“ oder „öffentlich“ verwenden. Mit der Kapselung können Entwickler einen Teil des Codes einfach ändern, ohne andere zu beeinträchtigen.
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.
Der folgende 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 zum Verständnis dieses Unterschieds ist ein Mobiltelefon. Hier ist die komplexe Logik der Platine in einem Touchscreen gekapselt und die Schnittstelle dient zur Abstrahierung.
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 Durch die Kapselung können Sie kritische Datenelemente in Ihrem Code verbergen (den Zugriff einschränken), was die Sicherheit verbessert
- Wie bereits erwähnt, kann auf ein als „privat“ deklariertes Datenelement nur innerhalb derselben Klasse 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.






