Programmation C sharp/Les objets
Un objet est un type référence. Il s'agit d'une instance de classe.
Le type object
[modifier | modifier le wikicode]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 | modifier le wikicode]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 | modifier le wikicode]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.