Java-Kapselung


In objektorientierten Programmiermethoden bezeichnet die Kapselung (englisch: Encapsulation) eine Methode zum Verpacken und Verbergen der Implementierung einer abstrakten Funktionsschnittstelle.

Kapselung kann als Schutzbarriere betrachtet werden, die verhindert, dass auf den Code und die Daten der Klasse willkürlich durch von externen Klassen definierten Code zugegriffen wird.

Um auf den Code und die Daten der Klasse zuzugreifen, muss eine strikte Schnittstellenkontrolle durchlaufen werden.

Die Hauptfunktion der Kapselung besteht darin, dass wir unseren eigenen Implementierungscode ändern können, ohne die Programmsegmente ändern zu müssen, die unseren Code aufrufen.

Eine ordnungsgemäße Kapselung kann den Code leichter verständlich und wartbar machen und erhöht zudem die Codesicherheit.

Vorteile der Kapselung

  • 1. Gute Kapselung kann die Kopplung reduzieren.

  • 2. Die interne Struktur der Klasse kann frei geändert werden.

  • 3. Mitgliedsvariablen können präziser gesteuert werden.

  • 4. Informationen und Implementierungsdetails verbergen.


Schritte zur Erreichung der Kapselung in Java

1. Ändern Sie die Sichtbarkeit von Attributen, um den Zugriff auf Attribute einzuschränken (in der Regel auf private beschränkt), zum Beispiel:

public class Person { private String name; private int age; }

In diesem Code wird dasnameundageAttribut auf private gesetzt; nur diese Klasse kann darauf zugreifen, während andere Klassen dies nicht können, wodurch die Informationen verborgen werden.

2. Für jedes Wertattribut stellen Sie öffentliche Methoden für den externen Zugriff bereit, das heißt, erstellen Sie ein Paar Getter- und Setter-Methoden für den Zugriff auf private Attribute, zum Beispiel:

public class Person{ private String name; private int age; ​ public int getAge(){ return age; } ​ public String getName(){ return name; } ​ public void setAge(int age){ this.age = age; } ​ public void setName(String name){ this.name = name; } }

Mitthiswird das Schlüsselwort verwendet, um den Namenskonflikt zwischen der Instanzvariable (private String name) und der lokalen Variable (der Variable name in setName(String name)) aufzulösen.


Beispiel

Sehen wir uns ein Beispiel einer Java-Kapselungsklasse an:

Code der Datei EncapTest.java:

/*Dateiname: 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; } }

Im obigen Beispiel sind öffentliche Methoden der Einstiegspunkt für externe Klassen, um auf die Mitgliedsvariablen der Klasse zuzugreifen.

Normalerweise werden diese Methoden Getter- und Setter-Methoden genannt.

Daher muss jede Klasse, die auf die privaten Mitgliedsvariablen der Klasse zugreifen möchte, diese Getter- und Setter-Methoden verwenden.

Das folgende Beispiel veranschaulicht, wie auf die Variablen der Klasse EncapTest zugegriffen wird:

Code der Datei RunEncap.java:

/*Dateiname: 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()+ " Alter : "+ encap.getAge()); } }

Das Ergebnis des Kompilierens und Ausführens des obigen Codes ist wie folgt:

Name : James Age : 20
Andere Erweiterungen