Dr.
HAJJI TARIK
ENSAM
2020/2021
SÉANCE 1
Généralités Sur La Programmation
Programmation Structurée En C/C++
Définition De JAVA
JDK Développement Kit
Environnement Eclipse
Mes Premiers Programmes JAVA
17/03/2022 [Link]-POO 2
INTRODUCTION
La programmation:
appelée aussi codage dans le domaine
informatique, est l'ensemble des activités qui
permettent l'écriture des programmes
informatiques.
Un programme informatique:
est un ensemble d'opérations destinées à être
exécutées par un ordinateur.
Un programme source est un code écrit par un
informaticien dans un langage de programmation.
17/03/2022 [Link]-POO 3
INTRODUCTION
Algorithme:
17/03/2022 [Link]-POO 4
PROGRAMMATION STRUCTURE EN C/C++
17/03/2022 [Link]-POO 5
DÉFINITION DE JAVA
Java est un langage de programmation
orienté objet créé par James Gosling et
Patrick Naughton, employés de Sun
Microsystems, avec le soutien de Bill Joy,
présenté officiellement le 23 mai 1995 au
SunWorld.
La société Sun a été ensuite rachetée en 2009
par la société Oracle qui détient et maintient
désormais Java.
17/03/2022 [Link]-POO 6
DÉFINITION DE JAVA
Conçu Par : James Gosling
Dernière version : Java SE 14 (17 mars 2020)
Date de première version : 1995
Système d'exploitation : Multiplateformes
Licence : GNU GPLV2+CPE
Développeurs : Oracle Corporation
17/03/2022 [Link]-POO 7
JDK ET ECLIPSE
JDK:
[Link]
vase/[Link]
Configuration des variables d’environnement
Eclipse:
[Link]
17/03/2022 [Link]-POO 8
Mes Premiers Programmes JAVA
Un programme qui affiche un simple message
à l’écran
Un programme qui affiche mes informations
personnelles sur une seule ligne
Un programme qui affiche mes informations
personnelles sur plusieurs lignes
Compiler une classe avec la commande javac
Exécuter un bytecode avec la commande java
17/03/2022 [Link]-POO 9
17/03/2022 [Link]-POO 10
Commandes pour Compiler et
Exécuter
Exemple de compilation:
javac [Link]:
Pas de compilation en cas d’erreur
[Link] Bytecode
Exemple d’Exécution d’un
Bytecode:
java SimpleMessage
17/03/2022 [Link]-POO 11
JVM
La Machine Virtuelle
Java est un logiciel
spécifique à chaque
plate-forme qui exécute
des programmes
compilés sous forme de
bytecode Java.
La JVM permet la
portabilité pour le
langage JAVA.
17/03/2022 [Link]-POO 12
Portabilité
17/03/2022 [Link]-POO 13
SÉANCE 2
Variables de base TYPES PRIMITIFS:
Opérations sur les variables:
Affectation et casting
Opérations mathématiques
Lecture/Ecriture dans une variable
Traitement conditionnel:
If /else /switch / opérateur unaire
Fonctions et procédures MÉTHODES
Signature d’une méthode
Définition d’une méthode
Invocation d’une Méthode
Exercices d’application
17/03/2022 [Link]-POO 14
Variables de base TYPES PRIMITIFS
Une variable est une case mémoire (adresse
physique dans la RAM) caractérisée par un
nom (identificateur), un type qui indique sa
taille et la nature de son contenu.
Pour utiliser une variable il faut la déclarer via
un identificateur et un type:
Type identificateur;
Exemple: int x;
17/03/2022 [Link]-POO 15
Variables de base TYPES PRIMITIFS
17/03/2022 [Link]-POO 16
DÉCLARATION DE VARIABLES
17/03/2022 [Link]-POO 17
QUIZ!
Déclarer des variables pour sauvegarder les
valeurs suivants:
Valeurs Valeurs
120 999999999999999998
999999999 2.0E37f
32767 2.0E308
biyt int Short Long float double
17/03/2022 [Link]-POO 18
AFFECTATION ET CASTING
Affectation:
Variable = Valeur convenable (de même type que la
variable)
int a = 5;
int b = a;
Casting (changement de type d’une valeur):
Implicite: de type plus petit vers le type le plus grand:
int a = 5; float b = 6; b = a;
Explicite: de type plus grand vers le type le plus petit:
int a = 5; float b = 6; a = (int) b;
17/03/2022 [Link]-POO 19
AFFECTATION ET CASTING
17/03/2022 [Link]-POO 20
TAILLE DE VARIABLES JAVA
17/03/2022 [Link]-POO 21
LES OPÉRATEURS DE CALCUL
17/03/2022 [Link]-POO 22
LES OPÉRATEURS D'ASSIGNATION ET
D'INCRÉMENTATION
17/03/2022 [Link]-POO 23
LES OPÉRATEURS DE COMPARAISON
17/03/2022 [Link]-POO 24
LES OPÉRATEURS DE COMPARAISON
17/03/2022 [Link]-POO 25
LES OPÉRATEURS LOGIQUES
(BOOLÉENS)
17/03/2022 [Link]-POO 26
LES OPÉRATEURS BIT-À-BIT
17/03/2022 [Link]-POO 27
LECTURE/ECRITURE DANS UNE
VARIABLE
Utilisation
d’un nouveau
objet
17/03/2022 [Link]-POO 28
LECTURE/ECRITURE DANS UNE
VARIABLE
RÉFÉRENCE SUR UN CONSTRUCTEUR DE
OBJET LA CLASS
PARAMÈTRE DU
NOM DE LA CLASS OPÉRATEUR JAVA
CONSTRUCTEUR
17/03/2022 [Link]-POO 29
TRAITEMENT CONDITIONNEL
L'instruction if ... Else:
if (condition réalisée) {
liste d'instructions
}else {
autre série d'instructions
}
17/03/2022 [Link]-POO 30
TRAITEMENT CONDITIONNEL
• L'instruction if ... Else if:
17/03/2022 [Link]-POO 31
OPÉRATEUR TERNAIRE
(condition) ? instruction si vrai : instruction si
faux;
17/03/2022 [Link]-POO 32
CHOIX MULTIPLES: SWITCH
If (c == ‘a ’)
If (c == ‘b ’)
If (c == ‘b ’)
17/03/2022 [Link]-POO 33
FONCTIONS ET PROCÉDURES MÉTHODES
Inputs Output
Algorithme:
Paramètres de la méthode définition de
la méthode
output nom (inputs){
//algorithme
return output;
}
17/03/2022 [Link]-POO 34
FONCTIONS ET PROCÉDURES MÉTHODES
Surcharge
de
méthodes
17/03/2022 [Link]-POO 35
SURCHARGE DE MÉTHODES!!!
17/03/2022 [Link]-POO 36
EXERCICES D’APPLICATION
Écrire un programme JAVA qui déclare deux va
riables a et b de type int et qui demande à l’uti
lisateur de saisir les valeurs par le clavier. Puis
on affiche la somme, la soustraction, la multipl
ication et la division de a par b.
Écrire une méthode qui prend comme
arguments 3 variables de type int et affiche
ces variables triées dans l’ordre croissant.
17/03/2022 [Link]-POO 37
EXERCICES D’APPLICATION
On vous demande de reprendre l’exercice
précédent d’application 1.
Au lieu d’afficher les 4 opérations à la fois. On
demande à l’utilisateur de spécifier l’opération
à effectuer:
Ajouter une variable choix de type byte;
Demander à l ’utilisateur de choisir l’opération
souhaitée selon le code (1 l’addition; 2 la
multiplication; 3 la soustraction; 4 la
division)
17/03/2022 [Link]-POO 38
CORRECTION EXERCICE 1
17/03/2022 [Link]-POO 39
CORRECTION EXERCICE 2
17/03/2022 [Link]-POO 40
CORRECTION EXERCICE 2
17/03/2022 [Link]-POO 41
CORRECTION EXERCICE 3
17/03/2022 [Link]-POO 42
CORRECTION EXERCICE 3
17/03/2022 [Link]-POO 43
SÉANCE 3
INSTRUCTIONS DE CONTRÔLE:
For
While
Do
TABLEAUX:
de dimension 1
à plusieurs dimensions
EXERCICES D’APPLICATION
17/03/2022 [Link]-POO 44
INSTRUCTION RÉPÉTITIVE / WHILE
17/03/2022 [Link]-POO 45
INSTRUCTION RÉPÉTITIVE / BOUCLE
IMBRIQUÉE
17/03/2022 [Link]-POO 46
INSTRUCTION RÉPÉTITIVE / DO
17/03/2022 [Link]-POO 47
INSTRUCTION RÉPÉTITIVE / FOR
17/03/2022 [Link]-POO 48
INSTRUCTION DE BRANCHEMENT /
INSTRUCTION BREAK
17/03/2022 [Link]-POO 49
INSTRUCTION DE BRANCHEMENT /
INSTRUCTION CONTINUE
17/03/2022 [Link]-POO 50
INSTRUCTION DE BRANCHEMENT / ÉTIQUETTE
17/03/2022 [Link]-POO 51
TABLEAUX/ DÉCLARATION
La déclaration
ne fait pas la
création de
l’objet
17/03/2022 [Link]-POO 52
TABLEAUX/ INSTANCIATION
0 1
tab1
lentgh 0 2 lentgh
0 3
tab2
0 4
17/03/2022 [Link]-POO 53
TABLEAUX/ INDEXATION
1 tab[0]
tab
[Link]
2 tab[1]
contient la
3 tab[2]
taille du
4 tab[3] tableau
17/03/2022 [Link]-POO 54
TABLEAUX/MULTIDIMENSIONNELS
17/03/2022 [Link]-POO 55
TABLEAUX/MULTIDIMENSIONNELS
La taille du Déclaration et
17/03/2022 tableau i [Link]-POO
instanciation
56
TABLEAUX ET FONCTIONS
17/03/2022 [Link]-POO 57
TABLEAUX ET FONCTIONS (MÉTHODES)
17/03/2022 [Link]-POO 58
EXERCICES D’APPLICATION
Ecrire une méthode qui recherche un élément
x dans un tableau de n nombres entiers, la
fonction doit retourner l’indice de x si elle le
trouve sinon -1.
Ecrire une méthode qui fait la somme de deux
matrices A et B.
Ecrire une méthode qui fait la multiplication
de deux matrices A et B.
17/03/2022 [Link]-POO 59
CORRECTION DES EXERCICES D’APPLICATION
17/03/2022 [Link]-POO 60
CORRECTION DES EXERCICES D’APPLICATION
17/03/2022 [Link]-POO 61
CORRECTION DES EXERCICES D’APPLICATION
17/03/2022 [Link]-POO 62
LA METHODE INIT
17/03/2022 [Link]-POO 63
LA METHODE AFFICHER
17/03/2022 [Link]-POO 64
LA METHODE RECHERCHER
17/03/2022 [Link]-POO 65
LA METHODE SOMME
17/03/2022 [Link]-POO 66
LA METHODE MULTIPLICATION 1/2
17/03/2022 [Link]-POO 67
LA METHODE MULTIPLICATION 2/2
17/03/2022 [Link]-POO 68
SÉANCE 4
NOTION DE CLASS ET OBJECT
DÉCLARATION D’UNE CLASS
CHAMPS D’UNE CLASS
MÉTHODES D’UNE CLASS
CONSTRUCTEURS D’UNE CLASS
INSTANCIATION DES OBJECT
NIVEAUX DE VISIBILITÉ DANS UNE CLASS
EXERCICES D’APPLICATION
CHAMPS DE CLASS VS CHAMPS D’OBJET
TABLEAUX D’OBJETS
17/03/2022 [Link]-POO 69
CLASS ET OBJECT
Un objet est une variable
améliorée: il stocke les données,
mais on peut effectuer des
requêtes sur cet objet (on
demande à l’objet de faire des
opérations sur lui-même), en Classes
envoyant un message à cet objet.
Ceci est équivalent à un appel de Structures
fonction. de données
Variables
17/03/2022 [Link]-POO 70
CLASS ET OBJECT
Une classe décrit un ensemble d’objets
qui partagent des caractéristiques
communes.
On définit une classe pour représenter un
problème au lieu d’utiliser un type de
données pour représenter une unité
17/03/2022
de stockage dans l’ordinateur.
[Link]-POO 71
CLASS ET OBJECT
17/03/2022 [Link]-POO 72
CLASS ET OBJECT/ LA DÉCLARATION
17/03/2022 [Link]-POO 73
CLASS ET OBJECT/ L’INSTANCIATION
17/03/2022 [Link]-POO 74
NIVEAUX DE VISIBILITÉ/ PUBLIC ET PRIVATE
Si un attribut ou une
méthode est déclaré
dans une class avec
le niveau de
visibilité public alors
il est directement
accessible depuis
une autre class sans
passer par une
autre fonction
auxiliaire.
17/03/2022 [Link]-POO 75
NIVEAUX DE VISIBILITÉ/ PUBLIC ET PRIVATE
Immat et compteur
ont private comme
niveau de visibilité
17/03/2022 [Link]-POO 76
NIVEAUX DE VISIBILITÉ/ PUBLIC ET PRIVATE
Compteur
est
inaccessible
directement
depuis une
autre
class!!!
17/03/2022 [Link]-POO 77
ACCESSEURS ET MODIFICATEURS/ GETTERS
AND SETTERS
GETTERS
SETTERS
17/03/2022 [Link]-POO 78
ACCESSEURS ET MODIFICATEURS/ GETTERS
AND SETTERS
SETTERS
GETTERS
17/03/2022 [Link]-POO 79
CONSTRUCTEUR PAR DÉFAUT
Il porte le même nom que la classe
dans laquelle il est défini
Il n'a pas de type de retour (même
pas void)
il peut avoir des arguments
la définition d'un constructeur n'est
17/03/2022
pas obligatoire lorsqu'il n'est 80 pas
[Link]-POO
nécessaire
SURCHARGE DE CONSTRUCTEUR
Si on ajoute notre propre
constructeur avec
paramètres alors le
constructeur par défaut
devient inaccessible.
17/03/2022 [Link]-POO 81
SURCHARGE DE CONSTRUCTEUR
Pour réactiver le
constructeur par défaut
il faut l’ajouter le
surcharger dans la class.
17/03/2022 [Link]-POO 82
SURCHARGE DE CONSTRUCTEUR
17/03/2022 [Link]-POO 83
EXERCICES D’APPLICATION
Créer la class Cercle composée par trois float x, y et r
pour représenter les coordonnées et le rayon du cercle.
Les attributs de la class doivent être private.
Ajouter deux constructeurs: un sans paramètres et un
avec paramètres.
Ajouter les getters et les setters.
Ajouter la méthode calculer surface qui retourne la
surface du cercle.
Redéfinit la méthode toString.
Créer les deux cercles C1(0,0, 5) et C2(0.5, 0.5, 10) puis
calculer leurs surfaces.
17/03/2022 [Link]-POO 84
CORRECTION 1 EXERCICES D’APPLICATION
17/03/2022 [Link]-POO 85
EXERCICES D’APPLICATION
17/03/2022 [Link]-POO 86
CORRECTION 2 EXERCICES D’APPLICATION
Utilisation de la
class Point comme
un champ pour la
class Cercle.
Vous avez une
relation de
composition entre
la class Point et la
class Cercle
17/03/2022 [Link]-POO 87
CHAMPS DE CLASS ET CHAMPS D’OBJET
17/03/2022 [Link]-POO 88
TABLEAUX D’OBJETS
17/03/2022 [Link]-POO 89
Séance 5
Héritage
Redéfinition
Héritage et constructeurs
Abstraction
Interface
Polymorphisme
Exercices D’application
17/03/2022 [Link]-POO 90
Héritage VS Composition
L'héritage est la définition
d'une classe par extension
des caractéristiques d'une
autre classe
17/03/2022 [Link]-POO 91
Notion de l’héritage
Duplication du code
Une modification faite sur un attribut ou une
méthode doit être refaite dans les autres classes.
17/03/2022 [Link]-POO 92
Héritage JAVA
17/03/2022 [Link]-POO 93
Héritage JAVA
17/03/2022 [Link]-POO 94
Redéfinition
17/03/2022 [Link]-POO 95
Redéfinition
pour récupérer l'option héritage
17/03/2022 [Link]-POO 96
Héritage et constructeur
aller chercher dans la classe de base
Le constructeur par défaut de la
class fille (Etudiant) est incapable
de construire la partie hérité de la
Super class Personne
Comment
construire la
Constructeur par défaut partie hérité?
17/03/2022 [Link]-POO 97
Héritage et constructeur (super)
Super permet de chercher
dans la super class un
constructeur convenable en
fonctionne des paramètres
utilisées
17/03/2022 [Link]-POO 98
Héritage et constructeur (super)
cons par defaut
constructeur par défaut
cons sans argument
equivalent au 1ER
Cons avec para
17/03/2022 [Link]-POO 99
Abstraction
Mais je ne sais pas
Chaque forme calculer la surface
géométrique à d’une forme
forcement une surface géométrique!!!
!!!
17/03/2022 [Link]-POO 100
Abstraction
17/03/2022 [Link]-POO 101
Interface
Une Class totalement abstraite c’est une class dans tout
les méthodes sont abstraites on peut utilisé les
interfaces.
Les interfaces
ont un rôle
primordial dans
la conception des
applications
réparties …
17/03/2022 [Link]-POO 102
Polymorphisme
17/03/2022 [Link]-POO 103
Polymorphisme
17/03/2022 [Link]-POO 104
Polymorphisme
Le polymorphisme est un algorithme exécuté par la JVM
au moment de l’exécution du programme lorsque on a une
relation d’ héritage entre deux classes et lorsque on a le
type de déclaration est la super class et le type d’
instanciation est la class dérivée.
Sont objectif est de chercher automatiquement la bonne
fonction à exécuter.
Si la fonction appelée est défini dans la super class alors:
Si cette fonction est redéfini dans la class dérivée alors
exécution de la fonction de la class dérivée.
Sinon exécution de la fonction de la super class.
Sinon erreur de compilation même si cette fonction est
défini dans la class dérivée.
17/03/2022 [Link]-POO 105
SÉANCE 6
Gestion des exceptions
Les entrées sorties en Java
Les collections
Interfaces graphiques et gestion des
événements
17/03/2022 [Link]-POO 106
Gestion des exceptions
Une Exception c’est une erreur sémantique
déclenchée au moment de l’exécution.
Par exemple l’opération de division de la variable a par b
peut générer une exception si la valeur de b = 0;
Exception in thread "main"
[Link]: / by zero
Plantage du
programme
17/03/2022 [Link]-POO 107
Gestion des exceptions block
try/catch/finally
17/03/2022 [Link]-POO 108
Les entrées sorties en Java
Ecrire dans un fichies
17/03/2022 [Link]-POO 109
Les entrées sorties en Java
Lecture d’un fichiers
17/03/2022 [Link]-POO 110
Les entrées sorties en Java
sérialization
17/03/2022 [Link]-POO 111
Les entrées sorties en Java
Désérialization
17/03/2022 [Link]-POO 112
Les collections
17/03/2022 [Link]-POO 113
Interfaces graphiques
17/03/2022 [Link]-POO 114
Interfaces graphiques
JFrame
17/03/2022 [Link]-POO 115
Window
builder editor
17/03/2022 [Link]-POO 116
JLabel
17/03/2022 [Link]-POO 117
JTextField
17/03/2022 [Link]-POO 118
JButton
17/03/2022 [Link]-POO 119
ActionEvent
17/03/2022 [Link]-POO 120
Exercice d’application
• Développer une calculatrice ?
17/03/2022 [Link]-POO 121
Séance 7
• Exercice d’application en POO
17/03/2022 [Link]-POO 122
Séance 8
• Exercices d’application (Interfaces graphiques
et gestion des événements)
17/03/2022 [Link]-POO 123