0% ont trouvé ce document utile (0 vote)
29 vues3 pages

TP Programmation Numero 2

Programmation

Transféré par

Dieudonné Merci
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
29 vues3 pages

TP Programmation Numero 2

Programmation

Transféré par

Dieudonné Merci
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats DOCX, PDF, TXT ou lisez en ligne sur Scribd

 NOMS: DIEUDONNE MERCI Jean

 DEPARTEMENT : INFORMATIQUE DE GESTION L2


 ID : 4223

TP DE PROGRAMMATION N°2

1. Copiez le code ci-dessus dans votre IDE et exécutez-le. Qu'est-ce qui s'affiche dans la
console ? Pourquoi ces valeurs s'affichent-elles et pas d'autres ? (Répondre à cette
question en vous basant sur la notion des variables : les valeurs par défaut des variables).
5 pts

Problème : Le code initial affiche null pour le nom et l'identifiant, et 0 pour l'âge initial.

Cause : Les variables du constructeur (nom, age, numeroIdentite) masquent les variables
d'instance de la classe. Les valeurs passées au constructeur sont assignées à ces variables locales
et non à celles de l'instance. Les variables d'instance ne sont donc pas initialisées et prennent
leurs valeurs par défaut (null pour les objets, 0 pour les entiers). La méthode setAge fonctionne
car elle ne crée pas de conflit avec une variable locale.

2. Est-ce que le code ci-dessus fonctionne correctement ? (Si "oui", expliquez pourquoi. Si
"non", expliquez pourquoi.) 5 pts

Le code ne fonctionne pas correctement même s'il compile, car les valeurs passées au
constructeur ne sont pas affectées aux variables d'instance.

Cause : L'assignation des variables a lieu entre les paramètres du constructeur (locales) et eux-
mêmes, et non avec les variables d'instance de la classe.

3. Comment pouvons-nous optimiser ce code en utilisant le mot-clé « this » (Réécrivez


l'intégralité du code en utilisant « this » et expliquez à quoi cela a servi exactement.) 10
pts
Explication : En utilisant le mot-clé this, on fait référence à l'instance courante de la classe.
Ainsi, [Link] = nom affecte la valeur du paramètre nom à la variable d'instance nom de l'objet.

4. Dans le code fourni avec la question, essayez de nommer les attributs de la classe
différemment des paramètres du constructeur et réexécutez-le. Que remarquez-vous ? 5
pts
Changement : Les variables d'instance ont des noms différents des paramètres du constructeur
(ex : personName au lieu de nom).

Résultat : Le code fonctionne correctement. L’affectation du paramètre du constructeur à la


variable d’instance fonctionne, car il n'y a plus de conflits de nom. Le mot-clé this n'est plus
strictement nécessaire, car il n'y a pas de collision de nom de variables, mais son usage reste une
bonne pratique pour la lisibilité.

Vous aimerez peut-être aussi