Java - Kapselung

Encapsulationist eines der vier grundlegenden OOP-Konzepte. Die anderen drei sind Vererbung, Polymorphismus und Abstraktion.

Die Kapselung in Java ist ein Mechanismus, bei dem die Daten (Variablen) und der Code, die auf die Daten (Methoden) einwirken, als eine Einheit zusammengefasst werden. Bei der Kapselung werden die Variablen einer Klasse vor anderen Klassen verborgen und können nur über die Methoden ihrer aktuellen Klasse aufgerufen werden. Daher ist es auch bekannt alsdata hiding.

Um die Kapselung in Java zu erreichen -

  • Deklarieren Sie die Variablen einer Klasse als privat.

  • Stellen Sie öffentliche Setter- und Getter-Methoden bereit, um die Variablenwerte zu ändern und anzuzeigen.

Beispiel

Das folgende Beispiel zeigt, wie die Kapselung in Java erreicht wird.

/* File name : EncapTest.java */
public class EncapTest {
   private String name;
   private String idNum;
   private int age;

   public int getAge() {
      return age;
   }

   public String getName() {
      return name;
   }

   public String getIdNum() {
      return idNum;
   }

   public void setAge( int newAge) {
      age = newAge;
   }

   public void setName(String newName) {
      name = newName;
   }

   public void setIdNum( String newId) {
      idNum = newId;
   }
}

Die öffentlichen Methoden setXXX () und getXXX () sind die Zugriffspunkte der Instanzvariablen der EncapTest-Klasse. Normalerweise werden diese Methoden als Getter und Setter bezeichnet. Daher sollte jede Klasse, die auf die Variablen zugreifen möchte, über diese Getter und Setter auf sie zugreifen.

Auf die Variablen der EncapTest-Klasse kann mit dem folgenden Programm zugegriffen werden:

/* File name : RunEncap.java */
public class RunEncap {

   public static void main(String args[]) {
      EncapTest encap = new EncapTest();
      encap.setName("James");
      encap.setAge(20);
      encap.setIdNum("12343ms");

      System.out.print("Name : " + encap.getName() + " Age : " + encap.getAge());
   }
}

Dies führt zu folgendem Ergebnis:

Ausgabe

Name : James Age : 20

Vorteile der Kapselung

  • Die Felder einer Klasse können schreibgeschützt oder schreibgeschützt sein.

  • Eine Klasse kann die vollständige Kontrolle darüber haben, was in ihren Feldern gespeichert ist.