Variables d’instance
Fait partie de la section Programmation Orientée Objet du Journey Dart de Coddy. Leçon 7 sur 110.
Les variables d'instance sont des variables déclarées à l'intérieur d'une classe. Chaque objet créé à partir de la classe reçoit sa propre copie de ces variables, indépendante de tous les autres objets.
Déclarez des variables d'instance avec un type et une valeur par défaut facultative :
class Student {
String school = 'Dart Academy'; // possède une valeur par défaut
String name = ''; // valeur par défaut vide
int age = 0; // valeur par défaut zéro
}Les variables avec des valeurs par défaut commencent avec la même valeur pour chaque nouvel objet. Les variables comme name et age commencent vides ou à zéro jusqu'à ce que vous les définissiez.
Utilisez une méthode avec this pour définir les données individuelles de l'objet :
class Student {
String school = 'Dart Academy';
String name = '';
int age = 0;
void setInfo(String name, int age) {
this.name = name; // this.name = variable d'instance
this.age = age; // this.age = variable d'instance
}
}Créez des étudiants et attribuez leurs données :
Student student1 = Student();
Student student2 = Student();
student1.setInfo('Alice', 20);
student2.setInfo('Bob', 22);Accédez aux variables d'instance en utilisant l'opérateur point :
print('${student1.name} is ${student1.age} at ${student1.school}');
print('${student2.name} is ${student2.age} at ${student2.school}');Sortie :
Alice is 20 at Dart Academy
Bob is 22 at Dart AcademyRemarquez que school est le même pour les deux objets car il a une valeur par défaut, tandis que name et age sont uniques à chaque objet car ils ont été définis individuellement via setInfo.
Défi
FacileComplétez la classe Student dans student.dart :
- Déclarez une variable d'instance
String schoolavec la valeur par défaut'Dart Academy' - Déclarez une variable d'instance
String nameavec la valeur par défaut'' - Déclarez une variable d'instance
int ageavec la valeur par défaut0 - Ajoutez une méthode
setInfoqui prendString nameetint agecomme paramètres et les définit sur l'objet en utilisantthis
Le fichier driver.dart testera votre classe en créant deux étudiants et en affichant leurs informations (verrouillé).
Essayez vous-même
import 'student.dart';
void main() {
Student student1 = Student();
Student student2 = Student();
student1.setInfo('Alice', 20);
student2.setInfo('Bob', 22);
print('${student1.name} is ${student1.age} at ${student1.school}');
print('${student2.name} is ${student2.age} at ${student2.school}');
}
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