Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédenteDernière révisionLes deux révisions suivantes | ||
python:poo:poo [2023/07/04 10:03] – [Modifier - Pane] phil | python:poo:poo [2023/07/04 11:23] – [3. Principe d'encapsulation] phil | ||
---|---|---|---|
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> |