Maison >Java >javaDidacticiel >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 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.
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
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;
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.
Java Bean Class est un exemple de classe entièrement encapsulée, car toutes les données membres de la classe sont privées.
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.
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; } }
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()); } }
Sortie :
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.
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()); } }
Sortie :
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.
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); } }
Sortie :
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.
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!