Bonjour,
je suis en train de parcourir le cours de poo perl par djibril. j'ai beau cherché sur le net, faq il y a un élément que je n'arrive pas à comprendre. c'est pourtant simple mais moi je ne vois pas la différence.
voici l'exemple:
ce code doit afficher ce résultat:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 my $Objet_Personne1 = Personne->new( { nom => 'Dupont', prenom => 'Jean', age => 45, sexe => 'M', nombre_enfant => 3, }); print $Objet_Personne1->{AGE},"\n"; $Objet_Personne1->{AGE} = 22; print $Objet_Personne1->{AGE},"\n";
jusque là aucune énigme je comprends. Dans le cours, on y explique qu'en affectant une nouvelle valeur dans cette variable en utilisant le :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
345 22
on "viole" les attributs de la classe.
Code : Sélectionner tout - Visualiser dans une fenêtre à part $Objet_Personne1->{AGE} = 22;
il est donc conseillé de faire :
pour la partie affichage de l'age je comprends
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 # accesseur obtenir_age sub obtenir_age { my ( $this ) = @_; return $this->{AGE}; } # mutateur modifier_age sub modifier_age { my ( $this, $age ) = @_; #pour moi ici la premier valeur sera le nom de la classe suivi de l'age if ( defined $age ) { $this->{AGE} = $age;# et là on "ecrase" le contenu de la variable dans l'objet pour mettre une nouvelle valeur } return; }
pour le mutateur afin de modifier l'age pour moi c'est la même chose que ce code làJe suis navré pour une question qui peut vous paraître simplissime! mais je ne comprends pas trop la nuance !
Code : Sélectionner tout - Visualiser dans une fenêtre à part $Objet_Personne1->{AGE} = 22;
bonne fête à tous
Partager