Java -Tutorials

Java-HOME Java-Einführung Java-Erste Schritte Java-Syntax Java-Kommentare Java-Variablen Java-Datentypen Java-Type-Casting Java-Operatoren Java-Strings Java-Mathematik Java-Booleans Java Wenn ... Sonst Java-Schalter Java-While-Schleife Java-For-Schleife Java Break/Continue Java-Arrays

Java-Methoden

Java-Methoden Java-Methodenparameter Überladen von Java-Methoden Java-Bereich Java-Rekursion

Java-Klassen

Java-OOP Java-Klassen/Objekte Attribute der Java-Klasse Java-Klassenmethoden Java-Konstruktoren Java-Modifikatoren Java-Kapselung Java-Pakete / API Java-Vererbung Java-Polymorphismus Innere Java-Klassen Java-Abstraktion Java-Schnittstelle Java-Enumerationen Java-Benutzereingabe Java-Datum Java-ArrayList Java LinkedList Java-HashMap Java-HashSet Java-Iterator Java-Wrapper-Klassen Java-Ausnahmen Java-RegEx Java-Threads Java-Lambda

Umgang mit Java-Dateien

Java-Dateien Java-Dateien erstellen/schreiben Java-Dateien lesen Java-Dateien löschen

Java-How-To

Fügen Sie zwei Zahlen hinzu

Java-Referenz

Java-Schlüsselwörter Java-String-Methoden Java-Mathematikmethoden

Java-Beispiele

Java-Beispiele Java-Compiler Java-Übungen Java Quiz Java-Zertifikat


Java -Kapselung


Verkapselung

Die Bedeutung von Encapsulation besteht darin, sicherzustellen, dass "sensible" Daten vor Benutzern verborgen sind. Um dies zu erreichen, müssen Sie:

  • deklarieren Sie Klassenvariablen/Attribute als private
  • Stellen Sie öffentliche Get- und Set-private Methoden bereit, um auf den Wert einer Variablen zuzugreifen und ihn zu aktualisieren

Holen und setzen

Sie haben aus dem vorherigen Kapitel gelernt, dass privateauf Variablen nur innerhalb derselben Klasse zugegriffen werden kann (eine Klasse außerhalb hat keinen Zugriff darauf). Es ist jedoch möglich, auf sie zuzugreifen, wenn wir öffentliche Get- und Set- Methoden bereitstellen.

Die getMethode gibt den Variablenwert zurück, und die setMethode legt den Wert fest.

Die Syntax für beide ist, dass sie mit entweder getoder beginnen set, gefolgt vom Namen der Variablen, wobei der erste Buchstabe in Großbuchstaben geschrieben ist:

Beispiel

public class Person {
  private String name; // private = restricted access

  // Getter
  public String getName() {
    return name;
  }

  // Setter
  public void setName(String newName) {
    this.name = newName;
  }
}

Beispiel erklärt

Die getMethode gibt den Wert der Variablen zurück name.

Die setMethode nimmt einen Parameter ( newName) und weist ihn der nameVariablen zu. Das thisSchlüsselwort wird verwendet, um auf das aktuelle Objekt zu verweisen.

Da die nameVariable jedoch als deklariert ist private, können wir von außerhalb dieser Klasse nicht darauf zugreifen:

Beispiel

public class Main {
  public static void main(String[] args) {
    Person myObj = new Person();
    myObj.name = "John";  // error
    System.out.println(myObj.name); // error 
  }
}

Wenn die Variable als deklariert publicwurde, würden wir die folgende Ausgabe erwarten:

John

Wenn wir jedoch versuchen, auf eine privateVariable zuzugreifen, erhalten wir eine Fehlermeldung:

MyClass.java:4: error: name has private access in Person
    myObj.name = "John";
         ^
MyClass.java:5: error: name has private access in Person
    System.out.println(myObj.name);
                  ^
2 errors

Stattdessen verwenden wir die Methoden getName()und setName(), um auf die Variable zuzugreifen und sie zu aktualisieren:

Beispiel

public class Main {
  public static void main(String[] args) {
    Person myObj = new Person();
    myObj.setName("John"); // Set the value of the name variable to "John"
    System.out.println(myObj.getName());
  }
}

// Outputs "John"


Warum Kapselung?

  • Bessere Kontrolle über Klassenattribute und Methoden
  • Klassenattribute können schreibgeschützt (wenn Sie nur die getMethode verwenden) oder schreibgeschützt (wenn Sie nur die setMethode verwenden) gemacht werden.
  • Flexibel: Der Programmierer kann einen Teil des Codes ändern, ohne andere Teile zu beeinflussen
  • Erhöhte Datensicherheit