Différences
Ci-dessous, les différences entre deux révisions de la page.
| python:poo:poo [2023/07/04 10:03] – [Modifier - Pane] phil | python:poo:poo [2025/06/19 19:29] (Version actuelle) – modification externe 127.0.0.1 | ||
|---|---|---|---|
| Ligne 208: | Ligne 208: | ||
| <pane id=" | <pane id=" | ||
| - | <callout type=" | + | <callout type=" |
| == 1.3.1 Le constructeur == | == 1.3.1 Le constructeur == | ||
| Ligne 282: | Ligne 282: | ||
| Création d'une méthode statique getNombreDeMonstresEnVie() dans la classe Monstre pour connaître le nombre de monstres en vie. | Création d'une méthode statique getNombreDeMonstresEnVie() dans la classe Monstre pour connaître le nombre de monstres en vie. | ||
| - | {{ : | + | {{ : |
| <code python *.py> | <code python *.py> | ||
| class Monstre: | class Monstre: | ||
| Ligne 367: | Ligne 367: | ||
| Création d'une classe “Monstre” contenant trois attributs (+ le constructeur surchargé) et trois méthodes. | Création d'une classe “Monstre” contenant trois attributs (+ le constructeur surchargé) et trois méthodes. | ||
| - | {{ : | + | {{ : |
| <code csharp *.cs> | <code csharp *.cs> | ||
| class Monstre { | class Monstre { | ||
| Ligne 406: | Ligne 406: | ||
| Création d'une méthode statique getNombreDeMonstresEnVie() dans la classe Monstre pour connaître le nombre de monstres en vie. \\ \\ | Création d'une méthode statique getNombreDeMonstresEnVie() dans la classe Monstre pour connaître le nombre de monstres en vie. \\ \\ | ||
| - | {{ : | + | {{ : |
| <code csharp *.cs> | <code csharp *.cs> | ||
| class Monstre { | class Monstre { | ||
| Ligne 493: | Ligne 493: | ||
| </ | </ | ||
| - | {{ : | + | {{ : |
| //Exemple// \\ | //Exemple// \\ | ||
| <code csharp *.cs> | <code csharp *.cs> | ||
| Ligne 630: | Ligne 630: | ||
| ==== 3. Principe d' | ==== 3. Principe d' | ||
| - | <callout type=" | + | <callout type=" |
| < | < | ||
| Ligne 637: | Ligne 637: | ||
| <pane id=" | <pane id=" | ||
| - | {{ : | + | {{ : |
| <callout type=" | <callout type=" | ||
| Ligne 705: | Ligne 705: | ||
| Les attributs de la classe “Monstre” sont masqués. Pour y accéder sans passer par les méthodes de l' | Les attributs de la classe “Monstre” sont masqués. Pour y accéder sans passer par les méthodes de l' | ||
| - | {{ : | + | {{ : |
| <code csharp *.cs> | <code csharp *.cs> | ||
| class Monstre | class Monstre | ||
| Ligne 756: | Ligne 756: | ||
| === 4.1 Association unidirectionnelle === | === 4.1 Association unidirectionnelle === | ||
| - | == 4.1.1 Exemple 1: Association unidirectionnelle | + | == 4.1.1 Exemple 1: Lien d' |
| < | < | ||
| * [[# | * [[# | ||
| Ligne 762: | Ligne 762: | ||
| <pane id=" | <pane id=" | ||
| - | |||
| Lecture du **diagramme de classes** : chaque objet O1 est associé à un objet O2. La réciproque n'est pas vraie. \\ O1 peut envoyer un message à O2 par le biais de l' | Lecture du **diagramme de classes** : chaque objet O1 est associé à un objet O2. La réciproque n'est pas vraie. \\ O1 peut envoyer un message à O2 par le biais de l' | ||
| * il possède un objet (référent) de type O2 dans ses champs | * il possède un objet (référent) de type O2 dans ses champs | ||
| * cet objet est initialisé avec O2 lors de la création de O1 | * cet objet est initialisé avec O2 lors de la création de O1 | ||
| - | {{ : | + | {{ : |
| <code python exemple1.py> | <code python exemple1.py> | ||
| Ligne 797: | Ligne 796: | ||
| * il possède un objet (référent) de type O2 dans ses champs | * il possède un objet (référent) de type O2 dans ses champs | ||
| * cet objet est initialisé avec O2 lors de la création de O1 | * cet objet est initialisé avec O2 lors de la création de O1 | ||
| - | {{ : | + | {{ : |
| <code csharp *.cs> | <code csharp *.cs> | ||
| Ligne 843: | Ligne 842: | ||
| </ | </ | ||
| - | == 4.1.2 Exemple 2 - Association unidirectionnel - lien de composition == | + | == 4.1.2 Exemple 2 - Lien de composition == |
| < | < | ||
| * [[# | * [[# | ||
| Ligne 850: | Ligne 848: | ||
| <pane id=" | <pane id=" | ||
| + | {{ : | ||
| + | Lecture du **diagramme de classes** : Dracula se** compose** de différents organes dont un estomac. Si Dracula disparaît, son estomac aussi. | ||
| + | {{ : | ||
| + | |||
| + | <code python *.py> | ||
| + | class Estomac: | ||
| + | pass | ||
| + | |||
| + | class Monstre: | ||
| + | def __init__(self, | ||
| + | self.__nom = nom | ||
| + | self.__pos_x = x # Un attributs (où variable d' | ||
| + | self.__pos_y = y # est rendu privé par : __ | ||
| + | self.__pointsDeVie = pv # exemple self.__posx | ||
| + | self.__estomac = Estomac() | ||
| + | Monstre.__nombreDeMonstres += 1 | ||
| + | |||
| + | # Programme | ||
| + | dracula = Monstre(" | ||
| + | </ | ||
| </ | </ | ||
| <pane id=" | <pane id=" | ||
| + | {{ : | ||
| + | Lecture du **diagramme de classes** : Dracula se** compose** de différents organes dont un estomac. Si Dracula disparaît, son estomac aussi. | ||
| + | |||
| + | {{ : | ||
| + | <code csharp *.cs> | ||
| + | namespace Enfer | ||
| + | { | ||
| + | class Estomac {// On définira ici les particularité de l' | ||
| + | | ||
| + | class Monstre { | ||
| + | private Estomac estomac; | ||
| + | public Monstre(string lenom, int x = 0, int y = 0, int pv = 100) { | ||
| + | // ... | ||
| + | estomac = new Estomac(); // Chaque monstre possède un estomac | ||
| + | // ... // Si le montre disparaît, l' | ||
| + | } | ||
| + | } | ||
| + | // | ||
| + | public class Program | ||
| + | public static void Main() { | ||
| + | Monstre dracula = new Monstre(" | ||
| + | } | ||
| + | } | ||
| + | } | ||
| + | </ | ||
| </ | </ | ||
| </ | </ | ||
| Ligne 863: | Ligne 906: | ||
| <pane id=" | <pane id=" | ||
| - | {{ : | + | {{ : |
| **Lecture du diagramme de classe** : l' | **Lecture du diagramme de classe** : l' | ||
| - | {{ : | + | {{ : |
| <code python exemple3.py> | <code python exemple3.py> | ||
| Ligne 912: | Ligne 955: | ||
| <pane id=" | <pane id=" | ||
| - | {{ : | + | {{ : |
| **Lecture du diagramme de classe** : l' | **Lecture du diagramme de classe** : l' | ||
| - | {{ : | + | {{ : |
| <code csharp exemple3.cs> | <code csharp exemple3.cs> | ||