Bases Des Objets Python
Bases Des Objets Python
I I- Notion d’objet
Exemples :
Un point posséde comme attributs une abscisse x
et une ordonnée y. On peut définir une méthode
translater(…) qui est une fonction qui permet de
déplacer un point quelconque .
Un compte bancaire peut posséder les attributs
suivants : un numéro, un libellé, un sens et un
solde. On peut définir les méthodes suivantes :
crediter(..), debiter(…), transferer(…) sur des
comptes bancaires .
V-Notion de constructeur
Avant de pouvoir faire appel à un getter, un
setter ou autre méthode, on doit d’abord créer
l’objet.
Créer un objet consiste à fixer les valeurs initiales
de ses attributs.
Cette opération se fait via une méthode
spécifique de la classe appelée un constructeur.
L’utilisateur doit spécifier au moins un ou
plusieurs constructeurs.
S’il n’en définit pas, le système propose un
constructeur par défaut qui crée des objets vides
c.a.d. des objets sans valeurs initiales des
attributs. Il faudra alors dans ce cas faire appel
aux setters pour fixer les valeurs initiales des
attributs de l’objet.
L’utilisateur doit éviter le constructeur par défaut
et proposer son propre constructeur.
Le constucteur est une méthode appelée
__init__()
def main():
# création d'un point p1
p1=Point2D(3,4)
# création d'un point p2
p2=Point2D(1,2)
# affichage de p1 et p2
print("abscisse de p1: ",p1.getX())
print("ordonnée de p1: ",p1.getY())
print("abscisse de p2: ",p2.getX())
print("ordonnée de p2: ",p2.getY())
# modification des coordonnées de p1
p1.setX(-1)
p1.setY(-1)
print("nouvelle abscisse de p1: ",p1.getX())
print("nouvelle ordonnée de p1: ",p1.getY())
# translater p2
p2.translater(10, 10)
print("nouvelle abscisse de p2: ",p2.getX())
print("nouvelle ordonnée de p2: ",p2.getY())
main()
class Point2D:
def __init__(self,x,y):
self.__x=x
self.__y=y
def getX(self):
return self.__x
def getY(self):
return self.__y
def setX(self,x):
self.__x=x
def setY(self,y):
self.__y=y
def translater(self,dx,dy):
self.__x=self.__x+dx
self.__y=self.__y+dy
def creerliste():
liste=[]
return liste
def ajouter(liste,p):
liste.append(p)
def afficherliste(liste):
for i in range(len(liste)):
print("____________________")
print("abscisse: ",liste[i].getX())
print("ordonnée: ",liste[i].getY())
print("____________________________")
def main():
liste=creerliste()
while True:
print("1.Ajouter un point")
print("2.Afficher les points")
print("3.Sortie")
choix=int(input("Votre choix?"))
if choix==1:
x=float(input("abscisse ?"))
y=float(input("ordonnée ?"))
p=Point2D(x,y)
ajouter(liste,p)
else:
if choix==2:
afficherliste(liste)
else:
if choix==3:
break;
else:
print("choix invalide !!!!!")
print("Fin de l'application !!!!")
main()