Industrielle Fertigung
Industrielles Internet der Dinge | Industrielle Materialien | Gerätewartung und Reparatur | Industrielle Programmierung |
home  MfgRobots >> Industrielle Fertigung >  >> Industrial programming >> Java

Kapselung in Java: Umfassender Leitfaden mit praktischem Beispiel

Was ist Kapselung in Java?

Kapselung ist einer der Kernpfeiler des objektorientierten Designs in Java. Sie bündelt Daten (Felder) und die Operationen, die diese Daten manipulieren (Methoden), in einer einzelnen, in sich geschlossenen Einheit – der Klasse. Durch das Verbergen des internen Zustands hinter einer wohldefinierten Schnittstelle schützt Kapselung Objekte vor unbeabsichtigter Beeinflussung und macht Code einfacher wartbar und testbar.

In diesem Tutorial lernen Sie:

Hier klicken, falls Video nicht zugänglich ist

Kapselung anhand eines Beispiels lernen

Zur Veranschaulichung der Kapselung betrachten wir eine einfache Bankkonto-Klasse mit Einzahlungs- und Kontostand-Anzeige-Funktionalität.

class Account {
    private int accountNumber;
    private int accountBalance;
    public void showData() {
        // Code zur Datenanzeige
    }
    public void deposit(int amount) {
        if (amount < 0) {
            // Fehler anzeigen
        } else {
            accountBalance = accountBalance + amount;
        }
    }
}

Stellen Sie sich vor, ein böswilliger Akteur hat Zugriff auf den Quellcode und versucht, eine negative Einzahlung von -100 zu injizieren. Es gibt zwei gängige Angriffsvektoren:

Ansatz 1: Direkte Modifikation des accountBalance-Felds. Da das Feld als private deklariert ist, ist es von außerhalb der Account-Klasse unzugänglich, was diesen Angriff verhindert.

Kapselung in Java: Umfassender Leitfaden mit praktischem Beispiel

Wie Sie sehen, erzwingt der private-Modifizierer Kapselung und schützt den internen Zustand.

Kapselung in Java: Umfassender Leitfaden mit praktischem Beispiel

Daher kann der Angreifer den Kontostand nicht direkt manipulieren.

Kapselung in Java: Umfassender Leitfaden mit praktischem Beispiel

Ansatz 2: Nutzung der öffentlichen deposit-Methode, um einen negativen Betrag hinzuzufügen. Die Methode enthält eine Validierungsprüfung, die jeden Betrag unter null zurückweist, was diesen Versuch ebenfalls vereitelt.

Kapselung in Java: Umfassender Leitfaden mit praktischem Beispiel

Somit stellt Kapselung sicher, dass nur legitime Operationen den Zustand des Objekts ändern können.

Kapselung in Java: Umfassender Leitfaden mit praktischem Beispiel

Die gesamte Klasse verhält sich wie eine versiegelte Kapsel – Daten sind verborgen, Interaktion erfolgt ausschließlich über wohldefinierte Nachrichten. Dies ist die Essenz der Kapselung.

Kapselung in Java: Umfassender Leitfaden mit praktischem Beispiel

Datenverbergung in Java

Datenverbergung ist die Praxis, direkten Zugriff auf Felder eines Objekts von außerhalb seiner definierenden Klasse einzuschränken. In Java erzwingt das private-Schlüsselwort diese Einschränkung, wodurch das Feld für alle anderen Klassen unsichtbar wird. Dies hält die interne Repräsentation undurchsichtig und erlaubt Entwicklern, sie zu modifizieren, ohne abhängigen Code zu brechen.

Manchmal ist ein weniger restriktives Zugriffslevel wie protected oder public für Vererbung oder Utility-Klassen erforderlich. Kapselung ermutigt jedoch zu private-Feldern gekoppelt mit kontrollierten Accessor-Methoden.

Getter- und Setter-Methoden in Java

Getter (Accessor) und Setter (Mutator) bieten eine kontrollierte Schnittstelle zum Lesen und Aktualisieren privater Felder. Sie ermöglichen Validierung, Logging oder Lazy Initialization, während sie Kapselung bewahren.

Beispiel:

class Account {
    private int accountNumber;
    private int accountBalance;
    // Accessor
    public int getBalance() {
        return this.accountBalance;
    }
    // Mutator
    public void setNumber(int num) {
        this.accountNumber = num;
    }
}

Hier gibt getBalance() den aktuellen Kontostand zurück, während setNumber() eine neue Kontonummer zuweist.

Abstraktion vs. Kapselung

Obwohl verwandt, dienen Abstraktion und Kapselung unterschiedlichen Zwecken:

Denken Sie an ein Smartphone: Die komplexe Schaltung ist hinter einer Touch-Oberfläche gekapselt, während Abstraktion High-Level-Funktionen wie Anrufen oder Texten bereitstellt.

Vorteile der Kapselung in Java

Java

  1. Java-Kapselung meistern: Praktischer Leitfaden zum Datenverbergen
  2. Java Type Casting meistern: Von Widening zu Narrowing und darüber hinaus
  3. Java String length() Methode: String-Länge ermitteln (Beispiel)
  4. Java String.charAt(): Syntax, Rückgabetyp, Exceptions und praktisches Beispiel
  5. Java String.contains() Methode: Substrings prüfen – praktische Beispiele
  6. Java String.endsWith(): String-Suffixe prüfen mit Beispielen
  7. Dateien in Java mit BufferedReader lesen – Praktischer Leitfaden mit Beispielen
  8. Insertion Sort Algorithmus in Java: Klares Beispiel & Schritt-für-Schritt-Anleitung
  9. Selection Sort in Java: Schritt-für-Schritt-Beispiel & Vollständiger Code
  10. Java Encapsulation erklärt: Sichere Datenkapselung & Kontrolle