Propriété (informatique)
# Propriété (informatique)

    Le champ de la propriété peut selon le langage se traduire par un attribut, éventuellement homonyme des accesseurs (getter ou setter).

## Utilisation des propriétés

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.

## Exemples de syntaxe

### C et dérivés

**Propriétés en C#**

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é.

**Propriétés en C++**

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. Voici deux exemples :

**Propriétés en C++, Microsoft & C++Builder-specific**

Un exemple tiré de la MSDN documentation page:

**Propriétés en Objective-C 2.0**

Notez que le moderne Objective-C runtime peut convertir les variables d'instance en propriétés, d'où la déclaration explicite des variables d'instance qui n'est pas nécessaire, mais toujours possible.

### Nouveaux langages

**Propriétés en langage D**

Dans D version 2, chaque accesseur de propriété doit être marqué avec @property:

**Propriétés en Python**

Les propriétés ne fonctionnent correctement que pour les nouveaux types de classe qui sont uniquement disponibles en Python 2.2 ou plus récents. Python 2.6 ajoute une nouvelle syntaxe pour définir les propriétés.

