coffreobsidian/webdev/Rappel de certaines notions WLangage et Classes.md
2025-03-24 17:36:01 +01:00

76 lines
2.2 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

---
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 à lattribut de lobjet 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 dimplé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
```
---