Encapsulation
badredine1
Messages postés
87
Statut
Membre
-
KX Messages postés 19031 Statut Modérateur -
KX Messages postés 19031 Statut Modérateur -
Bonjour,
le principe d'encapsulation et le suivant:"c'est le fait que les methodes sont public et les attributs sont privé".
qui peut me expliquer a quoi sert le principe d'encapsulation.
le principe d'encapsulation et le suivant:"c'est le fait que les methodes sont public et les attributs sont privé".
qui peut me expliquer a quoi sert le principe d'encapsulation.
1 réponse
-
Dans ton code tu gères des données, pour éviter qu'on les manipules n'importe comment tu vas cacher les attributs en les déclarant privé et créer des méthodes qui se chargeront de manipuler les données et conserver la cohérence de l'objet.
Exemple simple, tu gères dans une classe un tableau qui peux contenir entre 0 et 10 valeurs, tu vas donc avoir deux attributs : la taille et le tableau. Ainsi qu'une méthode d'ajout d'un entier.
public class Array { private int size = 0; private int[] array = new int[10]; public void add(int n) { if (size==10) throw new IllegalStateException("Array is full"); else { array[size]=n; size++; } } }
Que se passerait il sans encapsulation ? On pourrait directement manipuler les données de la classe Array et potentiellement faire n'importe quoi avec. Exemples :
Array array = ... array.size = 42; array.add(4); // ArrayIndexOutOfBoundsException
Array array = ... array.tab = null; array.add(4); // NullPointerException
Il est donc important que les données soient protégées contre ce type de modification sauvages en autorisant uniquement les méthodes à changer l'état de l'objet.