Vous êtes sur la page 1sur 123

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 T.HAJJI-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 T.HAJJI-POO 3
INTRODUCTION
Algorithme:

17/03/2022 T.HAJJI-POO 4
PROGRAMMATION STRUCTURE EN C/C++

17/03/2022 T.HAJJI-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 T.HAJJI-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 T.HAJJI-POO 7
JDK ET ECLIPSE

JDK:
https://www.oracle.com/java/technologies/ja
vase/javase-jdk8-downloads.html
Configuration des variables d’environnement
Eclipse:
https://www.eclipse.org/downloads/

17/03/2022 T.HAJJI-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 T.HAJJI-POO 9
17/03/2022 T.HAJJI-POO 10
Commandes pour Compiler et
Exécuter
Exemple de compilation:
javac SimpleMessage.java:
Pas de compilation en cas d’erreur
SimpleMessage.class  Bytecode
Exemple d’Exécution d’un
Bytecode:
java SimpleMessage

17/03/2022 T.HAJJI-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 T.HAJJI-POO 12
Portabilité

17/03/2022 T.HAJJI-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 T.HAJJI-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 T.HAJJI-POO 15
Variables de base  TYPES PRIMITIFS

17/03/2022 T.HAJJI-POO 16
DÉCLARATION DE VARIABLES

17/03/2022 T.HAJJI-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 T.HAJJI-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 T.HAJJI-POO 19
AFFECTATION ET CASTING

17/03/2022 T.HAJJI-POO 20
TAILLE DE VARIABLES JAVA

17/03/2022 T.HAJJI-POO 21
LES OPÉRATEURS DE CALCUL

17/03/2022 T.HAJJI-POO 22
LES OPÉRATEURS D'ASSIGNATION ET
D'INCRÉMENTATION

17/03/2022 T.HAJJI-POO 23
LES OPÉRATEURS DE COMPARAISON

17/03/2022 T.HAJJI-POO 24
LES OPÉRATEURS DE COMPARAISON

17/03/2022 T.HAJJI-POO 25
LES OPÉRATEURS LOGIQUES
(BOOLÉENS)

17/03/2022 T.HAJJI-POO 26
LES OPÉRATEURS BIT-À-BIT

17/03/2022 T.HAJJI-POO 27
LECTURE/ECRITURE DANS UNE
VARIABLE

Utilisation
d’un nouveau
objet

17/03/2022 T.HAJJI-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 T.HAJJI-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 T.HAJJI-POO 30
TRAITEMENT CONDITIONNEL
• L'instruction if ... Else if:

17/03/2022 T.HAJJI-POO 31
OPÉRATEUR TERNAIRE
(condition) ? instruction si vrai : instruction si
faux;

17/03/2022 T.HAJJI-POO 32
CHOIX MULTIPLES: SWITCH

If (c == ‘a ’)

If (c == ‘b ’)

If (c == ‘b ’)

17/03/2022 T.HAJJI-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 T.HAJJI-POO 34
FONCTIONS ET PROCÉDURES  MÉTHODES

Surcharge
de
méthodes

17/03/2022 T.HAJJI-POO 35
SURCHARGE DE MÉTHODES!!!

17/03/2022 T.HAJJI-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 T.HAJJI-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 T.HAJJI-POO 38
CORRECTION EXERCICE 1

17/03/2022 T.HAJJI-POO 39
CORRECTION EXERCICE 2

17/03/2022 T.HAJJI-POO 40
CORRECTION EXERCICE 2

17/03/2022 T.HAJJI-POO 41
CORRECTION EXERCICE 3

17/03/2022 T.HAJJI-POO 42
CORRECTION EXERCICE 3

17/03/2022 T.HAJJI-POO 43
SÉANCE 3
INSTRUCTIONS DE CONTRÔLE:
For
While
Do
TABLEAUX:
de dimension 1
à plusieurs dimensions
EXERCICES D’APPLICATION

17/03/2022 T.HAJJI-POO 44
INSTRUCTION RÉPÉTITIVE / WHILE

17/03/2022 T.HAJJI-POO 45
INSTRUCTION RÉPÉTITIVE / BOUCLE
IMBRIQUÉE

17/03/2022 T.HAJJI-POO 46
INSTRUCTION RÉPÉTITIVE / DO

17/03/2022 T.HAJJI-POO 47
INSTRUCTION RÉPÉTITIVE / FOR

17/03/2022 T.HAJJI-POO 48
INSTRUCTION DE BRANCHEMENT /
INSTRUCTION BREAK

17/03/2022 T.HAJJI-POO 49
INSTRUCTION DE BRANCHEMENT /
INSTRUCTION CONTINUE

17/03/2022 T.HAJJI-POO 50
INSTRUCTION DE BRANCHEMENT / ÉTIQUETTE

17/03/2022 T.HAJJI-POO 51
TABLEAUX/ DÉCLARATION

La déclaration
ne fait pas la
création de
l’objet

17/03/2022 T.HAJJI-POO 52
TABLEAUX/ INSTANCIATION

0 1

tab1
lentgh 0 2 lentgh

0 3
tab2
0 4
17/03/2022 T.HAJJI-POO 53
TABLEAUX/ INDEXATION

1 tab[0]

tab
tab.length
2 tab[1]
contient la
3 tab[2]
taille du
4 tab[3] tableau

17/03/2022 T.HAJJI-POO 54
TABLEAUX/MULTIDIMENSIONNELS

17/03/2022 T.HAJJI-POO 55
TABLEAUX/MULTIDIMENSIONNELS

La taille du Déclaration et
17/03/2022 tableau i T.HAJJI-POO
instanciation
56
TABLEAUX ET FONCTIONS

17/03/2022 T.HAJJI-POO 57
TABLEAUX ET FONCTIONS (MÉTHODES)

17/03/2022 T.HAJJI-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 T.HAJJI-POO 59
CORRECTION DES EXERCICES D’APPLICATION

17/03/2022 T.HAJJI-POO 60
CORRECTION DES EXERCICES D’APPLICATION

17/03/2022 T.HAJJI-POO 61
CORRECTION DES EXERCICES D’APPLICATION

17/03/2022 T.HAJJI-POO 62
LA METHODE INIT

17/03/2022 T.HAJJI-POO 63
LA METHODE AFFICHER

17/03/2022 T.HAJJI-POO 64
LA METHODE RECHERCHER

17/03/2022 T.HAJJI-POO 65
LA METHODE SOMME

17/03/2022 T.HAJJI-POO 66
LA METHODE MULTIPLICATION 1/2

17/03/2022 T.HAJJI-POO 67
LA METHODE MULTIPLICATION 2/2

17/03/2022 T.HAJJI-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 T.HAJJI-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 T.HAJJI-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.
T.HAJJI-POO 71
CLASS ET OBJECT

17/03/2022 T.HAJJI-POO 72
CLASS ET OBJECT/ LA DÉCLARATION

17/03/2022 T.HAJJI-POO 73
CLASS ET OBJECT/ L’INSTANCIATION

17/03/2022 T.HAJJI-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 T.HAJJI-POO 75
NIVEAUX DE VISIBILITÉ/ PUBLIC ET PRIVATE

Immat et compteur
ont private comme
niveau de visibilité

17/03/2022 T.HAJJI-POO 76
NIVEAUX DE VISIBILITÉ/ PUBLIC ET PRIVATE

Compteur
est
inaccessible
directement
depuis une
autre
class!!!

17/03/2022 T.HAJJI-POO 77
ACCESSEURS ET MODIFICATEURS/ GETTERS
AND SETTERS

GETTERS
SETTERS

17/03/2022 T.HAJJI-POO 78
ACCESSEURS ET MODIFICATEURS/ GETTERS
AND SETTERS

SETTERS

GETTERS

17/03/2022 T.HAJJI-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
T.HAJJI-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 T.HAJJI-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 T.HAJJI-POO 82
SURCHARGE DE CONSTRUCTEUR

17/03/2022 T.HAJJI-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 T.HAJJI-POO 84
CORRECTION 1 EXERCICES D’APPLICATION

17/03/2022 T.HAJJI-POO 85
EXERCICES D’APPLICATION

17/03/2022 T.HAJJI-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 T.HAJJI-POO 87
CHAMPS DE CLASS ET CHAMPS D’OBJET

17/03/2022 T.HAJJI-POO 88
TABLEAUX D’OBJETS

17/03/2022 T.HAJJI-POO 89
Séance 5

Héritage
Redéfinition
Héritage et constructeurs
Abstraction
Interface
Polymorphisme
Exercices D’application
17/03/2022 T.HAJJI-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 T.HAJJI-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 T.HAJJI-POO 92
Héritage JAVA

17/03/2022 T.HAJJI-POO 93
Héritage JAVA

17/03/2022 T.HAJJI-POO 94
Redéfinition

17/03/2022 T.HAJJI-POO 95
Redéfinition

pour récupérer l'option héritage

17/03/2022 T.HAJJI-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 T.HAJJI-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 T.HAJJI-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 T.HAJJI-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 T.HAJJI-POO 100


Abstraction

17/03/2022 T.HAJJI-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 T.HAJJI-POO 102


Polymorphisme

17/03/2022 T.HAJJI-POO 103


Polymorphisme

17/03/2022 T.HAJJI-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 T.HAJJI-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 T.HAJJI-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"
java.lang.ArithmeticException: / by zero

Plantage du
programme

17/03/2022 T.HAJJI-POO 107


Gestion des exceptions block
try/catch/finally

17/03/2022 T.HAJJI-POO 108


Les entrées sorties en Java
Ecrire dans un fichies

17/03/2022 T.HAJJI-POO 109


Les entrées sorties en Java
Lecture d’un fichiers

17/03/2022 T.HAJJI-POO 110


Les entrées sorties en Java
sérialization

17/03/2022 T.HAJJI-POO 111


Les entrées sorties en Java
Désérialization

17/03/2022 T.HAJJI-POO 112


Les collections

17/03/2022 T.HAJJI-POO 113


Interfaces graphiques

17/03/2022 T.HAJJI-POO 114


Interfaces graphiques
JFrame

17/03/2022 T.HAJJI-POO 115


Window
builder editor

17/03/2022 T.HAJJI-POO 116


JLabel

17/03/2022 T.HAJJI-POO 117


JTextField

17/03/2022 T.HAJJI-POO 118


JButton

17/03/2022 T.HAJJI-POO 119


ActionEvent

17/03/2022 T.HAJJI-POO 120


Exercice d’application

• Développer une calculatrice ?

17/03/2022 T.HAJJI-POO 121


Séance 7
• Exercice d’application en POO

17/03/2022 T.HAJJI-POO 122


Séance 8
• Exercices d’application (Interfaces graphiques
et gestion des événements)

17/03/2022 T.HAJJI-POO 123

Vous aimerez peut-être aussi