python:poo:poo

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
python:poo:poo [2023/07/04 11:04] – [4.1 Association unidirectionnelle] philpython:poo:poo [2023/07/04 11:24] (Version actuelle) – [1.3 Les méthodes] phil
Ligne 208: Ligne 208:
  
 <pane id="tab-python_3"> <pane id="tab-python_3">
-<callout type="warning" color="red" icon="true">**Il n'est pas possible de surcharger une méthode en Python**. À la place, on peut donner des valeurs par défaut aux arguments. Contrairement aux autres langages, l'objet sur lequel la méthode agit doit être nommé explicitement en premier paramètre. </callout>+<callout type="warning" title="self" color="red" icon="true">**Il n'est pas possible de surcharger une méthode en Python**. À la place, on peut donner des valeurs par défaut aux arguments. Contrairement aux autres langages, l'objet sur lequel la méthode agit doit être nommé explicitement en premier paramètre. </callout>
  
 == 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.
  
-{{ :python:poo:monstre2static.png?nolink|}}+{{ :python:poo:monstre2static.png?nolink|Réalisé avec PynSource}}
 <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.
  
-{{ :python:poo:vsclasse3.png?nolink|Réalisé avec VSCode}}+{{ :python:poo:vsclasse3.png?nolink|Réalisé avec Visual Studio}}
 <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. \\ \\
  
-{{ :python:poo:vsclasse4.png?nolink|}}+{{ :python:poo:vsclasse4.png?nolink|Réalisé avec Visual Studio}}
 <code csharp *.cs> <code csharp *.cs>
 class Monstre { class Monstre {
Ligne 493: Ligne 493:
 </code> </code>
  
-{{ :python:poo:dracula.png?nolink&100|}}+{{ :python:poo:dracula.png?nolink&100|Réalisé avec Visual Studio}}
 //Exemple// \\ //Exemple// \\
 <code csharp *.cs> <code csharp *.cs>
Ligne 630: Ligne 630:
  
 ==== 3. Principe d'encapsulation ==== ==== 3. Principe d'encapsulation ====
-<callout type="info" icon="true">En programmation, l’**encapsulation** désigne le principe de **regrouper des données brutes avec un ensemble de routines** permettant de les lire ou de les manipuler. Ce principe est souvent accompagné du **masquage** de ces données brutes afin de s’assurer que l’utilisateur ne contourne pas l’interface qui lui est destinée. <html><a href="https://fr.wikipedia.org/wiki/Encapsulation_(programmation)" target="_blank">Wikipédia</a></html></callout>+<callout type="info" title="Encapsulation" icon="true">En programmation, l’**encapsulation** désigne le principe de **regrouper des données brutes avec un ensemble de routines** permettant de les lire ou de les manipuler. Ce principe est souvent accompagné du **masquage** de ces données brutes afin de s’assurer que l’utilisateur ne contourne pas l’interface qui lui est destinée. <html><a href="https://fr.wikipedia.org/wiki/Encapsulation_(programmation)" target="_blank">Wikipédia</a></html></callout>
  
 <tabs> <tabs>
Ligne 637: Ligne 637:
  
 <pane id="tab-python_6"> <pane id="tab-python_6">
-{{ :python:poo:monstre.png?nolink&150|}}+{{ :python:poo:monstre.png?nolink&150|Réalisé avec PynSource}}
  
 <callout type="warning" icon="true">En Python, pour **MASQUER** les attributs, c'est-à-dire les rendre **privés** afin qu'ils ne soient accessibles qu'aux méthodes de la classe, on fait précéder leur nom d'un double soulignement <nowiki>__</nowiki>.</callout> <callout type="warning" icon="true">En Python, pour **MASQUER** les attributs, c'est-à-dire les rendre **privés** afin qu'ils ne soient accessibles qu'aux méthodes de la classe, on fait précéder leur nom d'un double soulignement <nowiki>__</nowiki>.</callout>
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'objet, on définit les **propriétés** //Pos_x//, //Pos_y// et //PointDeVie// Les attributs de la classe “Monstre” sont masqués. Pour y accéder sans passer par les méthodes de l'objet, on définit les **propriétés** //Pos_x//, //Pos_y// et //PointDeVie//
  
-{{ :python:poo:vsclasse5.png?nolink|}}+{{ :python:poo:vsclasse5.png?nolink|Réalisé avec Visual Studio}}
 <code csharp *.cs> <code csharp *.cs>
 class Monstre class Monstre
Ligne 765: Ligne 765:
   * 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
-{{ :python:poo:pyassociation1.png?nolink|}}+{{ :python:poo:pyassociation1.png?nolink|Réalisé avec PynSource}}
  
 <code python exemple1.py> <code python exemple1.py>
Ligne 796: 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
-{{ :python:poo:vsassociation1.png?nolink |}}+{{ :python:poo:vsassociation1.png?nolink |Réalisé avec Visual Studio}}
  
 <code csharp *.cs> <code csharp *.cs>
Ligne 848: Ligne 848:
  
 <pane id="tab-python_7b"> <pane id="tab-python_7b">
-{{ :python:poo:estomacdracula.png?nolink|}} +{{ :python:poo:estomacdracula.png?nolink|Réalisé avec PynSource}} 
-Lecture du **diagramme de classes** : Dracula se** compose** de différents organes dont un estomac.  +Lecture du **diagramme de classes** : Dracula se** compose** de différents organes dont un estomac. Si Dracula disparaît, son estomac aussi.  
-{{ :python:poo:pycomposition.png?nolink |}}+{{ :python:poo:pycomposition.png?nolink |Réalisé avec PynSource}}
  
 <code python *.py> <code python *.py>
Ligne 871: Ligne 871:
  
 <pane id="tab-csharp_7b"> <pane id="tab-csharp_7b">
-{{ :python:poo:estomacdracula.png?nolink|}} +{{ :python:poo:estomacdracula.png?nolink|Réalisé avec Visual Studio}} 
-Lecture du **diagramme de classes** : Dracula se** compose** de différents organes dont un estomac.  +Lecture du **diagramme de classes** : Dracula se** compose** de différents organes dont un estomac. Si Dracula disparaît, son estomac aussi.  
-{{ :python:poo:umlestomac.png?nolink |}}+ 
 +{{ :python:poo:umlestomac.png?nolink |Réalisé avec Visual Studio}}
 <code csharp *.cs> <code csharp *.cs>
 namespace Enfer namespace Enfer
Ligne 905: Ligne 906:
  
 <pane id="tab-python_7c"> <pane id="tab-python_7c">
-{{ :python:poo:vampireverre.png?nolink&150|}}+{{ :python:poo:vampireverre.png?nolink&150|Réalisé avec PynSource}}
 **Lecture du diagramme de classe** : l'objet verreDeSang est passé **provisoirement** à l'objet Dracula à l'aide de sa méthode boit. Contrairement à l'exemple précédent l'objet verreDeSang n'est pas associé à un lien permanent dans la classe Monstre. En effet, Dracula n'aura pas toujours un verre à la main ! **Lecture du diagramme de classe** : l'objet verreDeSang est passé **provisoirement** à l'objet Dracula à l'aide de sa méthode boit. Contrairement à l'exemple précédent l'objet verreDeSang n'est pas associé à un lien permanent dans la classe Monstre. En effet, Dracula n'aura pas toujours un verre à la main !
-{{ :python:poo:pyassociation2.png?nolink |}}+{{ :python:poo:pyassociation2.png?nolink |Réalisé avec PynSource}}
  
 <code python exemple3.py> <code python exemple3.py>
Ligne 954: Ligne 955:
  
 <pane id="tab-csharp_7c"> <pane id="tab-csharp_7c">
-{{ :python:poo:vampireverre.png?nolink&150|}}+{{ :python:poo:vampireverre.png?nolink&150|Réalisé avec Visual Studio}}
 **Lecture du diagramme de classe** : l'objet verreDeSang est passé **provisoirement** à l'objet Dracula à l'aide de sa méthode boit. Contrairement à l'exemple précédent l'objet verreDeSang n'est pas associé à un lien permanent dans la classe Monstre. En effet, Dracula n'aura pas toujours un verre à la main ! **Lecture du diagramme de classe** : l'objet verreDeSang est passé **provisoirement** à l'objet Dracula à l'aide de sa méthode boit. Contrairement à l'exemple précédent l'objet verreDeSang n'est pas associé à un lien permanent dans la classe Monstre. En effet, Dracula n'aura pas toujours un verre à la main !
-{{ :python:poo:VSAssociation2.png?nolink |}}+{{ :python:poo:VSAssociation2.png?nolink |Réalisé avec Visual Studio}}
  
 <code csharp exemple3.cs> <code csharp exemple3.cs>
  • python/poo/poo.1688461447.txt.gz
  • Dernière modification : 2023/07/04 11:04
  • de phil