Partielo | Créer ta fiche de révision en ligne rapidement

Les différents paradigmes de programmation Zoom sur la programmation objet

Définition

Paradigme de programmation
La programmation consiste en général à manipuler des informations en entrée dans le but de produire d'autres informations en sortie. Un paradigme de programmation est un style ou une façon de programmer (approche de la résolution des problèmes et organisation du code)
Programmation orientée objet (POO)
La programmation orientée objet est un paradigme de programmation qui utilise des objets pour représenter des données et des fonctionnalités. Un objet est une instance d'une classe, qui est un ensemble de propriétés et de méthodes. Créée dans les années 1960.

Les différents paradigmes de programmation

Programmation impérative

 C’est la manière la plus naturelle d’imaginer un algorithme. Les séquences d’instructions s’exécutent les unes après les autres. On peut utiliser des affectations, des structures alternatives (if) et des structures répétitives (boucles). Il utilisé pour débuter dans la programmation.

Programmation fonctionnelle

Pour que ce soit purement du paradigme fonctionnel, il faut que tout le programme soit écrit avec des fonctions, en particulier ce paradigme interdit l’utilisation des affectations. On l'utilise dans le cadre d'une récursivité (c’est à dire une fonction qui s’appelle elle même)

Programmation orientée objet

La programmation orientée objet (POO) repose sur l’idée de créer des “moules” appelés classes permettant de créer des objets ayant des caractéristiques en commun.

Ex: classe véhicule, objets : voiture, avion, …, méthodes : actionner, modifier

C’est un paradigme qui peut se suffire à lui-même mais il est souvent imbriqué avec le paradigme impératif.

Zoom sur la programmation orientée objet

Classes et objets

Dans la POO, une classe (un "moule") est une structure qui permet de créer des objets informatiques/instanciations de la classe (qui modélisent des objets du monde réel). Elle définit les attributs et les méthodes que ses objets peuvent posséder.

  • Attributs: les propriétés, les caractéristiques de l'objet
  • Méthodes : les fonctions, actions, comportements que l'objet aura ou pourra effectuer.

Un objet est une instance spécifique d'une classe, et plusieurs objets peuvent être créés à partir de la même classe avec des valeurs différentes pour leurs attributs.

Création d'une classe

  • Nom: commence par une majuscule par convention
  • Méthode constructeur:  définir les attributs associés à la classe
  • Self: désigne l’objet auquel s’appliquera la méthode

Ex:

class Carte: # définition de la classe

def __init__(self, val, fam): # il s'agit de la méthode constructeur

self.valeur = val # création du premier attribut

self.famille = fam # création du deuxième attribut


  • Créer un objet:

 c1 = Carte("9", "Pique") # création d'un objet de la classe Carte nommé c1

print(c1) # permet d'obtenir l'adresse mémoire de l'objet c1

print(c1.valeur) # on accède à la valeur des attribut par: nom_objet.nom_attribut (opérateur d'accessibilité)

print(c1.famille)


Encapsulation

  • Accesseurs: On utilise rarement l’opérateur d’accessibilité pour accéder aux attributs d'un objet. On utilisera donc plutôt des méthodes. C’est le principe de l’encapsulation. Pour obtenir la valeur d’un attribut, on utilisera une méthode des accesseurs (ou “getters”). -> getNom_attribut()


  • Mutateur: Pour modifier la valeur d’un attribut, on utilisera une méthode des mutateurs (ou “setters”). -> setNom_attribut()



Agrégation

Comment combiner les classes? C’est la notion d’agrégation. Bien souvent un objet est lui même constitué de composants. Par exemple un jeu de cartes est constitué de cartes. On dit que le jeu de cartes est un objet agrégat et qu’une carte est un objet composant.


Concepts associés à la POO


  • Encapsulation: Regrouper les attributs et méthodes d'un objet pour cacher son fonctionnement interne en ne proposant à l'utilisateur qu'un accès restreint et contrôlé (sous forme d'une interface via les accesseurs et les mutateurs). L'encapsulation permet donc de garantir l'intégrité des données contenues dans l'objet.

  • Héritage: Permet de créer un objet à partir d'un autre objet. Ce nouvel objet va hériter des attributs et des méthodes de l'objet "père" ou "ancêtre", on pourra même modifier et ajouter d'autres propriétés au nouvel objet. Par ce moyen on peut décrire toute une hiérarchie d'objets de plus en plus spécialisé.

  • Polymorphisme: Le polymorphisme est la capacité d'utiliser des objets de différentes classes par l'intermédiaire d'une même interface. Cela signifie qu'une seule méthode peut fonctionner de manière polymorphique pour traiter des objets de classes dérivées différentes. Ex: jeu d'échec où les pièces ont des façons différentes de se déplacer.

A retenir :

La programmation orientée objet est un paradigme de programmation qui utilise des objets pour modéliser le monde réel. Elle s'appuie sur des concepts clés tels que les classes, les objets, l'encapsulation, l'héritage et le polymorphisme. Ce paradigme facilite la réutilisation du code et la gestion des grands projets logiciels, rendant la programmation plus intuitive et plus proche de la logique humaine.

Les différents paradigmes de programmation Zoom sur la programmation objet

Définition

Paradigme de programmation
La programmation consiste en général à manipuler des informations en entrée dans le but de produire d'autres informations en sortie. Un paradigme de programmation est un style ou une façon de programmer (approche de la résolution des problèmes et organisation du code)
Programmation orientée objet (POO)
La programmation orientée objet est un paradigme de programmation qui utilise des objets pour représenter des données et des fonctionnalités. Un objet est une instance d'une classe, qui est un ensemble de propriétés et de méthodes. Créée dans les années 1960.

Les différents paradigmes de programmation

Programmation impérative

 C’est la manière la plus naturelle d’imaginer un algorithme. Les séquences d’instructions s’exécutent les unes après les autres. On peut utiliser des affectations, des structures alternatives (if) et des structures répétitives (boucles). Il utilisé pour débuter dans la programmation.

Programmation fonctionnelle

Pour que ce soit purement du paradigme fonctionnel, il faut que tout le programme soit écrit avec des fonctions, en particulier ce paradigme interdit l’utilisation des affectations. On l'utilise dans le cadre d'une récursivité (c’est à dire une fonction qui s’appelle elle même)

Programmation orientée objet

La programmation orientée objet (POO) repose sur l’idée de créer des “moules” appelés classes permettant de créer des objets ayant des caractéristiques en commun.

Ex: classe véhicule, objets : voiture, avion, …, méthodes : actionner, modifier

C’est un paradigme qui peut se suffire à lui-même mais il est souvent imbriqué avec le paradigme impératif.

Zoom sur la programmation orientée objet

Classes et objets

Dans la POO, une classe (un "moule") est une structure qui permet de créer des objets informatiques/instanciations de la classe (qui modélisent des objets du monde réel). Elle définit les attributs et les méthodes que ses objets peuvent posséder.

  • Attributs: les propriétés, les caractéristiques de l'objet
  • Méthodes : les fonctions, actions, comportements que l'objet aura ou pourra effectuer.

Un objet est une instance spécifique d'une classe, et plusieurs objets peuvent être créés à partir de la même classe avec des valeurs différentes pour leurs attributs.

Création d'une classe

  • Nom: commence par une majuscule par convention
  • Méthode constructeur:  définir les attributs associés à la classe
  • Self: désigne l’objet auquel s’appliquera la méthode

Ex:

class Carte: # définition de la classe

def __init__(self, val, fam): # il s'agit de la méthode constructeur

self.valeur = val # création du premier attribut

self.famille = fam # création du deuxième attribut


  • Créer un objet:

 c1 = Carte("9", "Pique") # création d'un objet de la classe Carte nommé c1

print(c1) # permet d'obtenir l'adresse mémoire de l'objet c1

print(c1.valeur) # on accède à la valeur des attribut par: nom_objet.nom_attribut (opérateur d'accessibilité)

print(c1.famille)


Encapsulation

  • Accesseurs: On utilise rarement l’opérateur d’accessibilité pour accéder aux attributs d'un objet. On utilisera donc plutôt des méthodes. C’est le principe de l’encapsulation. Pour obtenir la valeur d’un attribut, on utilisera une méthode des accesseurs (ou “getters”). -> getNom_attribut()


  • Mutateur: Pour modifier la valeur d’un attribut, on utilisera une méthode des mutateurs (ou “setters”). -> setNom_attribut()



Agrégation

Comment combiner les classes? C’est la notion d’agrégation. Bien souvent un objet est lui même constitué de composants. Par exemple un jeu de cartes est constitué de cartes. On dit que le jeu de cartes est un objet agrégat et qu’une carte est un objet composant.


Concepts associés à la POO


  • Encapsulation: Regrouper les attributs et méthodes d'un objet pour cacher son fonctionnement interne en ne proposant à l'utilisateur qu'un accès restreint et contrôlé (sous forme d'une interface via les accesseurs et les mutateurs). L'encapsulation permet donc de garantir l'intégrité des données contenues dans l'objet.

  • Héritage: Permet de créer un objet à partir d'un autre objet. Ce nouvel objet va hériter des attributs et des méthodes de l'objet "père" ou "ancêtre", on pourra même modifier et ajouter d'autres propriétés au nouvel objet. Par ce moyen on peut décrire toute une hiérarchie d'objets de plus en plus spécialisé.

  • Polymorphisme: Le polymorphisme est la capacité d'utiliser des objets de différentes classes par l'intermédiaire d'une même interface. Cela signifie qu'une seule méthode peut fonctionner de manière polymorphique pour traiter des objets de classes dérivées différentes. Ex: jeu d'échec où les pièces ont des façons différentes de se déplacer.

A retenir :

La programmation orientée objet est un paradigme de programmation qui utilise des objets pour modéliser le monde réel. Elle s'appuie sur des concepts clés tels que les classes, les objets, l'encapsulation, l'héritage et le polymorphisme. Ce paradigme facilite la réutilisation du code et la gestion des grands projets logiciels, rendant la programmation plus intuitive et plus proche de la logique humaine.
Retour

Actions

Actions