Maison > Java > javaDidacticiel > Encapsulation en Java

Encapsulation en Java

王林
Libérer: 2024-08-30 15:59:54
original
1049 Les gens l'ont consulté

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 mise en œuvre aux utilisateurs. En d’autres termes, l’encapsulation regroupe les données dans une seule unité pour en empêcher l’accès depuis le monde extérieur. Étant donné que les données sont masquées aux autres classes, ce processus est appelé masquage de données. Prenons l'exemple du fonctionnement d'une ampoule. Même si nous l’utilisons, nous ne savons pas si elle fonctionne derrière l’ampoule.  Mais dans le cas de Java Encapsulation, 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

Commencez votre cours de développement de logiciels libres

Développement Web, langages de programmation, tests de logiciels et autres

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

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

private String EmpName;
private int EmpID;
private int EmpSal;
Copier après la connexion
  • Création de méthodes publiques en classe pour obtenir et définir les attributs ou 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;
}
Copier après la connexion

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.

Avantages de l'encapsulation en Java

Voici quelques-uns des avantages de l'encapsulation.

  • Simplicité dans l'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é

Java Bean Class est un exemple de classe entièrement encapsulée, car toutes les données membres de la classe sont privées.

Exemples d'encapsulation Java

Voyons un exemple d'encapsulation avec les méthodes getter et setter. Pour cela, créez 2 classes, une avec la méthode primaire et l'autre avec les méthodes get et set.

Exemple n°1

Employé.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;
}
}
Copier après la connexion
  • 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());
}
}
Copier après la connexion

Sortie :

Encapsulation en Java

La classe Employee est encapsulée dans le programme ci-dessus car les variables sont privées. Il est possible de lire et d'écrire l'implémentation puisqu'elle possède et définit des méthodes. Les variables privées telles que EmpName, EmpSal et 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 une classe en lecture seule.

Exemple n°2

  • Employé.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;
}
}
Copier après la connexion
  • 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());
}
}
Copier après la connexion

Sortie :

Encapsulation en Java

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

Maintenant, nous pouvons passer à un cours en écriture seule.

Exemple #3

  • Employé.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);
}
}
Copier après la connexion
  • 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);
}
}
Copier après la connexion

Sortie :

Encapsulation en Java

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

Conclusion

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

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:php
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal