Programmation C sharp/Les objets

Un objet est un type référence. Il s'agit d'une instance de classe.

Programmation C#
Programmation C#
Modifier ce modèle

Le type object

modifier

La classe System.Object est équivalente au type object. Il s'agit de la classe de base de toutes les autres classes.

L'auto-boxing/unboxing permet d'utiliser le type object pour n'importe quel type de valeur :

object obj;
obj = 10;           // int -> Int32 -> object
obj = "Une chaîne"; // string -> String -> object

Créer un nouvel objet

modifier

Créer un nouvel objet est appelé instancier une classe et utilise l'opérateur new :

classe variable=new classe(arguments...);

Cet opérateur effectue les opérations suivantes :

  • allocation d'une zone mémoire d'une taille suffisante pour accueillir les attributs définis dans la classe spécifiée,
  • initialisation des attributs à leur valeur par défaut (définie dans la classe ou 0 sinon),
  • appel au constructeur acceptant les arguments spécifiés.

L'appel peut échouer pour plusieurs raisons :

  • la classe spécifiée n'a pas pu être chargée,
  • l'espace mémoire libre est insuffisant,
  • une exception a été lancée par le constructeur.

Dans tous les cas une exception est lancée.

Objet this

modifier

Une méthode est déclarée dans une classe et s'exécute en accédant aux attributs d'un objet. Cet objet n'est pas déterminé au moment de l'implémentation des méthodes, mais déterminé lors de l'appel à la méthode en précédant son nom de la référence à l'objet utilisé :

objet.methode();

Les méthodes utilisent la référence spéciale this pour désigner l'objet utilisé.

Voir le chapitre suivant sur les classes pour plus de détails.