En tant qu'utilisateur nous avons déjà utilisé des objets en Python, par exemple, la fonction islower() appliquée à une chaine de caractères contenant au moins une lettre , par exemple si s = 'a', alors s.islower() retourne True
On dit que islower() est une méthode de la classe String et s est un objet de cette classe
Avec tkinter nous avons aussi utilisé la fonction create_rectangle() pour dessiner des carrés de la manière suivante, zoneGraphique.create_rectangle()
A chaque fois la syntaxe est objet.fonction(), mais qu'est ce qu'un objet ?
Un objet est une instanciation d'une classe, ce qui signifie qu'un objet est construit à partir d'un prototype appelé classe.La notion de fonction est une étape dans la modularisation d'un programme, mais il reste le problème des variables globales et aussi le travail en équipe
Comment faire un programme à plusieurs si on ne comprend pas bien les différentes parties du programme ?
On décide de faire autrement.Un programme est "vu" comme l'interaction de plusieurs modules "étanches", appelées classes; ces modules peuvent interagir par leur interface,les méthodes de la classe
Ainsi chaque programmeur sur un projet peut se consacrer à une classe, la seule contrainte est de bien documenter et commenter l'interface, pour que les autres membres de l'équipe puissent utiliser la classe
Par exemple si on veut faire un programme qui dessine des images de nombres complexes, par exemple pour dessiner un type de fractales, un programmeur A va travailler sur une classe Complexe qui va définir ainsi un nouveau type, le type Complexe
Un autre programmeur B va utiliser cette classe pour dessiner des images de un ou plusieurs nombres complexes
class Complexe:
#Constructeur
def __init__(self,x,y):
self.pReel = x
self.pImaginaire = y
#Méthodes
def conjugue(self):
return Complexe(self.pReel,-self.pImaginaire)
def module(self):
pass
def toString(self):
pass
#instanciation : on construit deux nombres complexes
z1 = Complexe(1,-2)
z2 = Complexe(0,2)
La classe permettra de donner les images d'une liste de nombres complexes
Mettre au point la classe ci-dessous
class ComplexeGraphique(Tk):
#Constructeur
def __init__(self,largeur,hauteur,liste):
self.fenetre = Tk.__init__(self)
self.largeur = largeur
self.hauteur = hauteur
self.zoneGraphique = Canvas(self.fenetre,width = largeur,height = hauteur)
self.zoneGraphique.pack()
self.traceRepere()
self.dessinerImages(liste)
#Méthodes
def traceRepere(self):
pass
def dessinerImages(liste):
pass
#instanciation : on construit une liste de nombres complexes
liste = []
#dessiner les images de chaque nombre complexe de la liste
.....à compléter .........................................