Le mot-clé this dans Dart
-
Présentation
- Le mot-clé
this
est utilisé pour faire référence à l’instance de classe actuelle.this
peut être utilisé pour invoquer les constructeurs ou les méthodes de la classe actuelle. Il permet également d’accéder aux variables d’instance de la classe actuelle. - Le mot-clé
this
peut être utilisé pour définir les valeurs de la variable d’instance ou obtenir l’instance actuelle de la classe. - Ce mot-clé dans dart est utilisé pour lever l’ambiguïté qui peut être causée si les attributs de classe et les paramètres ont le même nom.
- Ce mot-clé représente essentiellement un objet implicite pointant vers l’objet de classe actuel.
- L’utilisation la plus courante du mot-clé
this
est d’éliminer la confusion entre les attributs de classe et les paramètres portant le même nom (car un attribut de classe est occulté par une méthode ou un paramètre de constructeur). -
Exemples d’utilisation du mot clé
this
dans dart - Le compilateur Dart peut être confus s’il existe un certain nombre de paramètres portant le même nom. Le résultat est que le compilateur créera une ambiguïté.
-
Exemple et explication
- Dans le programme ci-dessous, nous avons créé une classe appelée Etudiant, qui a deux attributs numMatricule et cours. Ensuite, nous avons créé un constructeur portant le même nom que notre classe et passé des paramètres identiques au nom des attributs de classe précédés par le mot clé
this
. -
Points à retenir
- Le mot clé ‘
this
‘ est utilisé pour pointer vers l’objet de la classe qui l’invoque. - Il peut être utilisé pour faire référence aux variables de classe actuelles.
- Nous pouvons instancier ou invoquer le constructeur de classe actuel à l’aide de ce mot-clé.
- Nous pouvons passer le mot clé ‘
this
‘ en tant que paramètre dans l’appel du constructeur. - Nous pouvons passer le mot clé ‘
this
‘ en tant que paramètre dans l’appel de méthode. - Il supprime l’ambiguïté ou le conflit de nommage dans le constructeur ou la méthode de notre instance/objet.
- Il peut être utilisé pour renvoyer l’instance de classe actuelle.
class Person {
String name;
int id;
Person(name, id) {
name = name;
id = id;
}
}
void main() {
var p1 = Person("Sami", 464385190);
print(p1.name);
print(p1.id);
}
//Résultat après exécution:
null
null
class Person {
String name;
int id;
Person(name, id) {
this.name = name;
this.id = id;
}
}
void main() {
var p1 = Person("Sami", 464385190);
print(p1.name);
print(p1.id);
}
//Résultat après exécution:
Sami
464385190
// Creating class Etudiant
class Etudiant {
// Création de variables d'instance
String? numMatricule;
int? cours;
// Création d'un constructeur paramétré
Etudiant(String numMatricule, int infoCours) {
// Appel de variables d'instance à l'aide de ce mot-clé.
this.numMatricule = numMatricule;
this.cours = infoCours;
}
// Méthode de classe
void afficher_info() {
print("L'étudiant $numMatricule propose $cours cours ce semestre");
}
}
void main() {
// Création d'une instance de la classe Etudiant
// et assigner des valeurs
Etudiant s1 = new Etudiant("186HQ025", 10);
// Méthode d'appel
s1.afficher_info();
}