Vous êtes sur la page 1sur 3

Révisions NSI :

Historique de la POO :
▪ Simula 67 (1967) : premier langage avec un modèle de classe
▪ Smalltalk 71 (1972) : pose les principes de la POO
▪ à partir des années 80 : éclosion des langages objets (C++ 1983, ▪ années 90 : expansion de la
POO

Exemples d'objets :
▪ point (x,y)
▪ vecteur (x,y)
▪ nombre complexe (x,y)
▪ liste chaînée
▪ un contact (nom, prénom, numéro, ...)

Vocabulaire de l'objet :
▪ objet : structure de données complexe
▪ attributs : paramètres d'un objet
▪ méthodes : fonctions liées à un objet
▪ classe : création d'un nouveau type d'objet avec ses attributs et les méthodes qui agissent dessus.
▪ constructeur : méthode particulière d'une classe qui permet d'initialiser les attributs d'un objet
▪ héritage : une nouvelle classe créée à partir d'une classe existante conserve les méthodes de cette
classe
▪ encapsulation : les attributs (variables) de l'objet sont enfermés dans l'objet et sont distincts des
variables globales. L'interface de la classe permet d'y avoir accès.
▪ instanciation : création d'un objet à partir d'une classe.

Implémentation d'une classe en Python :


▪ En Python, une classe est déclarée par : class NomClasse : (majuscule obligatoire pour le nom de
la classe).
▪ Dans une classe, self fait référence à l'objet (c'est une convention, il est vivement conseillé de la
respecter)
▪ Le constructeur de la classe est défini par : def __init__(self) : et n'a pas de retour.
▪ Les méthodes d'une classe ont obligatoirement 'self' comme premier paramètre), et sont définies à
l'intérieur de la classe.
▪ Les attributs d'une classe n'ont pas besoin d'être déclarés (pas recommandé)
▪ On peut accéder directement à un attribut par objet.attribut (liberté donnée par Python), mais ce
n'est pas recommandé
▪ On peut redéfinir les opérateurs classiques (+,-,*, print)
Les piles
1.1 Principe :
On peut faire le rapprochement avec une pile d'assiettes. Dans une pile, les données sont empilées
les unes sur les autres (au sommet de la pile) et la dernière donnée empilée est aussi la première à
sortir (on sort d'une pile par le haut).

1.2 Interface d'une pile


Les opérations de base sur une pile sont :
▪ empiler(valeur) : mettre une valeur sur la pile
▪ dépiler() : renvoie la valeur du haut de la pile, et la retire de la pile

Les opérations utiles sont :


▪ taille() : renvoie le nombre d'élément dans la pile
▪ pile_est_vide() : renvoie un booléen pour savoir si la pile est vide

1.3 Implémentation en Python :


En Python, une pile peut être implémentée avec une liste, avec les opérations restrictives propres à
une pile. La fonction pop() est utile.

2. Les files
2.1 Principe :
-On peut faire le rapprochement avec une file d'attente. Dans une file, les données sont rangées dans
l'ordre où elles arrivent (donc en queue de file), et la première donnée arrivée (en tête de file) est
aussi la première à sortir.
-Les données dans une file ne sont pas stockées indéfiniment. Lorsque qu'une donnée sort, elle est
supprimée de la file. Une file est donc basée sur le mode FIFO (First In, First Out).

2.2 Interface d'une file :


Les opérations de base sur une file sont :
▪ entrer(valeur) : mettre une valeur dans la file
▪ sortir() : renvoie la valeur de tête de la file, et la retire de la file

Les opérations utiles sont :


▪ taille() : renvoie le nombre d'élément dans la file
▪ file_est_vide() : renvoie un booléen pour savoir si la file est vide

2.3 Implémentation en Python :


En Python, une file peut être implémentée avec une liste, avec les opérations restrictives propres à
une file. La fonction pop() est utile.
Implémentation d'une classe en Python :
▪ En Python, une classe est déclarée par : class NomClasse : (majuscule obligatoire pour le nom de
la classe).
▪ Dans une classe, self fait référence à l'objet (c'est une convention, il est vivement conseillé de la
respecter)
▪ Le constructeur de la classe est défini par : def __init__(self) : et n'a pas de retour.
▪ Les méthodes d'une classe ont obligatoirement 'self' comme premier paramètre), et sont définies à
l'intérieur de la classe.
▪ Les attributs d'une classe n'ont pas besoin d'être déclarés (pas recommandé)
▪ On peut accéder directement à un attribut par objet.attribut (liberté donnée par Python), mais ce
n'est pas recommandé
▪ On peut redéfinir les opérateurs classiques (+,-,*, print)

Vous aimerez peut-être aussi