PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE

  • Présentation
  • Syntaxe
  • Déclaration d'un objet dynamique
  • Instancier un objet dynamique
  • Libérer un objet dynamique
  • Remarques
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
Présentation
Un objet peut être associé dynamiquement à une classe, on parle alors d'instanciation dynamique de l'objet.
L'instanciation dynamique d'objet permet de créer un objet à un instant donné et de libérer cet objet lorsqu'il n'est plus utilisé.
Pour instancier un objet, il faut :
  1. Déclarer un objet dynamique.
  2. Instancier l'objet.
Remarques :
  • La libération de l'objet est automatique lorsqu'il n'est plus utilisé. Toutefois, il est possible de forcer la destruction de l'objet (pour provoquer l'exécution du destructeur par exemple).
  • La mise en oeuvre du polymorphisme requiert l'instanciation dynamique.
  • Pour récupérer l'instance de l'objet en cours dans les méthodes de la classe, utilisez le mot-clé objet (ce mot-clé correspond à this dans d'autres langages de programmation).
MFichier est une Classe
        Nom est une chaîne
        Extension est une chaîne
        Répertoire est une chaîne
FIN

FichierSource est un objet MFichier dynamique
// ...
// Créer l'objet
FichierSource = allouer un MFichier
// Traitement sur l'objet...
// ...
// Libérer l'objet
libérer
Versions 17 et supérieures
AndroidUniversal Windows 10 App Cette fonctionnalité est désormais disponible pour les applications Android et Windows Phone.
iPhone/iPad Cette fonctionnalité est désormais disponible pour les applications iPhone/iPad.
Nouveauté 17
AndroidUniversal Windows 10 App Cette fonctionnalité est désormais disponible pour les applications Android et Windows Phone.
iPhone/iPad Cette fonctionnalité est désormais disponible pour les applications iPhone/iPad.
AndroidUniversal Windows 10 App Cette fonctionnalité est désormais disponible pour les applications Android et Windows Phone.
iPhone/iPad Cette fonctionnalité est désormais disponible pour les applications iPhone/iPad.
Versions 21 et supérieures
Universal Windows 10 App Cette fonctionnalité est disponible en mode Universal Windows 10 App.
Apple Watch Cette fonctionnalité est disponible en mode Apple Watch.
Nouveauté 21
Universal Windows 10 App Cette fonctionnalité est disponible en mode Universal Windows 10 App.
Apple Watch Cette fonctionnalité est disponible en mode Apple Watch.
Universal Windows 10 App Cette fonctionnalité est disponible en mode Universal Windows 10 App.
Apple Watch Cette fonctionnalité est disponible en mode Apple Watch.
Syntaxe

Déclaration d'un objet dynamique

<NomObjet> est [un] [objet] <NomClasse> dynamique
Détail de la syntaxe
<NomObjet>
Nom identifiant l'instance de la classe.
<NomClasse>
Nom identifiant la classe, défini lors de la création de la classe sous l'éditeur de code.

Instancier un objet dynamique

<NomObjet> = allouer un <NomClasse> ([<Paramètres>])
Détail de la syntaxe
<NomObjet>
Nom identifiant l'instance de la classe.
<NomClasse>
Nom identifiant la classe, défini lors de la création de la classe sous l'éditeur de code.
<Paramètres>
Paramètres optionnels du constructeur.

Libérer un objet dynamique

Syntaxe 1 :
libérer <NomObjet>
Détail de la syntaxe
<NomObjet>
Nom identifiant l'instance de la classe.

Syntaxe 2 :
<NomObjet> = Null
Détail de la syntaxe
<NomObjet>
Nom identifiant l'instance de la classe.
Versions 16 et supérieures
Ce paramètre peut correspondre à un objet non dynamique.
Nouveauté 16
Ce paramètre peut correspondre à un objet non dynamique.
Ce paramètre peut correspondre à un objet non dynamique.

Remarques

  • La libération de l'objet est automatique lorsque il n'est plus utilisé. Toutefois, il est possible de forcer la destruction de l'objet (pour provoquer l'exécution du destructeur par exemple).
  • Pour tester si un objet dynamique est alloué et n'a pas encore été libéré, il faut comparer cet objet à NULL. Par exemple :
    SI <Nom Objet> = NULL ...

    SI <Nom Objet> <> NULL ...
AndroidJava Cas particulier en Java/Android
La notion de destructeur n'existe pas en Java/Android. Le code situé dans le destructeur d'une classe ne sera par conséquent jamais exécuté.

Un objet est libéré par le ramasse-miette (garbage collector) lorsqu'il n'est plus référencé dans l'application. Le moment où intervient cette libération n'est pas prévisible.

Pour forcer la libération d'un objet, il est possible de l'affecter à NULL ou d'utiliser l'instruction Libérer.
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire