Introduction sur l'encapsulation en Java

L'encapsulation est l'un des quatre concepts de base de programmation orientée objet en Java. L'idée principale derrière cela est de cacher les détails de l'implémentation aux utilisateurs. En d'autres termes, l'encapsulation est le regroupement des données dans une seule unité afin d'empêcher leur accès depuis le monde extérieur. Étant donné que les données sont masquées des autres classes, ce processus est également appelé masquage des données. Prenons l'exemple du fonctionnement d'une ampoule. Nous ne connaissons pas le fonctionnement réel derrière l'ampoule même si nous l'utilisons. Mais dans le cas de l'encapsulation Java, il est possible d'accéder aux données à l'aide de modificateurs. Examinons-le dans la section suivante.

Comment fonctionne l'encapsulation en java?

L'encapsulation fonctionne en Java par

  • Déclarer les attributs ou variables de la classe comme privés

Par exemple, nous créons une classe Employee. Les variables doivent être définies comme privées, comme indiqué ci-dessous.

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

  • Création de méthodes publiques en classe afin d'obtenir et de définir les attributs ou les variables.

Voici la méthode get et la méthode set pour les différentes variables privées de la classe 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;
)

En utilisant ces méthodes, il est possible de rendre la classe en écriture seule ou en lecture seule, c'est-à-dire que nous pouvons ignorer ces méthodes si nécessaire.

Voici quelques-uns des avantages de l'encapsulation.

  • Simplicité d'application
  • Possibilité de réutiliser ou de modifier le code en fonction des exigences
  • Limite l'accessibilité des données
  • Facilité dans les tests unitaires car le code est encapsulé

La classe Java Bean est l'un des exemples de la classe entièrement encapsulée car tous les membres de données de la classe sont privés.

Exemples d'encapsulation Java

Voyons un exemple d'encapsulation avec les méthodes getter et setter. Pour cela, créez 2 classes, l'une avec la méthode principale et l'autre avec les méthodes d'obtention et de définition.

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

Production:

Dans le programme ci-dessus, la classe Employee est encapsulée car les variables sont privées. Il est possible de lire et d'écrire l'implémentation car elle possède et définit des méthodes. Les variables privées telles que EmpName, EmpSal, EmpID sont accessibles à l'aide de ces méthodes et affichées en appelant les méthodes à l'aide de l'objet.

Voyons maintenant comment fonctionne l'encapsulation avec la classe en lecture seule.

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

Production:

Semblable au premier exemple, ici aussi nous utilisons des variables privées. La différence est que nous n'utilisons pas la méthode set pour définir des valeurs pour les variables privées de la classe. Au lieu de cela, nous attribuons directement la valeur aux variables.

Maintenant, nous pouvons passer à l'écriture de classe uniquement.

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

Production:

Dans l'exemple ci-dessus, nous n'utilisons pas la méthode get pour obtenir une classe en écriture seule. c'est-à-dire que les variables ne peuvent pas être modifiées ou récupérées ici. Puisqu'il n'est pas possible d'obtenir les valeurs, nous utilisons print dans la méthode set pour un exemple de sortie.

Conclusion

L'encapsulation est un concept de POO où les données seront enveloppées en cachant tous les détails de l'implémentation. Cela peut être réalisé en utilisant des variables privées et des méthodes telles que get, définies pour accéder aux variables. Les principaux avantages de l'encapsulation incluent la flexibilité, le masquage des données, la facilité des tests et la réutilisabilité .

Articles recommandés

Cela a été un guide pour l'encapsulation en Java. Nous discutons ici comment fonctionne l'encapsulation, des exemples d'encapsulation Java avec des codes et des sorties. Vous pouvez également parcourir nos articles pour en savoir plus-

  1. Destructeur en Java
  2. Disposition en Java
  3. Meilleurs compilateurs Java
  4. Guide d'encapsulation en C ++
  5. Pourquoi avons-nous besoin de l'encapsulation en C?
  6. Présentation de l'encapsulation en JavaScript