Java-Kapselung

In diesem Tutorial lernen Sie anhand von Beispielen die Kapselung und das Verstecken von Daten in Java kennen.

Java-Kapselung

Die Kapselung ist eines der Hauptmerkmale der objektorientierten Programmierung. Kapselung bezieht sich auf die Bündelung von Feldern und Methoden innerhalb einer einzelnen Klasse.

Es verhindert, dass äußere Klassen auf Felder und Methoden einer Klasse zugreifen und diese ändern. Dies hilft auch dabei, Daten auszublenden .

Beispiel 1: Java-Kapselung

 class Area ( // fields to calculate area int length; int breadth; // constructor to initialize values Area(int length, int breadth) ( this.length = length; this.breadth = breadth; ) // method to calculate area public void getArea() ( int area = length * breadth; System.out.println("Area: " + area); ) ) class Main ( public static void main(String() args) ( // create object of Area // pass value of length and breadth Area rectangle = new Area(5, 6); rectangle.getArea(); ) )

Ausgabe

 Fläche: 30

Im obigen Beispiel haben wir eine Klasse mit dem Namen Area erstellt. Der Hauptzweck dieser Klasse ist die Berechnung der Fläche.

Um eine Fläche zu berechnen, benötigen wir zwei Variablen: Länge und Breite sowie eine Methode : getArea(). Daher haben wir diese Felder und Methoden in einer einzigen Klasse gebündelt.

Hier kann auch von anderen Klassen auf die Felder und Methoden zugegriffen werden. Daher sind dies keine versteckten Daten .

Dies ist nur eine Kapselung . Wir halten nur ähnliche Codes zusammen.

Hinweis : Die Kapselung wird häufig als Verstecken von Daten betrachtet, aber das stimmt nicht ganz.

Kapselung bezieht sich auf die Bündelung verwandter Felder und Methoden. Dies kann verwendet werden, um das Ausblenden von Daten zu erreichen. Die Kapselung an sich ist kein Verstecken von Daten.

Warum Verkapselung?

  • In Java hilft uns die Kapselung, verwandte Felder und Methoden zusammenzuhalten, wodurch unser Code sauberer und einfacher zu lesen ist.
  • Es hilft, die Werte unserer Datenfelder zu kontrollieren. Beispielsweise,
     class Person ( private int age; public void setAge(int age) ( if (age>= 0) ( this.age = age; ) ) )

    Hier machen wir die Altersvariable privateund wenden Logik innerhalb der setAge()Methode an. Jetzt kann das Alter nicht negativ sein.
  • Die Getter- und Setter-Methoden bieten schreibgeschützten oder schreibgeschützten Zugriff auf unsere Klassenfelder. Beispielsweise,
     getName() // provides read-only access setName() // provides write-only access
  • Es hilft, Komponenten eines Systems zu entkoppeln. Zum Beispiel können wir Code in mehrere Bundles kapseln.
    Diese entkoppelten Komponenten (Bundle) können unabhängig und gleichzeitig entwickelt, getestet und debuggt werden. Änderungen an einer bestimmten Komponente haben keine Auswirkungen auf andere Komponenten.
  • Wir können das Verstecken von Daten auch durch Kapselung erreichen. Wenn wir im obigen Beispiel die Variable für Länge und Breite in privat ändern, ist der Zugriff auf diese Felder eingeschränkt.
    Und sie werden vor äußeren Klassen verborgen gehalten. Dies wird als Datenverstecken bezeichnet .

Ausblenden von Daten

Das Ausblenden von Daten ist eine Möglichkeit, den Zugriff unserer Datenmitglieder einzuschränken, indem die Implementierungsdetails ausgeblendet werden. Die Kapselung bietet auch eine Möglichkeit zum Ausblenden von Daten.

Wir können Zugriffsmodifikatoren verwenden, um das Ausblenden von Daten zu erreichen. Beispielsweise,

Beispiel 2: Ausblenden von Daten mit dem privaten Bezeichner

 class Person ( // private field private int age; // getter method public int getAge() ( return age; ) // setter method public void setAge(int age) ( this.age = age; ) ) class Main ( public static void main(String() args) ( // create an object of Person Person p1 = new Person(); // change age using setter p1.setAge(24); // access age using getter System.out.println("My age is " + p1.getAge()); ) )

Ausgabe

 Ich bin 24 Jahre alt

Im obigen Beispiel haben wir ein privateFeldalter. Da dies der privateFall ist , kann nicht von außerhalb der Klasse darauf zugegriffen werden.

Um auf das Alter zugreifen zu können, haben wir publicMethoden verwendet: getAge()und setAge(). Diese Methoden werden als Getter- und Setter-Methoden bezeichnet.

Durch die Privatisierung des Alters konnten wir den unbefugten Zugriff von außerhalb der Klasse einschränken. Dies ist das Verstecken von Daten .

Wenn wir versuchen, von der Hauptklasse aus auf das Altersfeld zuzugreifen, wird eine Fehlermeldung angezeigt.

 // error: age has private access in Person p1.age = 24;

Interessante Beiträge...