COURS DE PROGRAMMATION ORIENTEE OBJET :
description
Transcript of COURS DE PROGRAMMATION ORIENTEE OBJET :
![Page 1: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/1.jpg)
1
COURS DE PROGRAMMATION ORIENTEE OBJET :
Rappels des bases en Java,Objets et Classes
![Page 2: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/2.jpg)
2
Rappels des bases en Java
Construction d’un programme JAVA :– Un programme Java est composé d’un
ensemble de fichiers.X1.java
public class X1 { …public static void main (String[] args) {… } … }
X2.java
public interface X2 { … }
X3.java
Chaque fichier doit comprendre une unique classe publique ou bien une unique interface publique
![Page 3: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/3.jpg)
3
Compilation et exécution d’un programme JAVA – Chaque fichier Xi.java est compilé. Le
code source Java est transformé en une classe compilée Xi.class qui contient le pseudo-code de la machine virtuelle
– Le programme est lancé en exécutant le fichier X1.class qui contient la méthode main.
Rappels des bases en Java
![Page 4: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/4.jpg)
4
Les variables et leur typeUne variable est – soit une référence à un objet– soit d’un des huit types primitifs
Rappels des bases en Java
![Page 5: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/5.jpg)
5
Les variables et leur type– Types de référence
• Tableau• Classe• Interface
Valeurs d’une telle variable :• null• contient l’adresse d’un objet instancié.
Rappels des bases en Java
![Page 6: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/6.jpg)
6
Les variables et leur type– Types de référence
Exemples
String str;
String adresse = null;
String nom = new String (" Dupont "); nom
String
strString
strString
" Dupont "
Rappels des bases en Java
![Page 7: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/7.jpg)
7
Les variables et leur type– Types primitifs
• boolean• Types numériques
– Types entiers» byte» short» int» long» char
– Types à virgule flottante» float» double
Rappels des bases en Java
![Page 8: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/8.jpg)
8
Les variables et leur type– Types primitifs
Exemples:boolean trouve = true;char c = ’b’;int i = 3;float f = 45.6565Fdouble d;
Rappels des bases en Java
![Page 9: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/9.jpg)
9
Les variables et leur type– Types primitifs
Conversions légales de types numériques
byte short int
char
long
float doubleConversionsans perte
d’information
Conversionavec risque de perte
d’information
Exemple : int n= 123456789; float f = n; //f vaut 1.23456792E8
Rappels des bases en Java
![Page 10: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/10.jpg)
10
Les variables et leur type– Types primitifs
Transtypage: Permet de convertir un type plus grand en un type plus petit. Cette conversion pouvant entraîner des pertes d’information.
Exemple : double d = 5.6545; int i = (int)d; // i = 5
Rappels des bases en Java
![Page 11: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/11.jpg)
11
Instructions conditionnelles– if (condition) instruction ;– if (condition) instruction1 else
instruction2 ;–Séquences répétées de if ….else if …–Opérateur ? : l’expression
condition ? expression 1 : expression 2est évaluée à expression1 si la condition est vraie, à expression2 sinon.
Rappels des bases en Java
![Page 12: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/12.jpg)
12
Exemple 1 : Méthode fournissant le minimum de deux entiers m et n passés en paramètres.
public class Ex1 { public int min ( int x, int
y ){if (x<y) {
return x;} else {
return y;}
}}
Rappels des bases en Java
![Page 13: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/13.jpg)
13
Instructions itératives– while (condition) { … };– do instruction while (condition);– for (expr1;expr2; expr3) instruction
- expr1 est l’expression d’initialisation,- expr2 est la condition de
continuation, si sa valeur booléenne est false, sortie de la boucle. - expr3 est l’expression d’incrémentation.
Rappels des bases en Java
![Page 14: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/14.jpg)
14
Tableaux– Un tableau est une structure de données qui
stocke une série de valeurs du même type.– Exemple :
• Déclaration d’un tableau d’entiers: int[ ] tab;
• Création d’un tableau de 10 entiers: int[ ] tab = new int[10];
• Initialisation directe d’un tableau int[ ] tab1 = {23, 45, 6, 78};
Rappels des bases en Java
![Page 15: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/15.jpg)
15
Tableaux– Parcours du tableau tab:
• for (int i = 0; i < tab.length; i++)System.out.println(tab[i]);
• Le JDK 5.0 a introduit une construction de boucle permettant de parcourir chaque élément d’un tableau sans avoir à nommer les indices.
for (int element : tab)System.out.println(element);
Rappels des bases en Java
![Page 16: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/16.jpg)
16
Tableaux– Copie d’une variable tableau dans une autre
int[ ] tab1 = {23, 45, 6, 78};int [ ] tab2 = tab1;
tab1 et tab2 font référence au même tableau.
2345678
tab1
tab2
Rappels des bases en Java
![Page 17: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/17.jpg)
17
Objets et Classes Principes de la programmation orientée
objets:– Un programme est constitué d’objets qui
interagissent pour fournir les fonctionnalités attendues.
– Chaque objet peut être considéré comme un fournisseur de services utilisés par d’autres objets. Un objet possède des propriétés et peut accomplir certaines opérations.
– On ne se préoccupe pas de savoir comment un objet est implémenté pour utiliser ses services.
![Page 18: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/18.jpg)
18
Vocabulaire– Classe : modèle décrivant les caractéristiques
communes à plusieurs objets– Objet : instance d’une classe– Champs : données d’un objet.– Méthodes : services fournis par l’objet, fonctions
agissant sur les données.Méthodes habituelles :
» Constructeurs» Accesseurs» Mutateurs» Utilitaires
Objets et Classes
![Page 19: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/19.jpg)
19
Caractéristiques d’un objet– Un comportement : déterminé par les
méthodes que l’on peut appeler.– Un état : déterminé par les valeurs des
champs à un instant donné.– Une identité
Objets et Classes
![Page 20: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/20.jpg)
20
Exemple :– Création de la classe CompteBancaire:
• Propriétés d’un compte :– Nom– Adresse– Numéro– Solde
• Opérations– Créer un compte en passant le numéro, le nom
et l’adresse en paramètres, solde=0.– créditer– débiter
Objets et Classes
![Page 21: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/21.jpg)
21
public class CompteBancaire {
String nom ; String adresse ; int numero ; int solde ;public CompteBancaire(int numero, String nom,String adresse){
this.numero = numero;this.nom= nom;
this.adresse=adresse; this.solde = 0;
}public void crediter(int montant){solde = solde + montant;}public void debiter(int montant){solde = solde - montant;}
}
Objets et Classes
![Page 22: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/22.jpg)
22
Création d’objets– On crée un objet en appelant un constructeur.– Exemple pour la classe CompteBancaire : new CompteBancaire("Dupont","Blois");– Déclaration de variables :CompteBancaire c1 =
new CompteBancaire("Dupont", "Blois");CompteBancaire c2 = c1;
C1CompteBancaire C1 et C2 font
référence au même objet.C2
Nom =DupontAdresse =Bloisnumero=10Solde=0
Objets et Classes
![Page 23: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/23.jpg)
23
Appel de méthode Créditer le compte c1 de 100 Euros
c1.crediter (100); Paramètres des méthodes
Les paramètres sont toujours passés par valeur : La méthode reçoit une copie de toutes les valeurs de paramètre.
Une méthode ne peut pas modifier un paramètre de type primitif.
Une méthode peut modifier l’état d’un paramètre objet.
Objets et Classes
![Page 24: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/24.jpg)
24
Principe d’encapsulation– Un objet ne doit jamais manipuler de
façon directe les données internes d’un autre objet.
– Toute communication se fait par l’intermédiaire d’appels de méthodes.
Objets et Classes
![Page 25: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/25.jpg)
25
Modificateurs concernant une interface, une classe, un champ ou une méthode.
– public : accessible depuis n’importe quelle classe.
– protected : accessible uniquement depuis la classe ou ses sous-classes.
– private : accessible uniquement depuis la classe.
Objets et Classes
![Page 26: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/26.jpg)
26
ModificateursModificateur Classe Champ Méthodefinal Ne peut
être décomposée en sous-classes
Sa valeur ne peut être modifiée
Ne peut être remplacée dans une sous-classe
static Sans objet Une seule instance existe pour tous les objets de la classe
N’opère pas sur les objets, ne peut accéder aux champs d’instance, seulement aux champs statiques
Objets et Classes
![Page 27: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/27.jpg)
27
public class CompteBancaire {
private String nom ;private String adresse ;private int numero ;private int solde; // solde de type int pour simplifier//variable de classe permettant de gérer les numéros auto.private static int numeroSuivant =1;
public CompteBancaire(String nom,String adresse){ this.nom= nom; this.adresse=adresse; this.solde = 0; this.numero=numeroSuivant; numeroSuivant ++;
}
public String getNom(){return nom;}public void setNom(String nom){ this.nom = nom;}public String getAdresse(){return adresse;}
Objets et Classes
![Page 28: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/28.jpg)
28
public void setAdresse(String adresse){ this.adresse = adresse;
}public int getNumero(){
return numero;}public int getSolde(){
return solde;}//pas de méthode setSolde (int s)//le solde ne peut être modifié qu’en créditant ou débitant le compte
public void crediter(int montant){solde = solde + montant;
}public void debiter(int montant){
solde = solde - montant;}
}
Objets et Classes
![Page 29: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/29.jpg)
29
Exemple sous EclipseObjets et Classes
![Page 30: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/30.jpg)
30
Packages– Les classes peuvent être regroupées de
manière logique dans des ensembles appelés packages.
– Une classe peut utiliser toutes les classes de son propre package.
– Une classe peut utiliser toutes les classes publiques des autres packages en les important :
• Exemple : import java.util.*;
Objets et Classes
![Page 31: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/31.jpg)
31
Les classes enveloppes– Chaque type primitif a une classe
correspondante, nommée classe enveloppe.
Typeprimitif
int long float double
Classeenveloppe
Integer Long Float Double
Typeprimitif
boolean byte char short
Classeenveloppe
Boolean Byte Chararcter
Short
Classes particulières
![Page 32: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/32.jpg)
32
Les classes enveloppes– Les classes enveloppes fournissent les
méthodes de base permettant de convertir des chaînes de chiffres en nombre
• int x = Integer.parseInt (s);
Classes particulières
![Page 33: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/33.jpg)
33
La classe java.util.Scanner – Depuis le JDK 5.0– Un objet de type Scanner va décomposer
son entrée en mots en utilisant un séparateur, qui par défaut est l’espace vide.
– Méthodes de la classe Scanner pour lire les entrées
– String s = in.nextLine();– String mot = in.next();– int n = in.nextInt();– double d = in.nextDouble();
Classes particulières
![Page 34: COURS DE PROGRAMMATION ORIENTEE OBJET :](https://reader035.fdocument.pub/reader035/viewer/2022062310/568166ed550346895ddb3f04/html5/thumbnails/34.jpg)
34
La classe java.util.Scanner permet de lire les entrées
– depuis un objet de type String (ex : String leTexte)Scanner sc = new Scanner (leTexte);int i = sc.nextInt();
– depuis la fenêtre de la consoleOn construit un objet Scanner attaché à l’unité « d’entrée standard » System.in :Scanner sc = new Scanner(System.in);int i = sc.nextInt();
– ...
Classes particulières