Introductie over inkapseling in Java

Encapsulation is een van de vier basisobjecten voor objectgeoriënteerd programmeren in Java. Het belangrijkste idee hierachter is het verbergen van implementatiedetails voor gebruikers. Met andere woorden, inkapseling is het inpakken van gegevens in een enkele eenheid om toegang tot de buitenwereld te voorkomen. Omdat de gegevens verborgen zijn voor de andere klassen, wordt dit proces ook wel Data-hiding genoemd. Laten we de werking van een lamp als voorbeeld beschouwen. We weten niet hoe het werkt achter de lamp, zelfs als we deze gebruiken. Maar in het geval van Java Encapsulation is het mogelijk om toegang te krijgen tot de gegevens met behulp van modifiers. Laten we er in de volgende sectie naar kijken.

Hoe werkt inkapseling in Java?

Inkapseling werkt in Java door

  • De attributen of variabelen in de klasse privé verklaren

We maken bijvoorbeeld een klasse-medewerker. De variabelen moeten als privé worden ingesteld, zoals hieronder wordt getoond.

private String EmpName;
private int EmpID;
private int EmpSal;

  • Openbare methoden maken in de klas om de attributen of variabelen te krijgen en in te stellen.

Hierna volgen de methode get en set voor de verschillende privévariabelen in de klasse Werknemer.

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;
)

Met behulp van deze methoden is het mogelijk om de klasse alleen-schrijven of alleen-lezen te maken, dwz we kunnen deze methoden overslaan als dat nodig is.

Hier volgen enkele van de voordelen van inkapseling.

  • Eenvoud in toepassing
  • Mogelijkheid om de code opnieuw te gebruiken of te wijzigen op basis van de vereisten
  • Beperkt de toegankelijkheid van gegevens
  • Gemak bij het testen van eenheden terwijl de code is ingekapseld

Java Bean Class is een van de voorbeelden voor de volledig ingekapselde klasse omdat alle gegevensleden in de klasse privé zijn.

Voorbeelden van Java Encapsulation

Laten we een voorbeeld van inkapseling zien met zowel getter- als setter-methoden. Maak daarvoor 2 klassen - één met hoofdmethode en andere met ophalen en instellen van methoden.

voorbeeld 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());
)
)

Output:

In het bovenstaande programma is de klasse Medewerker ingekapseld omdat de variabelen privé zijn. Het is mogelijk om de implementatie te lezen en te schrijven omdat deze methoden heeft gekregen en ingesteld. De privévariabelen zoals EmpName, EmpSal, EmpID worden met deze methoden benaderd en weergegeven door de methoden met het object aan te roepen.

Laten we nu eens kijken hoe Encapsulation werkt met de klasse Alleen-lezen.

Voorbeeld 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());
)
)

Output:

Net als in het eerste voorbeeld gebruiken we hier ook privévariabelen. Het verschil is dat we de methode set niet gebruiken om waarden in te stellen voor de privévariabelen in de klasse. In plaats daarvan wijzen we de waarde rechtstreeks toe aan de variabelen.

Nu kunnen we verder gaan met alleen de klas te schrijven.

Voorbeeld 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);
)
)

Output:

In het bovenstaande voorbeeld gebruiken we de methode get niet om alleen de klasse write te bereiken. dat wil zeggen dat de variabelen hier niet kunnen worden gewijzigd of opgehaald. Omdat het niet mogelijk is om de waarden te krijgen, gebruiken we print binnen de ingestelde methode voor voorbeelduitvoer.

Conclusie

Inkapseling is een OOP-concept waarbij gegevens worden ingepakt en alle implementatiedetails worden verborgen. Dit kan worden bereikt met behulp van privévariabelen en methoden zoals ophalen, instellen om toegang te krijgen tot de variabelen. De belangrijkste voordelen van inkapseling zijn flexibiliteit, het verbergen van gegevens, het gemak van testen en herbruikbaarheid .

Aanbevolen artikelen

Dit is een gids voor inkapseling in Java. Hier bespreken we hoe encapsulation werkt, voorbeelden van Java Encapsulation met codes en uitvoer. U kunt ook door onze gegeven artikelen gaan voor meer informatie-

  1. Destructor in Java
  2. Indeling in Java
  3. Beste Java-compilers
  4. Gids voor inkapseling in C ++
  5. Waarom hebben we inkapseling in C nodig?
  6. Overzicht van inkapseling in JavaScript