Kapselung ist eines der vier grundlegenden objektorientierten Programmierkonzepte in Java. Die Hauptidee dahinter ist das Verbergen von Implementierungsdetails vor Benutzern. Mit anderen Worten: Bei der Kapselung werden Daten in einer einzigen Einheit zusammengefasst, um den Zugriff darauf von außen zu verhindern. Da die Daten vor den anderen Klassen verborgen sind, wird dieser Vorgang als Datenverstecken bezeichnet. Betrachten wir als Beispiel die Funktionsweise einer Glühbirne. Selbst wenn wir es verwenden, wissen wir nicht, ob es hinter der Glühbirne funktioniert. Im Fall von Java Encapsulation ist es jedoch möglich, mithilfe von Modifikatoren auf die Daten zuzugreifen. Schauen wir uns das im nächsten Abschnitt genauer an.
Kapselung funktioniert in Java von
Starten Sie Ihren kostenlosen Softwareentwicklungskurs
Webentwicklung, Programmiersprachen, Softwaretests und andere
Zum Beispiel erstellen wir eine Klasse „Mitarbeiter“. Die Variablen müssen wie unten gezeigt als privat festgelegt werden.
private String EmpName; private int EmpID; private int EmpSal;
Im Folgenden finden Sie die get-Methode und die set-Methode für die verschiedenen privaten Variablen in der Klasse Employee.
Code:
public int getEmpSal() { return EmpSal; }public String getEmpName() { return EmpName; } public int getEmpID() { return EmpID; } public void setEmpSal( int EmpSal) { this.EmpSal = EmpSal; } public void setEmpName(String EmpName) { this.EmpName = EmpName; } public void setEmpID( int EmpID) { this.EmpID = EmpID; }
Mit diesen Methoden ist es möglich, die Klasse schreibgeschützt oder schreibgeschützt zu machen, d. h. wir können diese Methoden bei Bedarf überspringen.
Im Folgenden sind einige der Vorteile der Kapselung aufgeführt.
Die Java-Bean-Klasse ist ein Beispiel für eine vollständig gekapselte Klasse, da alle Datenmitglieder in der Klasse privat sind.
Sehen wir uns ein Beispiel für die Kapselung mit Getter- und Setter-Methoden an. Erstellen Sie dazu zwei Klassen – eine mit der Primärmethode und die andere mit Get- und Set-Methoden.
Employee.java
Code:
//Java program for Encapsulation with both read and write public class Employee { //private variables which can be accessed by public methods of the class private String EmpName; private int EmpID; private int EmpSal; // get method to access the private integer variable EmpSal public int getEmpSal() { return EmpSal; } // get method to access the private string variable EmpName public String getEmpName() { return EmpName; } // get method to access the private integer variable EmpID public int getEmpID() { return EmpID; } // set method to access the private integer variable EmpSal public void setEmpSal( int EmpSal) { this.EmpSal = EmpSal; } // set method to access the private string variable EmpName public void setEmpName(String EmpName) { this.EmpName = EmpName; } // set method to access the private integer variable EmpID public void setEmpID( int EmpID) { this.EmpID = EmpID; } }
Code:
public class EmployeeEncaps { public static void main(String[] args) { Employee EmpObj= new Employee(); //object of the class Employee //passing the values to the methods using object EmpObj.setEmpName("Anna"); EmpObj.setEmpSal(30000); EmpObj.setEmpID(670311); // Printing values of the variables System.out.println("Employee's Name: " + EmpObj.getEmpName()); System.out.println("Employee's ID: " + EmpObj.getEmpID()); System.out.println("Employee's Salary: " + EmpObj.getEmpSal()); } }
Ausgabe:
Die Klasse Employee ist im obigen Programm gekapselt, da die Variablen privat sind. Es ist möglich, die Implementierung zu lesen und zu schreiben, da sie über Methoden verfügt und diese festlegt. Auf die privaten Variablen wie EmpName, EmpSal und EmpID wird mit diesen Methoden zugegriffen und durch Aufrufen der Methoden mithilfe des Objekts angezeigt.
Lassen Sie uns nun sehen, wie Encapsulation mit einer schreibgeschützten Klasse funktioniert.
Code:
//Java program for Encapsulation with read permission public class Employee { //private variables which can be accessed by public methods of the class private String EmpName = "Adam"; private int EmpID = 670388; private int EmpSal = 35000; // get method to access the private integer variable EmpSal public int getEmpSal() {return EmpSal; }// get method to access the private string variable EmpName public String getEmpName() { return EmpName; } // get method to access the private integer variable EmpID public int getEmpID() { return EmpID; } }
Code:
public class EmployeeEncaps { public static void main(String[] args) { Employee EmpObj= new Employee(); //object of the class Employee // Printing values of the variables System.out.println("Employee's Name: " + EmpObj.getEmpName()); System.out.println("Employee's ID: " + EmpObj.getEmpID()); System.out.println("Employee's Salary: " + EmpObj.getEmpSal()); } }
Ausgabe:
Ähnlich wie im ersten Beispiel verwenden wir auch private Variablen. Der Unterschied besteht darin, dass wir die Set-Methode nicht verwenden, um Werte für die privaten Variablen in der Klasse festzulegen. Stattdessen weisen wir den Wert direkt den Variablen zu.
Jetzt können wir zu einem reinen Schreibkurs übergehen.
Code:
//Java program for Encapsulation with write permission public class Employee { //private variables which can be accessed by public methods of the class private String EmpName; private int EmpID; private int EmpSal; // set method to access the private integer variable EmpSal public void setEmpSal( int EmpSal) { this.EmpSal = EmpSal; //for sample output System.out.println("Employee's Salary: " + EmpSal); } // set method to access the private string variable EmpName public void setEmpName(String EmpName) { this.EmpName = EmpName; //for sample output System.out.println("Employee's Name: " + EmpName); }// set method to access the private integer variable EmpID public void setEmpID( int EmpID) { this.EmpID = EmpID; //for sample output System.out.println("Employee's ID: " + EmpID); } }
Code:
public class EmployeeEncaps { public static void main(String[] args) { Employee EmpObj= new Employee(); //object of the class Employee //passing the values to the methods using object EmpObj.setEmpName("Iza"); EmpObj.setEmpID(670472); EmpObj.setEmpSal(48000); } }
Ausgabe:
Im obigen Beispiel verwenden wir nicht die get-Methode, um eine schreibgeschützte Klasse zu erreichen. d.h. die Variablen können hier nicht geändert oder abgerufen werden. Da es unmöglich ist, die Werte abzurufen, verwenden wir print innerhalb der Set-Methode für die Beispielausgabe.
Kapselung ist ein OOP-Konzept, bei dem Daten verpackt werden und alle Implementierungsdetails verborgen bleiben. Dies kann durch die Verwendung privater Variablen und Methoden wie Abrufen und Setzen für den Zugriff auf die Variablen erreicht werden. Zu den Hauptvorteilen der Kapselung gehören Flexibilität, Datenverbergung, einfache Tests und Wiederverwendbarkeit.
Das obige ist der detaillierte Inhalt vonKapselung in Java. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!