Développeur FullStack & Devops

Notes et mémos techniques

Constructeur et Destructeur de classe, utilité et fonctionnement

Constructeur

Un constructeur est une méthode de classe (un peu particulière) qui est appelée automatiquement lorsqu'on instancie une classe ex: var monInstance = new maClasse ( );

Le constructeur joue plusieurs rôles :

  • il permet d'initialiser les champs et propriétés d'un objet
  • il permet d'exécuter des instructions d'initialisation de l'objet (vérifications et validations de données à affecter par ex, tracing etc.)

Les constructeurs ont les caractéristiques suivantes:

  1. ils ne retournent aucune valeur (ni void, ni int, ni quoique ce soit)
  2. ont le même nom que la classe dans laquelle il est définie
  3. il est possible de déclarer plusieurs constructeurs au sein d'une même classe (surcharge de méthode), chacun comportant alors des paramètres différents (en type et/ou en nombre)
  4. il existe un constructeur sans paramètre par défaut pour toute classe, il existe sans qu'on ait à le déclarer. Cependant, si nous déclarons explicitement des constructeurs dans notre classe, le constructeur par défaut (sans paramètres) disparaît (il ne sera donc plus possible d'instancier maclasse() )et il faudra alors le redéfinir si nous en avons besoin.

Pour finir, les constructeurs étant des membres de classe (ce sont des méthodes), nous pouvons leur appliquer les modificateurs de portées: public, private, protected or internal.

Destructeur

C# permet également de déclarer un (et un seul) destructeur pour une classe donnée, auquel il sera fait appel pour exécuter une série d'instructions avant libération de la mémoire (occupé par l'objet) par le  garbage collector.

Le destructeur a les caractéristiques suivants:

  1. il est impossible d'invoquer manuellement un destructeur (pour relâcher la mémoire explicitement, il faut implémenter la méthode Dispose() de l'interface IDisposable)
  2. ne prends aucun paramètre
  3. ne retourne aucune valeur
  4. n'accepte pas les modificateurs de portées
  5. ne peut pas être hérité ou surchargée (il est possible de définir 1 et 1 seul destructeur par classe, même dans des classes dérivées)

Déclaration d'un destructeur:

MaClasse {
	~MaClasse () {
		_expressions exécutées **automatiquement** lors du passage du garbage collector_ ;
	}
}

Constructeur static

Le constructeur de classe Static est un constructeur particulier sans paramètre et qui a la particularité d'être exécuté 1 seule fois, avant tout autre constructeur, et avant l'appel à des méthodes ou champs statiques. MaClasse {

static MaClasse () {

expressions et initialisations exécutées automatiquement avant tout autre initialisation ou invocation d'autre constructeurs

}

}

c-sharp
classe
csharp
dotnet
objet
tutoriel
programmation-oriente-objet
programmation
rédigé le 15/02/12 par Behrouze
A proposCheat SheetsOutilsVidéos