Back

Classes et objets dans dart

introduction-a-la-programmation-orientee-objet-dans-dart

  1. Présentation

    • Les classes et les objets Dart sont les concepts fondamentaux du langage de programmation orienté objet.
    • Une classe est un plan ou un prototype défini par l’utilisateur qui est utilisé pour créer des objets.
    • Un objet représente des entités de la vie réelle. Les objets déterminent le comportement d’une classe.
  2. Déclarer et instancier une classe dans dart

    • Structure générale d’une classe Dart
      • Classes et objets dans dart

    • Déclarer une classe dans dart
      • Les classes dans Dart sont déclarées à l’aide du mot-clé class :
      • classe Personne{
        /* ... */
        }

      • La déclaration de classe comprend le nom de la classe, l’en-tête de la classe (spécifiant ses paramètres de type, le constructeur principal, etc.) et le corps de la classe, entourés d’accolades.
      • L’en-tête et le corps sont facultatifs : si la classe n’a pas de corps, les accolades peuvent être omises. personne de classe ;
      • Une définition de classe commence par le mot clé class suivi du nom de la classe ; et le corps de la classe entouré d’une paire d’accolades.
      • Syntaxe -1-

      • class class_name {  
           <fields> 
           <getters/setters> 
           <constructors> 
           <functions> 
        }

      • Syntaxe -2-

      • class class_name {
           // Properties (Variables)
           // Constructor
           // Methods or Functions
           // Getters and Setters
        }

      • Explication

        • Champs(<fields>) – Un champ est une variable déclarée dans une classe. Les champs représentent des données relatives aux objets.
        • Setters et Getters – Permet au programme d’initialiser et de récupérer les valeurs des champs d’une classe. Un getter/setter par défaut est associé à chaque classe. Cependant, ceux par défaut peuvent être remplacés en définissant explicitement un setter/getter.
        • Constructeurs (<constructors>) – responsables de l’allocation de mémoire pour les objets de la classe.
        • Fonctions (<functions>)– Les fonctions représentent les actions qu’un objet peut entreprendre. Ils sont aussi parfois appelés méthodes
    • Création d’instances de classes dans dart
      • Après avoir créé la classe, nous pouvons créer une instance ou un objet de cette classe dont nous voulons accéder à ses champs et fonctions.
        • var p1 = Personne();
        • var p2 = Personne();
      • Le code suivant a le même effet, mais utilise le mot clé facultatif new avant le nom du constructeur :
        • var p1 = nouvelle Personne();
        • var p2 = nouvelle Personne();
  3. Exemples

    • Exemple -1-

    • void main() {
        var premiereVoiture = Voiture();
      
        premiereVoiture.nom = 'Mazda';
        premiereVoiture.couleur = 'Blanche';
      
        print(
            'Le nom de la 1ère Voiture est ${premiereVoiture.nom} et la couleur est ${premiereVoiture.couleur}');
        premiereVoiture.conduite();
      
        var deuxiemeVoiture = Voiture();
        deuxiemeVoiture.nom = 'Honda Fit';
        deuxiemeVoiture.couleur = 'Noir';
        print(
            'Le nom de la 2ème Voiture est ${deuxiemeVoiture.nom} et la couleur est ${deuxiemeVoiture.couleur}');
        deuxiemeVoiture.frein();
      }
      
      class Voiture {
        //Propriétés
        late String couleur, nom;
        //Méthodes
        void conduite() {
          print('La voiture roule');
        }
      
        void frein() {
          print('Le frein a été appliqué');
        }
      }
      
    • Exemple -2-

    • class Etudiant {
        var name;
        var age;
        var roll_num;
        displayEtudiantInfo() {
          print('Le nom de l\'étudiant est : ${name}');
          print('L\'âge de l\'étudiant est : ${age}');
          print('Le matricule de l\'étudiant est : ${roll_num}');
        }
      }
      
      void main() {
        Etudiant S1 = new Etudiant();
        S1.name = "Emma";
        S1.age = 28;
        S1.roll_num = 2014;
        S1.displayEtudiantInfo();
      }
      
    • Explication

      • Dans le deuxième exemple, nous avons créé la classe Etudiant dans Dart avec le mot-clé “class” suivi du nom de la classe.
      • Ensuite, à l’intérieur de cette classe, nous avons défini trois variables membres, c’est-à-dire name, age et roll_num.
      • Nous avons également créé une fonction membre de cette classe nommée displayStudentInfo(). Cette fonction n’a pas de type de retour et n’accepte aucun paramètre.
      • Dans cette fonction, nous affichons simplement les valeurs des variables membres sur le terminal. Maintenant, pour accéder aux variables membres et à la fonction membre de la classe Etudiant, nous avons créé un objet de cette classe, “S1“, dans notre fonction “main()” en utilisant le mot-clé “new“.
      • Ensuite, nous avons voulu initialiser toutes les variables membres de cette classe.
      • Pour cela, nous avons initialisé ces variables membres une par une en y accédant avec l’objet de la classe Etudiant que nous avons créé.
      • Nous avons attribué des valeurs aléatoires à ces trois variables membres. Ensuite, nous venons d’appeler la fonction “displayStudentInfo()” de la classeEtudiant à l’aide de son objet pour afficher toutes les informations de l’élève spécifié sur le terminal.
  4. Applications

    • App01
      • Soit le programme suivant :
      • Refactorisez ce code en créant une classe Person qui contiendra les propriétés name, age, height.
      • Cette classe devrait avoir une méthode printDescription() qui peut être utilisée pour imprimer le nom, l’âge et la taille comme dans le programme ci-contre.
      • Une fois cela fait, créez deux instances de Person et utilisez-les pour appeler la méthode printDescription() que vous venez de créer.
      • void main() {
          final person = {
            'name': 'Mohamed',
            'age': 36,
            'height': 1.84
          };
          print("Je m'appelle ${person['name']}. J'ai ${person['age']} ans, je mesure ${person['height']} mètres.");
        }
          Solution
          class Person {
            Person({
              required this.name,
              required this.age,
              required this.height,
            });
            final String name;
            final int age;
            final double height;
          
            void printDescription() {
              print("Je m'appelle ${person['name']}. J'ai ${person['age']} ans, je mesure ${person['height']} mètres.");
            }
          }
          void main() {
            final p1 = Person(name: 'Mohamed', age: 36, height: 1.84);
            final p2 = Person(name: 'Mouna', age: 44, height: 1.76);
            p1.printDescription();
            p2.printDescription();
          }



Riadh HAJJI

Abonnez vous à notre chaîne YouTube gratuitement