Le principe de la pensée objet se caractérise par la définition de chaque entité ayant une existence propre par ses propres caractéristiques avant même de penser quoi calculer ou programmer pour arriver au résultat ou sortie à afficher par notre programme, nous appelons cette entité Objet. Chaque Objet par exemple un Rectangle est définit tel que nous le percevons dans son domaine des « Formes Géométriques » avec ses « propriétés » et ses « méthodes » le caractérisant. Nous compléterons sa définition en le reliant à d’autres objets du même domaine comme la forme Carre qui est un cas particulier d’un Rectangle.
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
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
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
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
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é.
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
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
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