COURS 2 LES CONSTRUCTEURS EN POO Dr. Asmaa BENGUEDDACH Apprendre à … ①A quoi sert un constructeur ? ②Existe il plus d’un constructeur pour une mêmeclasse ? ③Fin de Vie d’un objet ④Afectation, Aichage, Comparaison des Objets ⑤Un cas d’étude Dr Asmaa BENGUEDDACH 2 Dans lecours précédant… Dr Asmaa BENGUEDDACH 3 Rappels … // déinition de la classe class Rectangle { // déclaration des attributs privatedouble hauteur; privatedouble largeur; // déinition des méthodes public doublesurface(){ returnhauteur * largeur; } a = 4 2 Rectangle b = //utilisation de la classe class Geometrie { privateinal static Scanner CLAVIER = new Scanner(System.in); public static void main(String[] args){ Rectanglerect= new Rectangle(); double lu; System.out.print("Quelle hauteur ? "); public doublegetHauteur(){ lu = CLAVIER.nextDouble(); rect.setHauteur(lu); returnhauteur; } public doublegetLargeur(){ System.out.print("Quelle largeur ? "); returnlargeur; } lu = CLAVIER.nextDouble(); public voidsetHauteur(double h)rect.setLargeur(lu); { System.out.println("surface = " + hauteur = h; } rect.surface());}} publicsetLargeur(double l){ Dr Asmaa BENGUEDDACH largeur = l; }} 4 Analysons encore … //utilisation de la classe class Geometrie { privateinal static Scanner CLAVIER = new Scanner(System.in); public static void main(String[] args){ Rectanglerect= new Rectangle(); double lu; System.out.print("Quelle hauteur ? "); lu = CLAVIER.
//utilisation de la classe class Geometrie { private înal static Scanner CLAVïER = new Scanner(System.in); public static void main(String[] args){
Rectangle rect = new Rectangle(); double lu; System.out.print("Quelle hauteur ? "); lu = CLAVïER.nextDouble(); rect.setHauteur(lu); System.out.print("Quelle largeur ? "); lu = CLAVïER.nextDouble(); rect.setLargeur(lu); System.out.println("surace = " + rect.surace()); } }
hauteur =0et largeur =0
Comment sont t ils initialisés dans le programme?
=> par l’appel a des setteret lalecture clavierdes valeurs
Dr Asmaa BENGUEDDACH
6
Analysons encore …
//utilisation de la classe class Geometriehauteur=0 et { private înal static Scanner CLAVïER = newlargeur = 0 Scanner(System.in); Comment sont -ils public static void main(String[] args){ Rectangle rect = new Rectangle();initialisés dans le double lu; System.out.print("Quelle hauteur ? ");programme? lu = CLAVïER.nextDouble(); => par l’appel a rect.setHauteur(lu); System.out.print("Quelle largeur ? "); des setter lu = CLAVïER.nextDouble(); rect.setLargeur(lu); Et la lecture clavier System.out.println("surace = " + rect.surace()); des valeurs Y a t il une autre } } Dr Asmaa BEçNGUoEDDAnCH7 D’initialiser les
Nouveau conceptnouveau je suis le constructeur de votre classe
Dr Asmaa BENGUEDDACH
10
Je me présente … •Uneméthode •Création de l’objet de type classe •ïnitialisation des attributs du Rectangle(double h,nouveau objet double l) •J’ai le mêmenom{ que la classe hauteur = h; •Suis je seule ? largeur = l; } Dr Asmaa BENGUEDDACH 11