Encapsulation
Fermé
badredine1
Messages postés
66
Date d'inscription
vendredi 7 février 2014
Statut
Membre
Dernière intervention
9 octobre 2014
-
15 févr. 2014 à 20:30
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 15 févr. 2014 à 20:55
KX Messages postés 16752 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 31 août 2024 - 15 févr. 2014 à 20:55
A voir également:
- Encapsulation
- Switchport trunk encapsulation dot1q invalid input - Forum Réseau
1 réponse
KX
Messages postés
16752
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
31 août 2024
3 019
15 févr. 2014 à 20:55
15 févr. 2014 à 20:55
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.
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 :
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.
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.