|
|
|
|
|
- Présentation d'un objet
- Syntaxe de déclaration / d'instanciation d'un objet
- Déclaration/instanciation d'un objet
- Déclaration / instanciation d'un objet Null
- Remarque : Objet en cours
- Membres et méthodes
- Durée de vie d'un objet
- Référence sur un objet local
- Renvoyer un objet
- Objets dans les boucles
- Libération d'objet
Pour accéder à une classe, il faut déclarer l'objet comme étant de la classe à manipuler, on parle d' instanciation d'un objet. Une instance est un objet qui appartient à une classe donnée. Pour manipuler un objet, il faut : - Décrire la classe.
- Instancier l'objet.
Un objet peut être passé en paramètre à une fonction ou à une procédure. Remarque : Il est possible d'instancier dynamiquement un objet à une classe. La mise en oeuvre du polymorphisme requiert l'instanciation dynamique. Pour plus de détails, consultez Instanciation dynamique. Exemple d'objet : "FichierSource" est un objet de la classe "Fichier". Pour cet objet, il est possible de manipuler les membres "Nom", "Extension", etc.
FichierSource est un objet Fichier
FichierSource est un Fichier
Syntaxe de déclaration / d'instanciation d'un objet Déclaration/instanciation d'un objet <NomObjet> est [un] [objet] <Nom Classe> ([<Paramètres>]) Détail de la syntaxe <NomObjet> Nom identifiant l'instance de la classe. <Nom Classe> Nom identifiant la classe, défini lors de la création de la classe sous l'éditeur de code. <Paramètres> Déclaration / instanciation d'un objet Null <NomObjet> est [un] [objet] <Nom Classe> ([<Paramètres>]) = NULL Cette syntaxe permet de déclarer un objet sans l'instancier. Dans ce cas : - l'opérateur <- permet de prendre une référence sur l'objet.
- la variable déclarée se comporte comme si la déclaration était non dynamique : l'opérateur = effectue une copie des membres.
- l'objet manipulé peut être renvoyé comme valeur de retour de la procédure ou de la méthode.
- dans certains cas avancés, l'objet manipulé peut être détruit pour anticiper la destruction automatique.
Remarque : Objet en cours Le mot-clé Objet peut également être utilisé pour désigner l'objet en cours. Il est également possible d'utiliser le mot-clé This pour accéder à l'objet en cours. Référence sur un objet local L'objet est créé lors de sa déclaration. Par défaut, l'objet est local. Les objets locaux ne sont pas automatiquement détruits à la fin de l'exécution du traitement. Seule la référence locale est libérée. Ainsi, si une autre référence a été prise sur l'objet, l'objet ne sera pas détruit lors de la libération de la référence locale. Exemple :
gpo est Classe1 dynamique
gTab est un tableau de Classe1 dynamique
o1, o2, o3 sont Classe1
gpo1 = o1
Ajoute(gTab, o2)
Renvoyer un objet Il est possible de renvoyer un objet manipulé par une variable locale dynamique ou non dynamique. Remarque : Dans les versions précédentes, il était possible uniquement de renvoyer un objet manipulé par une variable locale dynamique. Objets dans les boucles Dans une boucle, il est possible de manipuler des objets par des variables locales non dynamiques et sans allocation explicite. Les objets déclarés dans une boucle sont réalloués à chaque itération de la boucle et la référence sur l'objet de l'itération précédente est libérée : - si aucune autre référence n'a été prise, l'objet est détruit.
- si une référence a été prise (variable globale, ajout dans un tableau, ...), l'objet n'est pas détruit.
Exemple :
t est un tableau de Classe1 dynamique
POUR i = 1 À 10
o est une Classe (x)
o.m_nIndice = i
Ajoute(t,o)
FIN
Libération d'objet Les objets manipulés par des variables locales non dynamiques peuvent être détruits explicitement avec le mot-clé LIBERER pour anticiper la destruction automatique. Remarque : Cette syntaxe est une syntaxe avancée à n'utiliser que dans des cas très particuliers. Dans la majorité des cas, la destruction est automatique. Rappel : De manière générale, l'utilisation du mot-clé LIBERER est inutile. Le WLangage détruit automatiquement les objets qui ne sont plus utilisés par aucune variable. Les cas d'utilisation les plus courants sont : - destruction d'une série d'objets qui se référencent de manière cyclique
- libération anticipée de ressources utilisées par l'instance (sockets, fichiers, ...) via l'exécution du destructeur.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|