next up previous index
suivant: Tips and tricks monter: Les objets précédent: Les bases   Index

Un exemple

Supposons que la classe Window soit définie. Alors on crée un objet appartenant à cette classe en appelant son constructeur :

$fenetre = new Window "Une fenetre";
# ou dans un autre style
$fenetre = Window->new("Une fenetre");

Si Window a une méthode expose définie, on peut l'appeler ainsi :

expose $fenetre;
# ou bien
$fenetre->expose;

Voici un exemple de déclaration de la classe Window:

package Window;

# La methode de creation. Elle est appelee avec le nom de la
# classe (ie du paquetage) comme premier parametre. On peut passer
# d'autres parametres par la suite
sub new
{
  # On recupere les arguments
  my($classe, $parametre) = @_;

  # L'objet qui sera retourne est ici (et c'est generalement le cas)
  # une reference sur un tableau associatif. Les variables
  # d'instance de l'objet seront donc les valeurs de ce tableau.
  my $self = {};

  # On signale a $self qu'il depend du paquetage Window
  # (ie que sa classe est Window)
  bless $self;

  # Diverses initalisations
  $self->initialize($parametre);

  # On retourne $self
  return $self;
}

# Methode d'initalisation.
# Le premier parametre est l'objet lui-meme.
sub initialize
{
  my($self, $parametre) = @_;

  $self->{'nom'} = $parametre || "Anonyme";
}

# Autre methode.
sub expose
{
  my $self = shift;

  print "La fenetre ``, $self->{'parametre'},
        " a recu un evenement expose.#3046#>n";
}


next up previous index
suivant: Tips and tricks monter: Les objets précédent: Les bases   Index
Olivier Aubert
1999-06-01