Forum des exercices du projet Zuul

Exercice 7.5

  
 
Avatar anonfirstname2 anonlastname2
Exercice 7.5
par anonfirstname2 anonlastname2, mercredi 20 octobre 2021, 10:57
 

Notez dans le Rapport ce que vous avez dû modifier pour faire cet exercice (faire de même pour chaque exercice).

  1. Avez-vous complètement terminé l'exercice 7.4 ?

  2. Lisez la suite du chapitre 7 [ci-joint] (si possible en anglais, sinon en français).

  3. Implement and use a separate printLocationInfo method in your project, as discussed in this section. Test your changes.

  4. Avez-vous compris pourquoi on vous demande de créer et utiliser cette procédure, et pourquoi la situation était "inacceptable" avant cette amélioration ?
    Pensez aux futures modifications qui pourraient arriver, qui vous demanderaient d'afficher plus de choses pour chaque lieu ...
    Si vous aviez déjà créé une méthode pour éviter cette duplication de code, il vous suffit de la renommer pour que les tests automatiques passent sans pb (bravo pour y avoir pensé, mais il vaudrait mieux suivre les énoncés à la lettre pour comprendre l'intérêt de toute la succession de questions).
    En tous cas, lorsqu'on a effectué cette amélioration, il n'est plus question de revenir en arrière dans de futurs exercices et de dupliquer à nouveau des instructions, a minima dans printWelcome et goRoom.

  5. If you want to understand why zuul-bad is not implemented in the right way, and if you want to know if you did understand well this printLocationInfo exercise, you could also watch this video.


Avatar Alexis CHARVET
Exercice 7.5
par Alexis CHARVET, dimanche 15 mars 2015, 15:33
 

Bonjour Monsieur,

Après avoir créé la méthode printLocationInfo, faut-il appeler cette méthode dans les méthodes GoRoom et printWelcome ? Si oui, comment appeler cette méthode ? J'ai essayé de cette façon : "System.out.println(printLocationInfo(vNextRoom));" mais cela ne compile pas.

Cordialement

Avatar Denis BUREAU
Re: Exercice 7.5
par Denis BUREAU, dimanche 15 mars 2015, 17:27
 

À votre première question, la réponse est : bien évidemment. À quoi servirait cette méthode si on ne l'appelait pas ?

System.out.println( quelque_chose ); attend quelque chose de type String ou qu'on peut convertir en String.

Si quelque_chose est un appel de méthode, il faut donc que ce soit une fonction qui retourne une String, alors que vous appelez une procédure.

Mais quel besoin de faire un System.out.println alors que printLocationInfo (comme son nom l'indique) le fait déjà ?

Avatar Denis BUREAU
Re: Exercice 7.5
par Denis BUREAU, mercredi 13 février 2019, 21:12
 

Un étudiant a écrit :

Je ne comprends pas pourquoi, dans la méthode goRoom, au moment de mettre un if afin de tester si vNextRoom est null ou non,
le programme ne marche que si on met if (vNextRoom == null) et non avec if(vNextRoom.equals(null)).

Avatar Denis BUREAU
Re: Exercice 7.5
par Denis BUREAU, mercredi 13 février 2019, 21:18
 

Les Room sont des objets, donc on manipule ici des références.

On veut donc savoir si la référence contenue dans la variable vNextRoom vaut null ou pas.

vNextRoom.equals(null) ne pourrait être vrai que si vNextRoom valait null, mais dans ce cas on n'aurait pas le droit d''écrire vNextRoom.quelquechose, sous peine d'une NullPointerException !