
---
Merci pour ce JSON très bien structuré, il va grandement faciliter l'analyse. Voici ce que nous allons faire étape par étape, comme demandé :

---

## 🧠 1. Rappel des notions « Récupération / Affectation » en WLangage

|Terme simplifié|Nom WLangage réel|Description|
|---|---|---|
|Récupération|`RENVOYER(...)`|Renvoie une valeur depuis une fonction / méthode, équivalent au `return` Python.|
|Affectation|`variable = valeur`|Affectation d'une valeur à une variable, comme en Python (`var = value`).|
|Accès attribut|`:attribut`|Accès à l’attribut de l’objet courant (`self.attribut` en Python).|
|Paramètre|`LOCAL nom est un type`|Déclaration de paramètres, équivalent à `def f(nom: type)` en Python.|

Exemples :

```wlanguage
PROCÉDURE maFonction()
sTexte est une chaîne = "Bonjour"
RENVOYER(sTexte)
```

```python
def maFonction():
    sTexte = "Bonjour"
    return sTexte
```

---

## 🧱 2. Rappel complet des concepts de **classes** en WLangage

Le système objet de WLangage est inspiré d'autres langages objets, mais avec quelques spécificités :

|Élément|En WLangage|Équivalent Python|Remarques|
|---|---|---|---|
|Déclaration de classe|`CLASSE MaClasse`|`class MaClasse:`|Identique|
|Héritage|`CLASSE MaClasse HÉRITE MaBase`|`class MaClasse(MaBase):`|Identique|
|Attribut privé|`x est un entier (PRIVÉ)`|`self._x: int` ou `__x`|Respect de l'encapsulation|
|Attribut protégé|`x (PROTÉGÉ)`|`self._x`|Convention|
|Attribut public|`x` ou `x (PUBLIC)`|`self.x`|Accès libre|
|Constructeur|`PROCÉDURE Constructeur()`|`def __init__(self):`|Spécifique|
|Destructeur|`PROCÉDURE Destructeur()`|`def __del__(self):`|Rarement utile en Python|
|Méthode virtuelle|`PROCÉDURE VIRTUELLE ...`|Méthode définie mais appelée dans une classe dérivée||
|Méthode abstraite|`PROCÉDURE ABSTRAITE ...`|`@abstractmethod` (via `abc` en Python)|Pas d’implémentation ici|

---

### Exemple WLangage :

```wlanguage
CLASSE MaClasse
    x est un entier (PROTÉGÉ)

    PROCÉDURE Constructeur()
    x = 5

    PROCÉDURE getX() : entier
    RENVOYER(x)
FIN
```

### Équivalent Python :

```python
class MaClasse:
    def __init__(self):
        self._x = 5

    def get_x(self) -> int:
        return self._x
```

---
