Le mot-clé this
Fait partie de la section Programmation Orientée Objet du Journey Dart de Coddy. Leçon 5 sur 110.
Le mot-clé this fait référence à l’instance actuelle d’une class. À l’intérieur d’une method, this vous permet d’accéder aux propres variables de l’objet.
Voici un exemple de classe avec des méthodes utilisant this :
class Car {
String color = '';
String model = '';
void honk() {
print('Beep beep!');
}
void describe() {
print('I am a ${this.color} ${this.model}');
}
}À l’intérieur de describe(), this.color et this.model font référence aux variables de cet objet spécifique.
Créez un objet voiture et définissez ses variables :
Car myCar = Car();
myCar.color = 'Red';
myCar.model = 'Sedan';Appelez les méthodes :
myCar.honk();
myCar.describe();Sortie :
Beep beep!
I am a Red Sedanthis est particulièrement utile lorsqu’un paramètre de méthode porte le même nom qu’une variable d’instance :
class Car {
String color = '';
void setColor(String color) {
this.color = color; // this.color = variable d'instance, color = paramètre
}
}Sans this, Dart ne saurait pas si color fait référence au paramètre ou à la variable d’instance. Point clé : this fait toujours référence à l’objet spécifique qui appelle actuellement la méthode.
Défi
FacileComplétez la classe Car dans car.dart en ajoutant une méthode appelée displayInfo qui utilise le mot-clé this pour afficher l’année, la marque et le modèle de la voiture au format :
'This car is a [year] [make] [model]'
car.dart: Contient la classeCardans laquelle vous ajouterez la méthodedisplayInfodriver.dart: Définit des variables sur un objet voiture et appelledisplayInfo()(verrouillé)
Essayez vous-même
import 'car.dart';
void main() {
Car myCar = Car();
myCar.year = '2020';
myCar.make = 'Toyota';
myCar.model = 'Corolla';
myCar.displayInfo();
}
Cette leçon comprend un petit quiz. Commencez la leçon pour y répondre et suivre votre progression.
Toutes les leçons de Programmation Orientée Objet
1Fondamentaux de la POO
Fichiers externesBibliothèques et importsIntroduction à la POOClasses vs objetsLe mot-clé thisMéthodesVariables d’instanceBases des constructeursRécapitulatif - Calculatrice simple4Sécurité face aux valeurs nulles
Introduction à la sécurité face aux valeurs nullesNullable vs Non-NullableLes opérateurs ? et !Mot-clé Late et sécurité face aux valeurs nullesOpérateurs sensibles à nullSécurité face aux valeurs nulles dans les classesRécapitulatif – Système de profil utilisateur7Classes abstraites et interfaces
Classes abstraitesMéthodes abstraitesInterfaces en DartInterfaces implicitesImplémenter ou étendreInterfaces multiplesRécapitulatif - Calculateur de formes10Collections et génériques
Vue d’ensemble des List, Set et MapCollections à typage sûrClasses génériquesMéthodes génériquesContraintes génériquesIterable et IteratorRécapitulatif – stockage générique2Constructeurs en Dart
Constructeur par défautConstructeurs nommésListes d'initialisationConstructeurs constantsConstructeurs factoryConstructeurs redirigésRécapitulatif - Constructeur de formes5Encapsulation
Membres publics vs privésLa convention du préfixe _Confidentialité au niveau de la bibliothèqueApprofondissement des getters et settersMasquage de l’informationRécapitulatif - Fiches des étudiants8Mixins
Introduction aux MixinsCréer des MixinsUtiliser plusieurs MixinsMot-clé on dans les MixinsMixin ou héritageMixin ou interfaceRécapitulatif - Système animal11Méthodes spéciales
Redéfinition de toString()Redéfinition de hashCode et ==Interface ComparableMéthode call()Redéfinition de noSuchMethodRécapitulatif - Collection personnalisée14Patrons de conception, partie 1
Introduction aux patrons de conceptionPatron SingletonPatron FactoryPatron ObserverPatron Strategy3Propriétés des classes
Membres d’instance et statiquesChamps Final et ConstVariables différéesMéthodes et champs statiquesAccesseurs et mutateursRécapitulatif - Gestionnaire de compte bancaire6Héritage
Héritage de baseLe mot-clé superRedéfinition de méthodeL’annotation @overrideLe mot-clé de classe finalConstructeurs et héritageRécapitulatif – Hiérarchie des employés9Polymorphisme
Bases du polymorphismePolymorphisme via les interfacesVérification des types à l’exécutionLes opérateurs is et asMot-clé covariantRécapitulatif - Processeur de paiements12POO asynchrone
Futures et async/awaitNotions de base des StreamsContrôleurs de StreamsConstructeurs asynchronesAsynchrone dans les méthodes de classeRécapitulatif - récupérateur de données15Patrons de conception – Partie 2
Patron CommandePatron AdaptateurPatron DécorateurPatron Méthode modèlePatron ÉtatPatron CompositePatron DépôtEntraînez-vous par vous-même : Compilateur Dart en ligne