Heim  >  Artikel  >  Java  >  Kapselung in Java

Kapselung in Java

王林
王林Original
2024-08-30 15:59:54911Durchsuche

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.

Wie funktioniert Kapselung in Java?

Kapselung funktioniert in Java von

Starten Sie Ihren kostenlosen Softwareentwicklungskurs

Webentwicklung, Programmiersprachen, Softwaretests und andere

  • Attribute oder Variablen in der Klasse als privat deklarieren

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;
  • Erstellen öffentlicher Methoden in der Klasse, um die Attribute oder Variablen abzurufen und festzulegen.

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.

Vorteile der Kapselung in Java

Im Folgenden sind einige der Vorteile der Kapselung aufgeführt.

  • Einfachheit in der Anwendung
  • Möglichkeit, den Code je nach Anforderungen wiederzuverwenden oder zu ändern
  • Schränkt den Zugriff auf Daten ein
  • Einfacher Unit-Test, da der Code gekapselt ist

Die Java-Bean-Klasse ist ein Beispiel für eine vollständig gekapselte Klasse, da alle Datenmitglieder in der Klasse privat sind.

Beispiele für Java-Kapselung

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.

Beispiel #1

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;
}
}
  • EmployeeEncaps.java

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:

Kapselung in Java

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.

Beispiel #2

  • Employee.java

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;
}
}
  • EmployeeEncaps.java

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:

Kapselung in Java

Ä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.

Beispiel #3

  • Employee.java

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);
}
}
  • EmployeeEncaps.java

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:

Kapselung in Java

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.

Fazit

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!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:Bitmanipulation in JavaNächster Artikel:Bitmanipulation in Java