Wallon
licence

Numérique et Sciences Informatiques en Terminale


TP
TP

Structures de données

Les Classes



1 ) introduction

Jusqu'à présent, chaque programme a été décomposé en plusieurs fonctions réalisant des tâches simples. Mais, quand plusieurs programmeurs travaillent en même temps sur un projet, il est nécessaire de travailler ou de programmer autrement afin d’éviter les problèmes de conflits qui peuvent survenir avec des variables globales (qui pourraient etre modifiées par erreur) ou des problèmes entre les fonctions.
Les classes vont permettre d'utiliser des objets existants ou des fonctions existantes pour creer (construire) de nouveaux objets.
Les Classes : En programmation orientée objet, la déclaration d'une classe regroupe des membres, méthodes et propriétés (attributs) communs à un ensemble d'objets.
La classe déclare, d'une part, des attributs représentant l'état des objets et, d'autre part, des méthodes représentant leur comportement.

vocabulaire:

  • Le type de données avec ses caractéristiques et ses actions possibles s’appelle classe.
  • Les caractéristiques (ou variables) de la classe s’appellent les attributs.
  • Les actions possibles à effectuer avec la classe s’appellent les méthodes.
  • La classe définit donc les attributs et les actions possibles sur ces attributs, les méthodes.
  • Un objet du type de la classe s’appelle une instance de la classe et la création d’un objet d’une classe s’appelle une instanciation de cette classe.
  • Lorsqu’on définit les attributs d’un objet de la classe, on parle d’instanciation.
  • On dit que les attributs et les méthodes sont encapsulés dans la classe.
Pour bien comprendre ce vocabulaire voici quelques vidéos qui vont vous guider dans l'élaboration de vos premières classes

2 ) Création d’une classe

Enoncé :
1) Nous allons creer une classe cercle en langage python afin de construire un cercle avec l'attribut rayon.
2) Nous aurons besoin de fabriquer une méthode périmètre ainsi qu'une méthode aire pour calculer ces différents paramètres du cercle et une méthode volume pour calculer le volume de la sphère de ce rayon.
3) Nous creerons ensuite une classe fille Cylindre qui héritera de la classe cercle avec en plus un attribut hauteur et une méthode Volume_cylindre qui permettra de calculer le volume du cylindre engendré par ce cercle

python

a) le constructeur :

Après avoir créé la classe avec l'instruction class et l'avoir nommée ,ici Cercle, (avec une majuscule par convention), on écrit le constructeur, toujours de la même maniere :
def __init__(self,le ou les attributs séparés par des virgules):(ne pas oublier ces 2 points)

De chaque coté du init, il y a un double underscore (Alt Gr 8 sur la majorité des claviers) indispensable quelle que soit la classe créée.

b) l'attribut :

monCercle=Cercle(3) permet de créer l'objet Cercle de rayon 3.
Le rayon, c'est l'attribut, c'est ce qui va permettre de calculer les autres paramètres.

c) les méthodes:

les différents paramètres du cercle que l'on va calculer à partir de cet attribut, s'appellent les méthodes.
On donne des méthodes à la classe Cercle. Elles se définissent un peu comme des fonctions.

exemple : la méthode Perimetre est codée comme suit :

def Perimetre(self):
  return round(2*pi*(self.rayon),2)

Nous avons aussi la méthode aire et la méthode volume qui apparaissent dans notre classe.

3 ) Héritage d’une classe

Pour continuer notre exercice et créer une classe fille Cylindre, qui va hériter de la classe Cercle et donc de tous ses attributs et méthodes, on procède comme suit :

python

python



— Un Accesseur ou «getter» est une fonction qui retourne la valeur d’un attribut, de l’objet.
Par convention son nom est généralement sous la forme :getNom_attribut().
— Un Mutateur ou setter est une procédure qui permet de modifier la valeur d’un attribut, d’un objet.
Son nom est généralement sous la forme :setNom_attribut()

4 ) Notion d’agrégation

La conception d’une classe a pour but généralement de pouvoir créer des objets qui suivent tous le même modèle de fabrication.
Un objet dans la vraie vie, par exemple votre stylo, est composé d’autres objets : une pointe (ou plume), un réservoir d’encre, éventuellement un capuchon et un ressort....
Votre stylo est ce qu’on appelle un objet agrégat et son réservoir d’encre est donc un objet composant.

Exemple d’une agrégation par valeur : En parlant de stylo, voici un exemple très simple. Commençons par la définition de la classe composant Reservoir :

python

Ensuite on s'occupe d'écrire la classe Stylo, fille de Reservoir et qui récupère donc toutes les caractéristiques de la classe Reservoir.

python

Il reste à écrire la classe principale (celle qui a crée le besoin : la couleur du stylo). Cette classe va utiliser tout ce qu'elle récupère des autres. Elle a souvent le nom anglais "main" qui signifie : "principale".

python

5 ) Exercices

Écrivez une fonction distance() qui permette de calculer la distance entre deux points. (Il faudra vous rappeler le théorème de Pythagore !) Cette fonction attendra évidemment deux objets Point() comme arguments. Il faut donc définir une classe Point qui va permettre d'afficher les coordonnées des points utiles.



loi
loi
loi








TP
TP