CodeGym /Cours Java /Frontend SELF FR /Constructeurs et méthodes

Constructeurs et méthodes

Frontend SELF FR
Niveau 39 , Leçon 5
Disponible

6.1 Constructeurs de classes

Les constructeurs et les méthodes des classes sont des éléments fondamentaux de la programmation orientée objet en JavaScript. Ils permettent de créer et d'initialiser des objets, ainsi que de définir leur comportement. Voyons comment fonctionnent les constructeurs et les méthodes des classes et comment les utiliser.

Qu'est-ce qu'un constructeur ?

Un constructeur est une méthode spéciale d'une classe qui est appelée lors de la création d'une nouvelle instance de la classe. Il est utilisé pour initialiser un objet, définir les valeurs de ses propriétés et effectuer d'autres tâches initiales.

Définition d'un constructeur

Le constructeur est défini à l'aide du mot-clé constructor. À l'intérieur du constructeur, le mot-clé this permet d'accéder aux propriétés et méthodes de l'objet.

Syntaxe :

    
      class ClassName {
        constructor(paramètres) {
          // Initialisation de l'objet
        }
      }
    
  

Exemple :

Dans la classe Person, la méthode constructor prend deux paramètres : name et age.

Ces paramètres sont utilisés pour initialiser les propriétés name et age de l'objet créé.

JavaScript
    
      class Person {
        constructor(name, age) {
          this.name = name;
          this.age = age;
        }
      }

      const person1 = new Person('Alice', 30);
      const person2 = new Person('Bob', 25);

      console.log(person1.name); // Affichera: Alice
      console.log(person2.age);  // Affichera: 25
    
  

Constructeur par défaut

Si le constructeur n'est pas explicitement défini, JavaScript crée automatiquement un constructeur par défaut vide.

Exemple :

JavaScript
    
      class Animal {}

      const animal = new Animal();
      console.log(animal); // Affichera le contenu de la classe Animal {}
    
  

4.2 Méthodes des classes

Les méthodes des classes sont définies à l'intérieur du corps de la classe et fournissent des fonctionnalités aux objets créés par cette classe. Les méthodes sont automatiquement ajoutées au prototype de la classe, permettant ainsi à toutes les instances de la classe de les hériter et de les utiliser.

Syntaxe :

    
      class ClassName {
        constructor(paramètres) {
          // Initialisation de l'objet
        }
        
        méthode1() {
          // Corps de la méthode
        }
        
        méthode2() {
          // Corps de la méthode
        }
      }
    
  

Exemple :

JavaScript
    
      class Car {
        constructor(brand, model) {
          this.brand = brand;
          this.model = model;
          this.mileage = 0;
        }

        drive(distance) {
          this.mileage += distance;
          console.log(`${this.brand} ${this.model} drove ${distance} miles. Total mileage: ${this.mileage}`);
        }

        getDetails() {
          return `${this.brand} ${this.model}, Mileage: ${this.mileage}`;
        }
      }

      const myCar = new Car('Toyota', 'Camry');
      myCar.drive(50); // "Toyota Camry drove 50 miles. Total mileage: 50"

      console.log(myCar.getDetails()); // "Toyota Camry, Mileage: 50"
    
  

Explication :

  • Dans la classe Car, deux méthodes sont définies : drive() et getDetails()
  • La méthode drive() augmente le kilométrage de la voiture et affiche des informations sur la distance parcourue
  • La méthode getDetails() renvoie une chaîne d'informations sur la voiture

6.3 Méthodes privées

Avec l'introduction des nouvelles spécifications ECMAScript, il est désormais possible de créer des méthodes et des propriétés privées qui ne sont pas accessibles en dehors de la classe. Pour cela, le symbole # est utilisé comme partie du nom.

Exemple de méthodes et propriétés privées :

JavaScript
    
      class BankAccount {
        #balance = 0;

        constructor(initialBalance) {
          this.#balance = initialBalance;
        }

        #validateAmount(amount) {
          if (amount <= 0) {
            throw new Error('Amount must be positive.');
          }
        }

        deposit(amount) {
          this.#validateAmount(amount);
          this.#balance += amount;
          console.log(`Deposited ${amount}. New balance: ${this.#balance}`);
        }

        withdraw(amount) {
          this.#validateAmount(amount);
          if (amount > this.#balance) {
            throw new Error('Insufficient funds.');
          }
          this.#balance -= amount;
          console.log(`Withdrew ${amount}. New balance: ${this.#balance}`);
        }

        getBalance() {
          return this.#balance;
        }
      }

      const account = new BankAccount(100);
      account.deposit(50); // Affichera: Deposited 50. New balance: 150
      account.withdraw(30); // Affichera: Withdrew 30. New balance: 120
      console.log(account.getBalance()); // Affichera: 120

      // Tenter d'accéder à une méthode ou une propriété privée entraînera une erreur
      account.#balance; // SyntaxError
      account.#validateAmount(50); // SyntaxError
    
  
1
Опрос
Introduction aux classes,  39 уровень,  5 лекция
недоступен
Introduction aux classes
Introduction aux classes
Commentaires
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION