Vous êtes sur la page 1sur 106

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

10/04/2021 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.

10/04/2021 T.HAJJI-POO 3
INTRODUCTION
Algorithme:

10/04/2021 T.HAJJI-POO 4
PROGRAMMATION STRUCTURE EN C/C++

10/04/2021 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.

10/04/2021 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

10/04/2021 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/

10/04/2021 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
10/04/2021 T.HAJJI-POO 9
10/04/2021 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

10/04/2021 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.
10/04/2021 T.HAJJI-POO 12
Portabilité

10/04/2021 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

10/04/2021 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;

10/04/2021 T.HAJJI-POO 15
Variables de base  TYPES PRIMITIFS

10/04/2021 T.HAJJI-POO 16
DÉCLARATION DE VARIABLES

10/04/2021 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

10/04/2021 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;

10/04/2021 T.HAJJI-POO 19
AFFECTATION ET CASTING

10/04/2021 T.HAJJI-POO 20
TAILLE DE VARIABLES JAVA

10/04/2021 T.HAJJI-POO 21
LES OPÉRATEURS DE CALCUL

10/04/2021 T.HAJJI-POO 22
LES OPÉRATEURS D'ASSIGNATION ET
D'INCRÉMENTATION

10/04/2021 T.HAJJI-POO 23
LES OPÉRATEURS DE COMPARAISON

10/04/2021 T.HAJJI-POO 24
LES OPÉRATEURS DE COMPARAISON

10/04/2021 T.HAJJI-POO 25
LES OPÉRATEURS LOGIQUES
(BOOLÉENS)

10/04/2021 T.HAJJI-POO 26
LES OPÉRATEURS BIT-À-BIT

10/04/2021 T.HAJJI-POO 27
LECTURE/ECRITURE DANS UNE
VARIABLE

Utilisation
d’un nouveau
objet

10/04/2021 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

10/04/2021 T.HAJJI-POO 29
TRAITEMENT CONDITIONNEL
L'instruction if ... Else:
if (condition réalisée) {
liste d'instructions
}else {
autre série d'instructions
}

10/04/2021 T.HAJJI-POO 30
TRAITEMENT CONDITIONNEL
• L'instruction if ... Else if:

10/04/2021 T.HAJJI-POO 31
OPÉRATEUR TERNAIRE
(condition) ? instruction si vrai : instruction si
faux;

10/04/2021 T.HAJJI-POO 32
CHOIX MULTIPLES: SWITCH

If (c == ‘a ’)

If (c == ‘b ’)

If (c == ‘b ’)

10/04/2021 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;
}
10/04/2021 T.HAJJI-POO 34
FONCTIONS ET PROCÉDURES  MÉTHODES

Surcharge
de
méthodes

10/04/2021 T.HAJJI-POO 35
SURCHARGE DE MÉTHODES!!!

10/04/2021 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.

10/04/2021 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)
10/04/2021 T.HAJJI-POO 38
CORRECTION EXERCICE 1

10/04/2021 T.HAJJI-POO 39
CORRECTION EXERCICE 2

10/04/2021 T.HAJJI-POO 40
CORRECTION EXERCICE 2

10/04/2021 T.HAJJI-POO 41
CORRECTION EXERCICE 3

10/04/2021 T.HAJJI-POO 42
CORRECTION EXERCICE 3

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

10/04/2021 T.HAJJI-POO 44
INSTRUCTION RÉPÉTITIVE / WHILE

10/04/2021 T.HAJJI-POO 45
INSTRUCTION RÉPÉTITIVE / BOUCLE
IMBRIQUÉE

10/04/2021 T.HAJJI-POO 46
INSTRUCTION RÉPÉTITIVE / DO

10/04/2021 T.HAJJI-POO 47
INSTRUCTION RÉPÉTITIVE / FOR

10/04/2021 T.HAJJI-POO 48
INSTRUCTION DE BRANCHEMENT /
INSTRUCTION BREAK

10/04/2021 T.HAJJI-POO 49
INSTRUCTION DE BRANCHEMENT /
INSTRUCTION CONTINUE

10/04/2021 T.HAJJI-POO 50
INSTRUCTION DE BRANCHEMENT / ÉTIQUETTE

10/04/2021 T.HAJJI-POO 51
TABLEAUX/ DÉCLARATION

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

10/04/2021 T.HAJJI-POO 52
TABLEAUX/ INSTANCIATION

0 1

tab1
lenth 0 2 lenth

0 3
tab2
0 4
10/04/2021 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

10/04/2021 T.HAJJI-POO 54
TABLEAUX/MULTIDIMENSIONNELS

10/04/2021 T.HAJJI-POO 55
TABLEAUX/MULTIDIMENSIONNELS

La taille du Déclaration et
10/04/2021 tableau i T.HAJJI-POO
instanciation
56
TABLEAUX ET FONCTIONS

10/04/2021 T.HAJJI-POO 57
TABLEAUX ET FONCTIONS (MÉTHODES)

10/04/2021 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 un 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.

10/04/2021 T.HAJJI-POO 59
CORRECTION DES EXERCICES D’APPLICATION

10/04/2021 T.HAJJI-POO 60
CORRECTION DES EXERCICES D’APPLICATION

10/04/2021 T.HAJJI-POO 61
CORRECTION DES EXERCICES D’APPLICATION

10/04/2021 T.HAJJI-POO 62
LA METHODE INIT

10/04/2021 T.HAJJI-POO 63
LA METHODE AFFICHER

10/04/2021 T.HAJJI-POO 64
LA METHODE RECHERCHER

10/04/2021 T.HAJJI-POO 65
LA METHODE SOMME

10/04/2021 T.HAJJI-POO 66
LA METHODE MULTIPLICATION 1/2

10/04/2021 T.HAJJI-POO 67
LA METHODE MULTIPLICATION 2/2

10/04/2021 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
10/04/2021 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

10/04/2021 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é
10/04/2021
de stockage dans l’ordinateur.
T.HAJJI-POO 71
CLASS ET OBJECT

10/04/2021 T.HAJJI-POO 72
CLASS ET OBJECT/ LA DÉCLARATION

10/04/2021 T.HAJJI-POO 73
CLASS ET OBJECT/ L’INSTANCIATION

10/04/2021 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.

10/04/2021 T.HAJJI-POO 75
NIVEAUX DE VISIBILITÉ/ PUBLIC ET PRIVATE

Immat et compteur
ont private comme
niveau de visibilité

10/04/2021 T.HAJJI-POO 76
NIVEAUX DE VISIBILITÉ/ PUBLIC ET PRIVATE

Compteur
est
inaccessible
directement
depuis une
autre
class!!!

10/04/2021 T.HAJJI-POO 77
ACCESSEURS ET MODIFICATEURS/ GETTERS
AND SETTERS

GETTERS
SETTERS

10/04/2021 T.HAJJI-POO 78
ACCESSEURS ET MODIFICATEURS/ GETTERS
AND SETTERS

SETTERS

GETTERS

10/04/2021 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
10/04/2021
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.
10/04/2021 T.HAJJI-POO 81
SURCHARGE DE CONSTRUCTEUR

Pour réactiver le
constructeur par défaut
il faut l’ajouter le
surcharger dans la class.
10/04/2021 T.HAJJI-POO 82
SURCHARGE DE CONSTRUCTEUR

10/04/2021 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.

10/04/2021 T.HAJJI-POO 84
CORRECTION 1 EXERCICES D’APPLICATION

10/04/2021 T.HAJJI-POO 85
EXERCICES D’APPLICATION

10/04/2021 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

10/04/2021 T.HAJJI-POO 87
CHAMPS DE CLASS ET CHAMPS D’OBJET

10/04/2021 T.HAJJI-POO 88
TABLEAUX D’OBJETS

10/04/2021 T.HAJJI-POO 89
Séance 5

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

10/04/2021 T.HAJJI-POO 93
Héritage JAVA

10/04/2021 T.HAJJI-POO 94
Redéfinition

10/04/2021 T.HAJJI-POO 95
Redéfinition

10/04/2021 T.HAJJI-POO 96
Héritage et constructeur

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é?
10/04/2021 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

10/04/2021 T.HAJJI-POO 98
Héritage et constructeur (super)

10/04/2021 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!!!
!!!

10/04/2021 T.HAJJI-POO 100


Abstraction

10/04/2021 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 …

10/04/2021 T.HAJJI-POO 102


Polymorphisme

10/04/2021 T.HAJJI-POO 103


Polymorphisme

10/04/2021 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.

10/04/2021 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

10/04/2021 T.HAJJI-POO 106

Vous aimerez peut-être aussi