Comprehénsion de this
Résolu/Fermé
stampia02
Messages postés
95
Date d'inscription
samedi 30 juillet 2011
Statut
Membre
Dernière intervention
13 mai 2017
-
23 déc. 2016 à 22:01
stampia02 Messages postés 95 Date d'inscription samedi 30 juillet 2011 Statut Membre Dernière intervention 13 mai 2017 - 23 déc. 2016 à 22:52
stampia02 Messages postés 95 Date d'inscription samedi 30 juillet 2011 Statut Membre Dernière intervention 13 mai 2017 - 23 déc. 2016 à 22:52
1 réponse
KX
Messages postés
16668
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
17 mars 2023
3 005
23 déc. 2016 à 22:17
23 déc. 2016 à 22:17
Bonjour,
A priori c'est bon.
Remarques :
Si tu as un attribut qui s'appelle
Il n'est pas vraiment nécessaire de lever une exception si l'étudiant est déjà dans la série, car au final ça ferait juste rien, mais en sortie de méthode tu auras bien la série voulue de configurée.
En général dans ces cas là on renvoie un booléen, qui vaut true si l'objet a changé.
NB. Ne pas oublier le cas où on passerait null en valeur.
Soit c'est autorisé et il faut vérifier que
Soit c'est interdit et il faut lever une exception pour ce cas.
A priori c'est bon.
Remarques :
Si tu as un attribut qui s'appelle
serie, évites d'appeler également ton paramètre de méthode
serie, ça te complique la vie pour rien.
Il n'est pas vraiment nécessaire de lever une exception si l'étudiant est déjà dans la série, car au final ça ferait juste rien, mais en sortie de méthode tu auras bien la série voulue de configurée.
En général dans ces cas là on renvoie un booléen, qui vaut true si l'objet a changé.
NB. Ne pas oublier le cas où on passerait null en valeur.
Soit c'est autorisé et il faut vérifier que
serie != nullavant de faire
serie.getDelegue().
Soit c'est interdit et il faut lever une exception pour ce cas.
public void changerSerie(Serie nouvelleSerie) {
if (nouvelleSerie == null)
throw new IllegalArgumentException("null n'est pas une série valide");
if (serie == nouvelleSerie)
return false;
if (serie != null && serie.getDelegue() == this)
throw new IllegalStateException("Un délégué ne peut pas changer de série");
serie = nouvelleSerie;
return true;
}
23 déc. 2016 à 22:52