Les attributs d’une classe dans Dart
Les attributs d’une classe dans Dart
Objectis
- Savoir déclarer des attributs de différentes types (entiers, chaînes, virgule flottante, etc.).
- Comprendre comment initialiser les attributs lors de la déclaration ou via des constructeurs.
-
Présentation
- Dans une classe, les attributs pourraient être considérés comme les caractéristiques de l’objet. Une personne possède un nom, un prénom, une date de naissance… Une voiture, elle, a une couleur, une marque, un modèle…
- À l’intérieur de la classe, l’enjeu va être de déclarer ces attributs de la même façon que des variables quelconques. Ils possèderont un type et seront explicitement nommés. Toutefois, il existe une particularité à respecter, l’encapsulation.
- Il s’agit de protéger ces éléments du contact extérieur afin de garantir que ce qu’ils contiennent ne subira pas de modifications sauvages.
- Pour garantir cette intégrité, les attributs doivent être déclarés privés ; c’est-à-dire qu’ils ne seront exploitables que dans la classe où ils se trouvent. Dans beaucoup de langages, il existe des mots-clés pour cela comme private en Java.
- En Dart, il n’y en a pas. En revanche, il est possible de mettre en préfixe du nom de l’attribut un underscore (tiret bas) qui produira le même effet.
- Voici la classe créée précédemment à laquelle les attributs nom et prénom ont été ajoutés :
- Ces deux attributs sont des chaînes de caractères. Ils s’appellent nom et _prenom et possèdent respectivement une portée publique et privée (due à la présence de l’underscore).
- Théoriquement, les deux attributs auraient dû être privés. Mais dans la suite de l’exemple, il sera utile de constater la différence quand une personne sera créée dans un autre fichier.
- Justement, comment créer une personne ? Il existe un outil autorisant cela et son nom est des plus explicite : le constructeur.
-
Déclaration d’attributs
- En Dart, vous déclarez les attributs à l’intérieur d’une classe. Vous pouvez utiliser différents types de données pour définir le type de chaque attribut.
class Personne {
String nom;
String _prenom;
}
class MaClasse {
// Attributs
int entier; // Exemple d'un attribut de type entier
String chaine; // Exemple d'un attribut de type chaîne de caractères
double virguleFlottante; // Exemple d'un attribut de type virgule flottante
// Vous pouvez également initialiser les attributs lors de leur déclaration
bool estVrai = true;
}