Article de reference

Variable de classe

En programmation orientée objet basée sur les classes , une variable de classe est une variable définie dans une classe dont il n'existe qu'une seule copie, quel que soit le nom...

En programmation orientée objet basée sur les classes , une variable de classe est une variable définie dans une classe dont il n'existe qu'une seule copie, quel que soit le nombre d' instances de la classe.

Une variable de classe n'est pas une variable d'instance . Il s'agit d'un type particulier d' attribut de classe (ou propriété, champ ou membre de données). La même distinction entre membres d'instance et membres de classe s'applique également aux méthodes (« fonctions membres ») ; une classe peut posséder à la fois des méthodes d'instance et des méthodes de classe .

appel dynamique ), soit leur mémoire est allouée statiquement à la compilation (une seule fois pour toute la classe, en tant que variables statiques ), et non dynamiquement à l'exécution (à chaque instanciation d'un objet). Dans d'autres cas, en revanche, l'un ou l'autre, voire les deux, sont dynamiques. Par exemple, si les classes peuvent être définies dynamiquement (à l'exécution), les variables de classe de ces classes sont allouées dynamiquement lors de la définition de la classe, et dans certains langages, les méthodes de classe sont également appelées dynamiquement.

Ainsi, dans certains langages, les termes « variable membre statique » ou « fonction membre statique sont utilisés comme synonymes ou à la place de « variable de classe » ou « fonction de classe », mais ils ne sont pas synonymes d’un langage à l’autre. Ces termes sont couramment utilisés en Java, C# et C ++ ,les et méthodes de classe sont déclarées avec le mot-clé ` et appelées respectivement variables membres statiques et fonctions membres statiques .static

Exemples

C++

incrémentée à chaque appel au constructeur , de sorte qu'elle Order::nextIdcontienne toujours le nombre d' Orderobjets `s` construits, et chaque nouvel Orderobjet reçoit un identifiant `s` numberde manière séquentielle. Puisque ` nextIds` est une variable de classe, il n'y a qu'un seul objet `s`Order::nextId ; en revanche, chaque Orderobjet `s` possède son propre idchamp distinct.

Notez également que la variable Order::nextIdn'est initialisée qu'une seule fois (car inline staticelle est initialisée à l'intérieur de la classe ; avant C++17 , elle ne l'était qu'une seule fois staticet devait être initialisée en dehors de la classe).

Une classe dont staticles membres sont des instances d'elle-même ne peut déclarer que les champs consten premier, tandis que les déclarations ` constexpr`constexpr doivent se trouver en dehors de la classe. Tenter de déclarer une instance d'une classe comme membre statique d'elle-même échoue car aucune définition d'objet ne peut être un type incomplet, or la classe est incomplète tant qu'elle n'est pas fermée.

# variable de classechien : Chien = Chien () print ( chien . groupe_vertébré ) # accès à la variable de classe

Le code Python ci-dessus ne fournit pas beaucoup d'informations, car il ne contient qu'une variable de classe Dogindiquant que le chien appartient au groupe des vertébrés (mammifères). Avec des variables d'instance, il est possible de personnaliser l'objet (ici, le chien dog) en utilisant une ou plusieurs variables d'instance dans la Dogclasse.

On peut également indiquer le type en utilisant

Plus d articles de Worldlex Wiki

Revenez a l index pour explorer davantage de pages sur l histoire, la science, la culture, la geographie et la societe en francais.

Explorer l index