IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
logo
Sommaire > Programmation orientée objets en Perl > Méthodes et accès aux champs
        Comment accéder aux champs de l'objet créé ?
        Comment créer une méthode d'instance en Perl ?
        Comment appeler une méthode d'instance ?

rechercher
precedent    sommaire       telecharger


Comment accéder aux champs de l'objet créé ?
auteur : Woufeil
Vous avez déclaré un objet $dupond comme membre de la classe Humain, très bien. Maintenant il faudrait pouvoir avoir accès aux différents champs le concernant (son nom, son prénom, son age...). Souvenez vous que $dupond est une référence vers une table de hachage, il faut donc utiliser l'opérateur flèche pour accéder à ses différents champs. Par exemple, pour accéder au champ age de $dupond, il faut faire :
$dupond->{age}
Et si la variable est un tableau tab ?
$dupond->{tab}->[1];
#accède au second élément de @tab  . Equivalent à
$dupond->{tab}[1];
De même pour une table de hachage.


Comment créer une méthode d'instance en Perl ?
auteur : Woufeil
En Perl, une méthode n'est qu'une fonction recevant un premier paramètre un peu spécial. Une méthode d'instance recevra comme premier argument la référence vers l'objet sur lequel elle doit s'appliquer. Supposons que cette référence pointe vers une table de hachage (c'est le cas la plupart su temps) et définissons une méthode defage permettant de définir l'âge de l'humain passé à cette méthode et de l'afficher :
sub defage
{
   my ($this, $age ) = @_;
   $this->{age} = $age;
   print ''$this->{prenom} $this->{nom} a $this->{age} ans'';
}
Il faut définir cette méthode dans le paquetage contenant la classe bien entendu.


Comment appeler une méthode d'instance ?
auteur : Woufeil
C'est pratiquement la même chose que pour appeler un constructeur ! Supposons que nous avons créé un objet $dupond membre de la classe Humain via le constructeur associé. Si maintenant on veut appeler la méthode defage sur cet objet il suffit de taper :
$dupond->degafe(35);
Comme un appel de méthode lui passe (à la méthode) de lui même son invoquant en tant que premier paramètre, il ne faut pas passer la référence $dupond. Ainsi, la fonction defage recevra bien $dupond comme premier paramètre et 35 en second. Ce n'est pas plus difficile que ça.


rechercher
precedent    sommaire       telecharger

Consultez les autres F.A.Q's

Valid XHTML 1.1!Valid CSS!


Les sources présentées sur cette page sont libres de droits et vous pouvez les utiliser à votre convenance. Par contre, la page de présentation constitue une œuvre intellectuelle protégée par les droits d'auteur. Copyright © 2005 Developpez Developpez LLC. Tous droits réservés Developpez LLC. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents et images sans l'autorisation expresse de Developpez LLC. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.