SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Chapitre 1
Pensez Objets avec Java
Dr Asmaa BENGUEDDACH
1
Echange sur la plate-forme TE (Moodle)
2
Infos Utiles :
• Unité d’enseignement méthodologique : UEM
• Matière : Programmation Orientée Objet
• Crédits : 4
• Coefficient : 2
• Les devoirs seront remis sur TE
• Suivre votre progression sur TE
Objectifs du Cours
● Distinguer entre la programmation procédurale et Objets
● Développer la pensée Objet « Comment penser objet ? »
● Distinguer entre les notions de classe et d’objet
● Identifier les caractéristiques d’une classe : les attributs d’une classe
● Identifier les opérations sur les objets d’une classe : les méthodes d’une classe
● Coder le principe d’encapsulation en définissant les attributs et les méthodes d’une classe
● Définir le constructeur par défaut d’une classe
● Définir plusieurs constructeurs pour une classe
● Distinguer entre les concepts d’encapsulation et d’abstraction en java
● Coder le concept d’abstraction en définissant les méthodes setters et getters pour une classe
3
Preparing the Java Environment
● Java –version Download JDK 8
● Intellij Download 2017
● to Update
4
Pré-Requis en Java:
● Programmation Java et structures de contrôle
5
6
Assignment:
7
Install the right Environment to develop with JAVA
8
- Surface -> S
- S = ?
- S = a x b = 4 x 2 = 8
Rectangle
a = 4
b=2
Programmation Procédurale … Limites
Programmation Procédurale … Limites
class Geometrie {
public static void main(String[] args) {
double a = 4.0;
double b = 2.0;
System.out.println("Surface du rectangle :
"+ surface(a, b));
}
static double surface(double a, double b){
return (a * b);
}}
• Vos Critiques !!!
9
9. Structured Programming vs. Object
Oriented Programming
class Geometrie {
public static void main(String[] args) {
double a = 4.0;
double b = 2.0;
System.out.println("Surface du rectangle :
"+ surface(a, b));
}
static double surface(double a, double b){
return (a * b);
}
}
• Vos Critiques !!!
1. Noms de variables non significatifs a, b -> largeur
et longueur
2. Seul le message indique le sens du programme
3. Code Non réutilisable exemple si je veux calculer la
surface de deux rectangles ? Mise à jour difficile
4. Centré calculs
10
9. Structured Programming vs. Object
Oriented Programming
11
class Geometrie {
public static void main(String[] args) {
double a = 4.0;
double b = 2.0;
System.out.println("Surface du rectangle :
"+ surface(a, b));
}
static double surface(double a, double b){
return (a * b);
}
}
• Vos Critiques !!!
1. Noms de variables non significatifs a, b -> largeur
et longueur
2. Seul le message indique le sens du programme
3. Code Non réutilisable exemple si je veux calculer la
surface de deux rectangles ? Mise à jour difficile
4. Centré calculs
Programmation Procédurale … Limites
Dr Asmaa BENGUEDDACH 12
C’est quoi un Rectangle ?
Rectangle
Dr Asmaa BENGUEDDACH 13
Définition — Un rectangle est un quadrilatère qui possède
quatre angles droits.
Avant de parler de calculs (méthodes) géométrique sur
un rectangle on parle de ses propriétés géométriques
qui le définissent.
Dr Asmaa BENGUEDDACH 14Dr Asmaa BENGUEDDACH 14
Définition — Un rectangle est un quadrilatère qui possède
quatre angles droits.
Ensuite compléter sa définition en le reliant aux autres
objets du même domaine.
1. Définir le concept ou l’Objet dans son domaine «Formes
Géométriques » tel que nous le percevons «propriétés et
méthodes ».
2. Compléter sa définition en le reliant aux autres objets du même
domaine (relation d’héritage entre l’objet Carré et Rectangle)
15
16
17
18
19
20
21
22
23
24
• Informations biographiques
• Sexe Femme
• Yeux Marron[1]
• Cheveux Bruns
• Naissance 19 septembre 1979
• Sang Née-Moldue
• Baguette Bois de vigne, ventricule de dragon,
27,30 cm
• ……
Hermione Granger
25
Gryffondor
Caractéristiques
• Courage
• Hardiesse
• Force
• Bravoure
• Détermination
26
Vous rejoindrez les courageux,
Les plus hardis et les plus forts
Sont rassemblés en ce haut lieu.
— Extrait d'une chanson du Choixpeau magique
Exercice
● Ecrire un programme choixpeau ( film harry potter) qui affecte un élève dans une des maisons :
1. Poufsouffle
2. Gryffondor
3. Serdaigle
4. Serpentard
27
28
http://www.sitesbay.com/java-program/java-encapsulation-program-in-java
29
class Customer
{
int account_no;
float balance_Amt;
String name;
int age;
String address;
void balance_inquiry()
{
/* to perform balance inquiry only account number
is required that means remaining properties
are hidden for balance inquiry method */
}
void fund_Transfer()
{
/* To transfer the fund account number and
balance is required and remaining properties
are hidden for fund transfer method */
}
30
Abstraction
Abstraction montrer que les choses
importantes à l'utilisateur et cache les
détails internes.
Note L'abstraction de données peut être
utilisée pour assurer la sécurité des
données contre les méthodes non
autorisées.
class Employee
{
private String name;
public String getName()
{
return name;
}
public void setName(String name){
this.name=name;
}
}
class Demo {
public static void main(String[] args)
{
Employee e=new Employee();
e.setName(« BenMohammed");
System.out.println(e.getName());
} }
31
Encapsulation
Encapsulation est le concept qui consiste
à combiner les données et les fonctions
en une seule unité.
Notion d’Interface
32
Programmeur
utilisateur
Programmeur
concepteur/développeur
Interface
Définition d’un nouveau type
(classe)
Utilisation du type
Dr Asmaa BENGUEDDACH 33
Utilisateur/conducteur
Abstraction -Exemple de Voiture
Interface
Dr Asmaa BENGUEDDACH 34
Ingénieur automobile
Interface - Exemple de Voiture
Schéma de Conception Rectangle
35
Objet
attributs méthodes
Interface
(public)
Détails d’implémentation
(private)
surface
getLongueur
getLargeur
setHauteur
setLongueur
largeur
hauteur
Les constructeurs
Dr A. BENGUEDDACH
36
37
Rappel
// définition de la classe
class Rectangle {
// déclaration des attributs
private double hauteur;
private double largeur;
// définition des méthodes
public double surface(){
return hauteur * largeur; }
public double getHauteur() {
return hauteur; }
public double getLargeur() {
return largeur; }
public void setHauteur(double h){
hauteur = h; }
public setLargeur(double l){
largeur = l; }
}
Rappel
38
39
Rectangle(double hauteur, double largeur){
this.hauteur = hauteur;
this.largeur = largeur;
}
Un exemple de constructeur
Combien de constructeurs ?
Possibles ?
40
// Le constructeur par defaut
Rectangle() {
this.hauteur = 1.0; this.largeur = 2.0; }
// 2ème constructeur
Rectangle(double c) {
this.hauteur = c; this.largeur = 2.0*c; }
// 3ème constructeur
Rectangle(double hauteur, double largeur) {
this.hauteur = h; this.largeur = l; }
41
Autant de constructeurs que de variables
de classe
Affectation entre Objets
Rectangle r1 = new Rectangle(12.3, 24.5);
Rectangle r2 = r1;
42
Affectation entre Objets
Rectangle r1 = new Rectangle(12.3, 24.5);
Rectangle r2 = r1;
43
Constructeur de copie
Rectangle r1 = new Rectangle(12.3, 24.5);
Rectangle r2 = new Rectangle (r1);
44
class Rectangle {
private double hauteur;
private double largeur;
public Rectangle( Rectangle autre){
this.hauteur = autre.hauteur;
this.largeur = autre.largeur;}
// suite ...}
Comparaison d’Objets
//par exemple dans la méthode main()
Rectangle r1 = new Rectangle(4.0, 5.0);
Rectangle r2 = new Rectangle(4.0, 5.0);
if (r1 == r2) {
System.out.println("Rectangles identiques");
}
else {
System.out.println("Rectangles non identiques");
}
45
Comparaison d’Objets//par exemple dans la méthode main()
Rectangle r1 = new Rectangle(4.0, 5.0);
Rectangle r2 = new Rectangle(4.0, 5.0);
if (r1 == r2) {
System.out.println("Rectangles identiques");
}
else {
System.out.println("Rectangles non identiques");
} //error
class Rectangle
{
private double hauteur;
private double largeur;
//...
public boolean equals(Rectangle autre)
{
if (autre == null) {
return false;
} else {
return ( hauteur == autre.hauteur
&& largeur == autre.largeur);}}
46
Comparaison d’Objets
//par exemple dans la méthode main()
Rectangle r1 = new Rectangle(4.0, 5.0);
Rectangle r2 = new Rectangle(4.0, 5.0);
if (r1.equals(r2)) {
System.out.println("Rectangles identiques");
} else{
System.out.println("Rectangles non identiques");
}
47
Rappel
48
Exemple constructeur de Copie, Comment
ça fonctionne ?
49
Affichage d’Objets
50
Rectangle rect = new Rectangle(10.0, 20.0);
System.out.println(rect);
Affichage d’Objets
51
Rectangle rect = new Rectangle(10.0, 20.0);
System.out.println(rect);
Affichage d’Objets
class Rectangle{
private double hauteur;
private double largeur;
//...
public String toString(){
return "Rectangle " + hauteur + " x " + largeur;}
}
52
Rectangle rect = new Rectangle(10.0, 20.0);
System.out.println(rect);
53
54
55
Logiciel de caisse pour Librairie
● Vente des articles et encaissement des clients ;
● Gestion de l’inventaire, du stock et des données ;
● Achat auprès des fournisseurs ;
● Suivi de la fidélité client ;
● Historique des achats, ventes, et commandes ;
● Le logiciel d’encaissement s’adaptera à tous les besoins d’un libraire
professionnel.
56
57
58
Un client veut ce livre, ne se rappelant pas du titre, écrire un programme
qui permet de faire une recherche de livre par auteur/catégorie
Exercice

Mais conteúdo relacionado

Mais procurados

Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeurAbdelwahab Naji
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonAbdoulaye Dieng
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieMariem ZAOUALI
 
Corrigé langage c
Corrigé langage cCorrigé langage c
Corrigé langage ccoursuniv
 
Les fonctions lambdas en C++11 et C++14
Les fonctions lambdas en C++11 et C++14Les fonctions lambdas en C++11 et C++14
Les fonctions lambdas en C++11 et C++14Aurélien Regat-Barrel
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage Ccoursuniv
 
Formation C# - Cours 4
Formation C# - Cours 4Formation C# - Cours 4
Formation C# - Cours 4kemenaran
 
Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2Laurent BUNIET
 
Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5Laurent BUNIET
 
Exercices en langage c
Exercices en langage cExercices en langage c
Exercices en langage cDaoua Lotfi
 
Design patterns french
Design patterns frenchDesign patterns french
Design patterns frenchmeriem sari
 
Incorporer du C dans R, créer son package
Incorporer du C dans R, créer son packageIncorporer du C dans R, créer son package
Incorporer du C dans R, créer son packageCdiscount
 
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Loic Yon
 
Enrichissez vos classes avec extends
Enrichissez vos classes avec extendsEnrichissez vos classes avec extends
Enrichissez vos classes avec extendsAsmaa BENGUEDDACH
 

Mais procurados (20)

Cours c++
Cours c++Cours c++
Cours c++
 
Java cours n° 2 - classe-objet-constructeur
Java   cours n° 2 - classe-objet-constructeurJava   cours n° 2 - classe-objet-constructeur
Java cours n° 2 - classe-objet-constructeur
 
Python avancé : Classe et objet
Python avancé : Classe et objetPython avancé : Classe et objet
Python avancé : Classe et objet
 
Introduction à l’orienté objet en Python
Introduction à l’orienté objet en PythonIntroduction à l’orienté objet en Python
Introduction à l’orienté objet en Python
 
TP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / TunisieTP2 Atelier C++/ GL2 INSAT / Tunisie
TP2 Atelier C++/ GL2 INSAT / Tunisie
 
Corrigé langage c
Corrigé langage cCorrigé langage c
Corrigé langage c
 
Les fonctions lambdas en C++11 et C++14
Les fonctions lambdas en C++11 et C++14Les fonctions lambdas en C++11 et C++14
Les fonctions lambdas en C++11 et C++14
 
Corrigés exercices langage C
Corrigés exercices langage CCorrigés exercices langage C
Corrigés exercices langage C
 
Chapitre 1 rappel
Chapitre 1   rappelChapitre 1   rappel
Chapitre 1 rappel
 
Formation C# - Cours 4
Formation C# - Cours 4Formation C# - Cours 4
Formation C# - Cours 4
 
Héritage et redéfinition de méthode
Héritage et redéfinition de méthodeHéritage et redéfinition de méthode
Héritage et redéfinition de méthode
 
De Java à .NET
De Java à .NETDe Java à .NET
De Java à .NET
 
Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2Cours de C++, en français, 2002 - Cours 2.2
Cours de C++, en français, 2002 - Cours 2.2
 
Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5Cours de C++, en français, 2002 - Cours 2.5
Cours de C++, en français, 2002 - Cours 2.5
 
Exercices en langage c
Exercices en langage cExercices en langage c
Exercices en langage c
 
Design patterns french
Design patterns frenchDesign patterns french
Design patterns french
 
Incorporer du C dans R, créer son package
Incorporer du C dans R, créer son packageIncorporer du C dans R, créer son package
Incorporer du C dans R, créer son package
 
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
Java - Support etudiant - Tronc Commun Deuxième année ISIMA - 2018
 
Enrichissez vos classes avec extends
Enrichissez vos classes avec extendsEnrichissez vos classes avec extends
Enrichissez vos classes avec extends
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 

Semelhante a Pensez objets avec java

Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptxSafaeLhr1
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logiciellecyrilgandon
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objetsAbdoulaye Dieng
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieMariem ZAOUALI
 
Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 OverviewGregory Renard
 
Java-2eme partie.pptx
Java-2eme partie.pptxJava-2eme partie.pptx
Java-2eme partie.pptxHassanAbdel
 
Traits : de la théorie à la pratique
Traits : de la théorie à la pratiqueTraits : de la théorie à la pratique
Traits : de la théorie à la pratiqueFrederic Hardy
 
Chap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdfChap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdframadanmahdi
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) univalence
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieurFredy Fadel
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07haythem_2015
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneMicrosoft
 
Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaAmel Morchdi
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA Asmaa BENGUEDDACH
 

Semelhante a Pensez objets avec java (20)

Deuxième partie.pptx
Deuxième partie.pptxDeuxième partie.pptx
Deuxième partie.pptx
 
Qualité logicielle
Qualité logicielleQualité logicielle
Qualité logicielle
 
Cpp2 : classes et objets
Cpp2 : classes et objetsCpp2 : classes et objets
Cpp2 : classes et objets
 
C# 7 - Nouveautés
C# 7 - NouveautésC# 7 - Nouveautés
C# 7 - Nouveautés
 
poo.pdf
poo.pdfpoo.pdf
poo.pdf
 
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / TunisieCorrection TP4 Atelier C++ /GL2 INSAT / Tunisie
Correction TP4 Atelier C++ /GL2 INSAT / Tunisie
 
POO-chapitre3.pptx
POO-chapitre3.pptxPOO-chapitre3.pptx
POO-chapitre3.pptx
 
Visual Studio 2008 Overview
Visual Studio 2008 OverviewVisual Studio 2008 Overview
Visual Studio 2008 Overview
 
Part1
Part1Part1
Part1
 
Java-2eme partie.pptx
Java-2eme partie.pptxJava-2eme partie.pptx
Java-2eme partie.pptx
 
Traits : de la théorie à la pratique
Traits : de la théorie à la pratiqueTraits : de la théorie à la pratique
Traits : de la théorie à la pratique
 
Chap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdfChap 2--POO avec JAVA.pdf
Chap 2--POO avec JAVA.pdf
 
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017) Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
Spark-adabra, Comment Construire un DATALAKE ! (Devoxx 2017)
 
Chapitre 04 : les fonctions
Chapitre 04 : les fonctionsChapitre 04 : les fonctions
Chapitre 04 : les fonctions
 
Javascript un langage supérieur
Javascript un langage supérieurJavascript un langage supérieur
Javascript un langage supérieur
 
System c eniso_jan_fev_07
System c eniso_jan_fev_07System c eniso_jan_fev_07
System c eniso_jan_fev_07
 
Les nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ ModerneLes nouveautés de C++11 : Ecrire du C++ Moderne
Les nouveautés de C++11 : Ecrire du C++ Moderne
 
Java uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 javaJava uik-chap6-poo heritage v2 java
Java uik-chap6-poo heritage v2 java
 
Les bases de la programmation en JAVA
Les bases de la programmation  en JAVA   Les bases de la programmation  en JAVA
Les bases de la programmation en JAVA
 
Chapitre 1 rappel
Chapitre 1 rappelChapitre 1 rappel
Chapitre 1 rappel
 

Pensez objets avec java

  • 1. Chapitre 1 Pensez Objets avec Java Dr Asmaa BENGUEDDACH 1
  • 2. Echange sur la plate-forme TE (Moodle) 2 Infos Utiles : • Unité d’enseignement méthodologique : UEM • Matière : Programmation Orientée Objet • Crédits : 4 • Coefficient : 2 • Les devoirs seront remis sur TE • Suivre votre progression sur TE
  • 3. Objectifs du Cours ● Distinguer entre la programmation procédurale et Objets ● Développer la pensée Objet « Comment penser objet ? » ● Distinguer entre les notions de classe et d’objet ● Identifier les caractéristiques d’une classe : les attributs d’une classe ● Identifier les opérations sur les objets d’une classe : les méthodes d’une classe ● Coder le principe d’encapsulation en définissant les attributs et les méthodes d’une classe ● Définir le constructeur par défaut d’une classe ● Définir plusieurs constructeurs pour une classe ● Distinguer entre les concepts d’encapsulation et d’abstraction en java ● Coder le concept d’abstraction en définissant les méthodes setters et getters pour une classe 3
  • 4. Preparing the Java Environment ● Java –version Download JDK 8 ● Intellij Download 2017 ● to Update 4
  • 5. Pré-Requis en Java: ● Programmation Java et structures de contrôle 5
  • 6. 6
  • 7. Assignment: 7 Install the right Environment to develop with JAVA
  • 8. 8 - Surface -> S - S = ? - S = a x b = 4 x 2 = 8 Rectangle a = 4 b=2 Programmation Procédurale … Limites
  • 9. Programmation Procédurale … Limites class Geometrie { public static void main(String[] args) { double a = 4.0; double b = 2.0; System.out.println("Surface du rectangle : "+ surface(a, b)); } static double surface(double a, double b){ return (a * b); }} • Vos Critiques !!! 9
  • 10. 9. Structured Programming vs. Object Oriented Programming class Geometrie { public static void main(String[] args) { double a = 4.0; double b = 2.0; System.out.println("Surface du rectangle : "+ surface(a, b)); } static double surface(double a, double b){ return (a * b); } } • Vos Critiques !!! 1. Noms de variables non significatifs a, b -> largeur et longueur 2. Seul le message indique le sens du programme 3. Code Non réutilisable exemple si je veux calculer la surface de deux rectangles ? Mise à jour difficile 4. Centré calculs 10
  • 11. 9. Structured Programming vs. Object Oriented Programming 11 class Geometrie { public static void main(String[] args) { double a = 4.0; double b = 2.0; System.out.println("Surface du rectangle : "+ surface(a, b)); } static double surface(double a, double b){ return (a * b); } } • Vos Critiques !!! 1. Noms de variables non significatifs a, b -> largeur et longueur 2. Seul le message indique le sens du programme 3. Code Non réutilisable exemple si je veux calculer la surface de deux rectangles ? Mise à jour difficile 4. Centré calculs Programmation Procédurale … Limites
  • 12. Dr Asmaa BENGUEDDACH 12 C’est quoi un Rectangle ? Rectangle
  • 13. Dr Asmaa BENGUEDDACH 13 Définition — Un rectangle est un quadrilatère qui possède quatre angles droits. Avant de parler de calculs (méthodes) géométrique sur un rectangle on parle de ses propriétés géométriques qui le définissent.
  • 14. Dr Asmaa BENGUEDDACH 14Dr Asmaa BENGUEDDACH 14 Définition — Un rectangle est un quadrilatère qui possède quatre angles droits. Ensuite compléter sa définition en le reliant aux autres objets du même domaine.
  • 15. 1. Définir le concept ou l’Objet dans son domaine «Formes Géométriques » tel que nous le percevons «propriétés et méthodes ». 2. Compléter sa définition en le reliant aux autres objets du même domaine (relation d’héritage entre l’objet Carré et Rectangle) 15
  • 16. 16
  • 17. 17
  • 18. 18
  • 19. 19
  • 20. 20
  • 21. 21
  • 22. 22
  • 23. 23
  • 24. 24 • Informations biographiques • Sexe Femme • Yeux Marron[1] • Cheveux Bruns • Naissance 19 septembre 1979 • Sang Née-Moldue • Baguette Bois de vigne, ventricule de dragon, 27,30 cm • …… Hermione Granger
  • 25. 25 Gryffondor Caractéristiques • Courage • Hardiesse • Force • Bravoure • Détermination
  • 26. 26 Vous rejoindrez les courageux, Les plus hardis et les plus forts Sont rassemblés en ce haut lieu. — Extrait d'une chanson du Choixpeau magique
  • 27. Exercice ● Ecrire un programme choixpeau ( film harry potter) qui affecte un élève dans une des maisons : 1. Poufsouffle 2. Gryffondor 3. Serdaigle 4. Serpentard 27
  • 28. 28
  • 30. class Customer { int account_no; float balance_Amt; String name; int age; String address; void balance_inquiry() { /* to perform balance inquiry only account number is required that means remaining properties are hidden for balance inquiry method */ } void fund_Transfer() { /* To transfer the fund account number and balance is required and remaining properties are hidden for fund transfer method */ } 30 Abstraction Abstraction montrer que les choses importantes à l'utilisateur et cache les détails internes. Note L'abstraction de données peut être utilisée pour assurer la sécurité des données contre les méthodes non autorisées.
  • 31. class Employee { private String name; public String getName() { return name; } public void setName(String name){ this.name=name; } } class Demo { public static void main(String[] args) { Employee e=new Employee(); e.setName(« BenMohammed"); System.out.println(e.getName()); } } 31 Encapsulation Encapsulation est le concept qui consiste à combiner les données et les fonctions en une seule unité.
  • 33. Dr Asmaa BENGUEDDACH 33 Utilisateur/conducteur Abstraction -Exemple de Voiture Interface
  • 34. Dr Asmaa BENGUEDDACH 34 Ingénieur automobile Interface - Exemple de Voiture
  • 35. Schéma de Conception Rectangle 35 Objet attributs méthodes Interface (public) Détails d’implémentation (private) surface getLongueur getLargeur setHauteur setLongueur largeur hauteur
  • 36. Les constructeurs Dr A. BENGUEDDACH 36
  • 37. 37 Rappel // définition de la classe class Rectangle { // déclaration des attributs private double hauteur; private double largeur; // définition des méthodes public double surface(){ return hauteur * largeur; } public double getHauteur() { return hauteur; } public double getLargeur() { return largeur; } public void setHauteur(double h){ hauteur = h; } public setLargeur(double l){ largeur = l; } }
  • 39. 39 Rectangle(double hauteur, double largeur){ this.hauteur = hauteur; this.largeur = largeur; } Un exemple de constructeur
  • 40. Combien de constructeurs ? Possibles ? 40
  • 41. // Le constructeur par defaut Rectangle() { this.hauteur = 1.0; this.largeur = 2.0; } // 2ème constructeur Rectangle(double c) { this.hauteur = c; this.largeur = 2.0*c; } // 3ème constructeur Rectangle(double hauteur, double largeur) { this.hauteur = h; this.largeur = l; } 41 Autant de constructeurs que de variables de classe
  • 42. Affectation entre Objets Rectangle r1 = new Rectangle(12.3, 24.5); Rectangle r2 = r1; 42
  • 43. Affectation entre Objets Rectangle r1 = new Rectangle(12.3, 24.5); Rectangle r2 = r1; 43
  • 44. Constructeur de copie Rectangle r1 = new Rectangle(12.3, 24.5); Rectangle r2 = new Rectangle (r1); 44 class Rectangle { private double hauteur; private double largeur; public Rectangle( Rectangle autre){ this.hauteur = autre.hauteur; this.largeur = autre.largeur;} // suite ...}
  • 45. Comparaison d’Objets //par exemple dans la méthode main() Rectangle r1 = new Rectangle(4.0, 5.0); Rectangle r2 = new Rectangle(4.0, 5.0); if (r1 == r2) { System.out.println("Rectangles identiques"); } else { System.out.println("Rectangles non identiques"); } 45
  • 46. Comparaison d’Objets//par exemple dans la méthode main() Rectangle r1 = new Rectangle(4.0, 5.0); Rectangle r2 = new Rectangle(4.0, 5.0); if (r1 == r2) { System.out.println("Rectangles identiques"); } else { System.out.println("Rectangles non identiques"); } //error class Rectangle { private double hauteur; private double largeur; //... public boolean equals(Rectangle autre) { if (autre == null) { return false; } else { return ( hauteur == autre.hauteur && largeur == autre.largeur);}} 46
  • 47. Comparaison d’Objets //par exemple dans la méthode main() Rectangle r1 = new Rectangle(4.0, 5.0); Rectangle r2 = new Rectangle(4.0, 5.0); if (r1.equals(r2)) { System.out.println("Rectangles identiques"); } else{ System.out.println("Rectangles non identiques"); } 47
  • 49. Exemple constructeur de Copie, Comment ça fonctionne ? 49
  • 50. Affichage d’Objets 50 Rectangle rect = new Rectangle(10.0, 20.0); System.out.println(rect);
  • 51. Affichage d’Objets 51 Rectangle rect = new Rectangle(10.0, 20.0); System.out.println(rect);
  • 52. Affichage d’Objets class Rectangle{ private double hauteur; private double largeur; //... public String toString(){ return "Rectangle " + hauteur + " x " + largeur;} } 52 Rectangle rect = new Rectangle(10.0, 20.0); System.out.println(rect);
  • 53. 53
  • 54. 54
  • 55. 55
  • 56. Logiciel de caisse pour Librairie ● Vente des articles et encaissement des clients ; ● Gestion de l’inventaire, du stock et des données ; ● Achat auprès des fournisseurs ; ● Suivi de la fidélité client ; ● Historique des achats, ventes, et commandes ; ● Le logiciel d’encaissement s’adaptera à tous les besoins d’un libraire professionnel. 56
  • 57. 57
  • 58. 58 Un client veut ce livre, ne se rappelant pas du titre, écrire un programme qui permet de faire une recherche de livre par auteur/catégorie Exercice