Concept

Propriété (informatique)

Résumé
En programmation orientée objet ou en Resource Description Framework, une propriété est un élément de description d'un objet. Un type de classe regroupe, entre autres, l'ensemble des propriétés communes à un type d'objet. Une propriété, dans certains langages de programmation orientés objet, est une sorte de membre de classe. Il se traduit par un champ du point de vue de l'interface d'une classe, mais auquel sont adjoints une ou plusieurs méthodes, dites accesseurs et mutateurs, vouées à lire (get / accesseur) et modifier (set / mutateur) la valeur du champ de l'instance. Le champ de la propriété peut selon le langage se traduire par un attribut, éventuellement homonyme des accesseurs (getter ou setter). L'usage courant des propriétés est de pouvoir rajouter des instructions appliquées systématiquement au moment de la modification ou de la lecture de toute instance d'une classe sans pour autant modifier l'interface de cette classe. Les propriétés sont également utilisées pour contrôler l’accès au champ, en rendant celui-ci private pour forcer l'usage aux accesseurs, dans lesquels des contrôles de cohérence peuvent être insérés. Cette faculté permissive est cependant source de risques, notamment du fait qu'elle permet de modifier les valeurs d'attribut(s) lors d'opération vouée normalement à leur lecture. class Pen { private int m_Color; // private field public int Color { // public property get { return m_Color; } set { m_Color = value; } } } // accessing: Pen pen = new Pen(); // ... pen.Color = ~pen.Color; // bitwise complement ... // another silly example: pen.Color += 1; // a lot clearer than "pen.set_Color(pen.get_Color() + 1)"! Les dernières versions de C# autorisent de plus les "auto-implemented properties", pour lesquelles le champ sous-jacent à la propriété est généré par le compilateur à la compilation. Ceci implique que la propriété ait un 'setter', éventuellement privé. class Shape { public Int32 Height { get; set; } public Int32 Width { get; private set; } } C++ n'a pas de propriétés de classe, mais il existe plusieurs manières d'imiter les propriétés dans une certaine limite.
À propos de ce résultat
Cette page est générée automatiquement et peut contenir des informations qui ne sont pas correctes, complètes, à jour ou pertinentes par rapport à votre recherche. Il en va de même pour toutes les autres pages de ce site. Veillez à vérifier les informations auprès des sources officielles de l'EPFL.