Vous êtes sur la page 1sur 268

Initiation à la Programmation

en Langage JAVA
Par Monsieur Bienvenu KOMBILA

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 1


www.ung.uneing.com

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 2


INTRODUCTION

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 3


INTRODUCTION
 Le langage est un outil offrant la capacité
d’exprimer une pensée et de communiquer au
moyen d’un système de signes conventionnels
(vocaux, gestuel, textuel, graphiques, tactiles,
olfactifs, etc.).

 Ce système de signes conventionnels est doté


d’une sémantique, et le plus souvent d’une syntaxe
et constitue un mécanisme de communication.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 4
INTRODUCTION
 L’algorithmique est « le domaine d’étude qui
regroupe l’ensemble des règles et des techniques
qui sont impliquées dans la conception et la
définition d’algorithmes ».

 Cependant un algorithme est « la description de


l’ensemble des étapes à suivre en partant d’un
problème jusqu’à la solution de ce dernier en un
temps fini et raisonnable ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 5
INTRODUCTION
 L’algorithme est en quelque sorte un moyen pour
le programmeur de présenter son approche du
problème à d’autres personnes et constitue
l’énoncé dans un langage bien défini d’une suite
d’opérations permettant de résoudre un problème
préalablement posé.

 Après la phase de conception et de définition des


algorithmes, nous allons maintenant passer à la
phase de programmation informatique.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 6
INTRODUCTION
 Il s’agit dans cette phase, de traduire tous les
algorithmes obtenus dans la phase précédente
(algorithmique) dans un langage de
programmation informatique.

 Dans le domaine de l’informatique, la


programmation est l’ensemble des activités qui
permettent l’écriture des programmes
informatiques.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 7
INTRODUCTION
 La phase de programmation est une étape
importante du développement de logiciels et pour
créer un programme informatique, on utilise un
langage de programmation informatique.

 Dans le cadre de cette formation, nous utiliserons le


langage de programmation JAVA et sachez qu’un
langage de programmation est une notation
conventionnelle destinée à formuler des algorithmes et
produire des programmes informatiques qui les
appliquent.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 8
INTRODUCTION
 D’une manière similaire à un langage naturel, un
langage de programmation est composé d’un
alphabet, d’un vocabulaire, de règles de grammaire
et de significations.

 Le langage de programmation informatique est


l’intermédiaire entre l’humain et la machine, car il
permet d’écrire dans un langage proche de la
machine mais intelligible par l’humain, des
opérations ou instructions que l’ordinateur doit
effectuer.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 9
INTRODUCTION
 Pour obtenir un programme informatique, il faudra
traduire un algorithme dans un langage de
programmation donnée.

 Le texte obtenu à l’issu de la traduction d’un


algorithme en langage de programmation
informatique est appelé « code source de
programme ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 10
INTRODUCTION
 Sachez que par définition un langage
informatique est différent du langage
machine, il faut donc le traduire pour le rendre
intelligible du point de vue du
microprocesseur.

 Le code source subit alors par la suite une


transformation ou une évaluation dans une forme
exploitable par la machine : ce qui permet
d’obtenir par la suite un programme informatique.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 11
INTRODUCTION
 En effet, le programme ne sera obtenu qu’à l’issue
de la transformation de ce code source via une
opération spécifique et la nature de cette opération
spécifique dépendra du type de langage utilisé.

 On pourra en effet, avoir recours soit à une


compilation du code source ou à une
interprétation du code source voire même une
combinaison des deux (compilation +
interprétation).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 12
INTRODUCTION
 Une interprétation est une opération réalisée par
un programme appelé « interpréteur » et au cours
de laquelle un code source de programme est
analysé puis interpréter et le résultat est affiché à
l’utilisateur.

 Une compilation est une opération réalisée par un


programme appelé « compilateur » et au cours de
laquelle un code source de programme est analysé
puis transformé et le résultat est la génération d’un
fichier autonome dit « exécutable ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 13
INTRODUCTION
 Les langages informatiques peuvent généralement
se classer en trois catégories, à savoir :
 les langages interprétés
 et les langages compilés
 les langages intermédiaires.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 14


INTRODUCTION
 Un programme écrit dans un langage interprété a
besoin d’un logiciel auxiliaire aussi appelé
« interpréteur » pour traduire au fur et à mesure
les instructions du code source de programme.

 Les langages interprétés le plus répandus sont le


HTML, le XML, le JavaScript ou encore le PHP et
le logiciel auxiliaire servant d’interpréteur est le
navigateur web.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 15
INTRODUCTION
 Un programme écrit dans un langage compilé va
être traduit une fois pour toutes par un programme
annexe, appelé « compilateur », afin de générer
un nouveau fichier qui sera autonome, c’est-à-dire
qui n’aura plus besoin d’un programme autre que
lui-même pour s’exécuter.

 Sachez d’ailleurs que ce fichier exécutable est


souvent appelé « Setup ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 16
INTRODUCTION
 Un programme écrit dans un langage compilé a
comme avantage de ne plus avoir besoin, une fois
compilé, de programme annexe ou auxiliaire pour
s’exécuter.

 De plus, la traduction étant faite une bonne fois


pour toute, il est plus rapide à l’exécution.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 17


INTRODUCTION
 Toutefois un programme compilé est moins souple
qu’un programme écrit avec un langage interprété.

 En effet, à chaque modification du fichier


contenant le code source (c’est-à-dire le fichier
intelligible par l’humain) il faudra à nouveau
effectuer l’opération de compilation du
programme pour que les modifications prennent
effet.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 18
INTRODUCTION
 On distingue une catégorie intermédiaire de
langages informatiques. En effet, certains langages
appartiennent en quelque sorte aux deux catégories
(comme LISP, Java, Python, etc.) car le programme
écrit avec ces langages peut dans certaines
conditions subir une phase de compilation
intermédiaire vers un fichier écrit dans un langage
qui n’est pas intelligible (donc qui est différent du
fichier source) et non exécutable (donc nécessité
d’un interpréteur).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 19
INTRODUCTION
 Par exemple : Les applets Java, qui sont des petits
programmes en langage Java et insérés parfois dans
les pages Web, sont des fichiers qui sont compilés
mais que l’on ne peut exécuter qu’à partir d’un
navigateur web.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 20


INTRODUCTION
 Un programme est une succession d’instructions
exécutables par l’ordinateur et une instruction est
une opération élémentaire au sein d’un algorithme
ou au sein d’un code source de programme.

 Un logiciel est un ensemble (regroupement) de


programmes permettant de réaliser des tâches
données. Cet ensemble de programmes forme un
nouveau grand programme.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 21
INTRODUCTION
 La programmation représente donc l’activité de
rédaction du ou des code source d’un logiciel
(ensemble de programme).

 On utilise plutôt le terme « développement » pour


dénoter l’ensemble des activités liées à la
création d’un logiciel et des programmes
informatiques qui le composent.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 22
INTRODUCTION
 On distingue principalement, deux types de
logiciels, à savoir : les « logiciels applicatifs » et
les « logiciels systèmes ».

 Aussi appelé application, le logiciel applicatif est


un logiciel directement utilisé par l’utilisateur pour
réaliser une tâche ou un ensemble de tâches
élémentaires d’un même domaine.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 23
INTRODUCTION
 Le logiciel applicatif permet à l’utilisateur
d’utiliser un ou plusieurs périphériques de son
ordinateur en lui offrant un ensemble de
fonctionnalités associées.

 Les logiciels systèmes constituent la catégorie de


logiciels qui interagissent directement avec le
matériel informatique (hardware).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 24
INTRODUCTION
 Comme logiciels systèmes nous pouvons citer les
« pilotes informatiques » ou encore les « systèmes
d’exploitation ».

 Un logiciel pilote est constitué d’un ensemble de


programmes informatiques destiné à permettre à
un autre programme (souvent le système
d’exploitation) de reconnaitre puis interagir avec
un périphérique.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 25
INTRODUCTION
 Le Système d’Exploitation est le logiciel central
de tout appareil électronique et/ou informatique,
qui se place comme interface entre le matériel et
les logiciels applicatifs.

 Un Système d’Exploitation a pour rôle de gérer


la mémoire, les accès aux périphériques, les
données sur les disques, les programmes, la
sécurité et la collecte des informations.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 26
INTRODUCTION
 Le Système d’Exploitation prend en charge la
programmation des périphériques matériels, il en
coordonne et optimise l'utilisation.

 Le Système d’Exploitation propose aux logiciels


applicatifs des interfaces de programmation
standardisées qui simplifient l'utilisation des
matériels.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 27
INTRODUCTION
Objectifs du cours
 Ce cours est la suite logique du cours sur les
« Techniques Elémentaires et Fondamentales de
Programmation Informatique (Algorithmique) »
et a pour objectifs d’apprendre aux étudiants :
 dans un premier temps les bases de la
programmation en langage JAVA.
 et dans un second temps les bases de la
Programmation Orientée Objet, Graphique et
évènementielle en langage JAVA.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 28
LES BASES DE JAVA

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 29


LES BASES DE JAVA
Définitions
 En programmation informatique, un « IDE » (pour
Integrated Development Environment) est un
Environnement de Développement Intégré.

 Un Environnement de Développement Intégré


est constitué par un ensemble d’outils pour
augmenter la productivité des programmeurs qui
développent des logiciels.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 30
LES BASES DE JAVA
Définitions
 Un Environnement de Développement Intégré
comporte un éditeur de texte (code) destiné à la
programmation, des fonctions qui permettent, par
pression sur un bouton, de démarrer le compilateur
ou l’éditeur de liens ainsi qu’un débogueur en ligne,
qui permet d’exécuter ligne par ligne le code source
du programme en cours de construction.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 31


LES BASES DE JAVA
Définitions
 Certains Environnement de Développement
Intégré sont dédiés à un langage de programmation
particulier et nous travaillerons dans ce cours avec
« Eclipse Pour JAVA » pour nos travaux pratiques.

 Le langage de programmation est l’intermédiaire


entre l’humain et la machine, il permet d’écrire
dans un langage proche de la machine mais
intelligible par l’humain des opérations que
l’ordinateur doit effectuer.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 32
LES BASES DE JAVA
L’Analyse
 Avant de vous lancer à corps perdu dans l’écriture
d’un code source de programme en langage JAVA, je
vous recommande faire une analyse sérieuse du
problème posé.

 Il s’agit de fournir la solution à un problème, la


première étape consiste donc à analyser le problème,
c’est-à-dire en cerner les limites et le mettre en forme
dans un langage descriptif.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 33
LES BASES DE JAVA
L’Analyse
 Le langage descriptif qui sera utilisé dans ce cours
pour écrire le résultat de l’analyse sera appelé langage
JAVA.

 Le langage JAVA sera l’intermédiaire entre nous les


humains et l’ordinateur, il nous permettra d’écrire
dans un langage proche de la machine mais
intelligible par l’homme des opérations que
l’ordinateur doit effectuer.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 34
LES BASES DE JAVA
L’Analyse
 J’ai personnellement initier les étapes suivantes afin
de vous aider à mieux et bien concevoir vos codes
sources de programmes.

 La méthode que je vous propose, repose en cinq (5)


phases qui sont détaillées dans les slides suivants :

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 35


LES BASES DE JAVA
L’Analyse
 Phase 1 : Être concentré puis lire à tête reposée
plusieurs fois consécutives l’énoncé du problème
pour bien et mieux le comprendre afin de cerner
clairement la problématique.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 36


LES BASES DE JAVA
L’Analyse
 Phase 2 : En supposant et considérant que
l’algorithme ou le programme soit déjà écrit, puis
fonctionne correctement, imaginer son
comportement lors d’une éventuelle exécution.
Ensuite, effectuer sur papier avec crayon ou stylo, une
simulation de son exécution aussi bien côté utilisateur
que côté système (machine).

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 37


LES BASES DE JAVA
L’Analyse
 Phase 3 : Lors de la simulation de l’exécution de
l’algorithme, il faut absolument décrire sur papier
avec crayon ou stylo et en langage naturel, chacune
des étapes de la simulation de l’exécution de
l’algorithme ou du programme de manière simple,
claire, précise et sans ambiguïté aucune.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 38


LES BASES DE JAVA
L’Analyse
 Phase 4 : Pour chacune des étapes décrites en
langage naturel lors de la « Phase 3 », écrire à nouveau
sur papier avec crayon ou stylo, mais cette fois-ci en
langage algorithmique ou de programmation, le texte
descriptif de chacune des instructions permettant de
la réaliser (réaliser l’étape). Sans oublier de clairement
identifier sur papier avec crayon ou stylo toujours, la
ou les variables, constantes, énumérations, tableaux,
listes et/ou autres enregistrements qui pourraient
bien y intervenir.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 39
LES BASES DE JAVA
L’Analyse
 Phase 5 : Enfin organiser conformément à la
structure d’un algorithme ou d’un programme,
l’ensemble des instructions obtenues à l’issue de la «
Phase 4 », afin d’avoir un texte de description de
l’algorithme concis, précis sans ambigüité et donc
cohérent et correcte.

 L’étape suivante consiste à compiler ou à interpréter,


le code source (voire les deux), afin d’obtenir le
programme voulu.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 40
LES BASES DE JAVA
Structure d’un code source JAVA
 L’écriture du code source d’un programme est une
opération complexe qui requiert de nombreuses
étapes, le plus important est de comprendre
l’objectif final et de le respecter jusqu’au bout.

 Pour cela, il est souvent préférable de décomposer le


traitement souhaité en une succession d’opérations
plus petites et plus simples afin de voir plus claire et
de ne rien oublier.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 41
LES BASES DE JAVA
Structure d’un code source JAVA
 Un code source du programme sera constitué par la
suite de ces opérations élémentaires, elles devront
donc être décrites avec précision et dans un ordre
cohérent.

 Pour pouvoir représenter cette suite d’opérations,


nous allons introduire une présentation bien précise
en utilisant le langage de programmation
informatique appelé « JAVA ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 42
LES BASES DE JAVA
Structure d’un code source JAVA
 Sachez qu’un bon programme, dans des conditions
d’exécution similaires (avec des données identiques)
doit toujours fournir le même résultat.

 Notez également qu’un programme est correct


lorsque pour chaque instance de son exécution, il se
termine toujours en produisant la bonne sortie, c’est-
à-dire qu’il résout le problème posé.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 43
LES BASES DE JAVA
Structure d’un code source JAVA
 Pour débuter en JAVA, il faut principalement essayer,
prendre le temps de comprendre les bases de ce
langage avant de passer à des choses plus évoluées.

 Il est également important de prévoir un découpage


simple lorsque l’on souhaite réaliser une
fonctionnalité complexe, pour avoir d’une part une
meilleure lisibilité et maintenabilité du code, mais
aussi pour détecter plus rapidement des erreurs
éventuelles.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 44
LES BASES DE JAVA
Structure d’un code source JAVA
 Voici ci-dessous la structure d’un programme en
langage de programmation JAVA :

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 45


LES BASES DE JAVA
Structure d’un code source JAVA
 Chaque ligne d’un code source de programme JAVA
doit comporter une seule instruction et son exécution
correspond à la réalisation de toutes ces instructions,
ligne après ligne, de la première à la dernière, dans cet
ordre.

 Une instruction est une opération élémentaire au


sein d’un algorithme ou au sein d’un code source de
programme et se termine toujours par le symbole
« Point Virgule » en langage JAVA.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 46
LES BASES DE JAVA
Structure d’un code source JAVA
 Une Méthode est une portion de code autonome
(ensemble d’instructions autonome) permettant de
réaliser un traitement bien précis au sein d’un
algorithme ou au sein d’un code source de
programme informatique.
 Une « Fonction » est une méthode qui renvoie au
moins une valeur à l’issue de son exécution
 Une « Procédure » est une méthode qui ne renvoie
pas de valeurs à l’issue de son exécution.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 47
LES BASES DE JAVA
Structure d’un code source JAVA
 Nous remarquons que dans la structure de base d’un
programme JAVA, le code source du programme
principal s’écrit dans une méthode qui s’appelle
« main » et qui est de type « static ».

 Le mot clé « void » en JAVA indique que la méthode


« main » ne renvoie pas de valeur et donc par
conséquent : c’est une procédure.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 48
LES BASES DE JAVA
Structure d’un code source JAVA
 La procédure « main » se trouve dans la racine d’une
classe, c’est pourquoi un modificateur d’accès
(public) est spécifié tout au début de sa déclaration.

 Sachez qu’il existe en langage de programmation


JAVA trois types de modificateurs d’accès, à savoir
« Public », « Private » et « Protected ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 49


LES BASES DE JAVA
Structure d’un code source JAVA
 Ces modificateurs d’accès peuvent être utilisés pour
définir les attributs de visibilité des entités classes,
méthodes et attributs (variables de classe).

 L’utilisation des modificateurs d’accès permet de


définir des niveaux de protection différents, pour
les variables de classe.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 50


LES BASES DE JAVA
Structure d’un code source JAVA
 Les modificateurs d’accès peuvent être placés avant
ou après le type de l’objet « mais la convention veut
qu’ils soient placés avant » et ils ne s’appliquent
qu’aux classes et/ou aux méthodes et/ou aux
attributs.

 De nombreux langages orientés objet introduisent


des attributs de visibilité (modificateur d’accès) pour
règlementer l’accès aux classes, aux objets, aux
méthodes et aux données.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 51
LES BASES DE JAVA
Structure d’un code source JAVA
Modificateurs Description modificateurs d’accès
d’accès
PUBLIC Une variable, une méthode ou une classe déclarée
« public » est visible par tous les autres objets du
projet.
Une variable, une méthode ou une classe déclarée
PRIVATE « private » ne sera visible qu'à l'intérieur de la classe
seulement.
Si une méthode ou une variable est déclarée
PROTECTED « protected », seules les méthodes présentes dans le
même package (dossier) que cette classe ou ses sous
classes pourront y accéder.
PAR DEFAUT : Le niveau « package friendly » est le niveau par défaut
PACKAGE FRIENDLY lorsqu'aucun modificateur n'est pas précisé et il n'existe
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA pas de mot clé pour définir ce niveau. 52
LES BASES DE JAVA
Structure d’un code source JAVA
 Le mot clé « static » en JAVA indique que la
méthode « main » n’agit pas sur des variables
d’instance mais uniquement sur des variables de
classe.

 Sachez que le mot clé « static » ne s’applique qu’aux


variables et aux méthodes et qu’une méthode déclarée
de type « static » peut être utilisées sans instancier un
objet de la classe, c’est-à-dire sans avoir besoin d’un
exemple d’objet de cette classe.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 53
LES BASES DE JAVA
JAVA : Les données
 La plupart des problèmes nécessitent le traitement de
valeurs, certaines sont données dans l’énoncé, et
d’autres sont le résultat des calculs issus de
l’exécution du programme.

 Pour pouvoir être manipulées, ces valeurs doivent


préalablement être stockées en mémoire et nous
utiliseront des éléments appelés « variables » pour
stocker ces valeurs.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 54
LES BASES DE JAVA
JAVA : Les données
 Une variable est un identificateur désignant un
emplacement mémoire qui permet de stocker une
valeur ou une donnée pouvant varier ou non au cours
de l’exécution d’un programme.

 Une variable est définie par :


 un nom unique ;
 un type de définition ;
 et une valeur.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 55
LES BASES DE JAVA
JAVA : Les données
 Le nom de la variable permet de la désigner et de
l’identifier de manière unique dans un code source de
programme.
 Le type de définition de la variable précise son
domaine de définition, c’est à dire l’ensemble des
valeurs que la variable est sensée prendre.
 La valeur de la variable est une donnée qui lui est
attribuée et/ou modifiée au cours de l’exécution du
programme.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 56
LES BASES DE JAVA
JAVA : Les données
 Les variables utilisées au cours de l’exécution d’un
programme JAVA sont déclarées directement au sein
du « main », il n’y a pas de zone spécifique pour
déclarer les variables.

 Pour cela, il suffit d’indiquer, le « modificateur


d’accès de la variable », suivi du « type de la
variable », puis du « nom de la variable » et enfin
d’un « point-virgule » à la fin « ; ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 57
LES BASES DE JAVA
JAVA : Les données
 Notez bien que toutes les variables qui seront
déclarée dans le bloc « main » ne seront pas des
variables de classe et donc ne pourront être déclarées
avec un modificateur d’accès.

 Inversement, toutes les variables qui seront déclarées


en dehors de la procédure « main », mais au sein la
classe (précisément au niveau de sa racine) devront
avoir un modificateur d’accès précisé au début de leur
déclaration.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 58
LES BASES DE JAVA
JAVA : Les données
 Le nom d’une variable commence obligatoirement
par une lettre et peut être constitué de lettres, de
chiffres ou du caractère souligné et les mots clés du
langage JAVA ne doivent pas être utilisés comme
noms de variables.

 Je vous exige de toujours préalablement déclarer


une variable avant de l’utiliser dans votre code
source de programme JAVA.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 59
LES BASES DE JAVA
JAVA : Les données
 Le type d’une variable aussi appelé domaine de
définition de la variable indique l’ensemble des
valeurs que la variable peut prendre et le type d’une
variable définit la façon dont elle est représentée en
mémoire.

 Le JAVA est un langage typé et cela signifie en


particulier que toute variable, constante ou fonction
est forcément d’un type bien précis.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 60
LES BASES DE JAVA
JAVA : Les données
 Les variables peuvent appartenir à plusieurs domaines
(entier, réel, caractère et booléen), chacun étant
associé à des opérations bien spécifiques et en
langage JAVA on distingue plusieurs types de
variables parmi lesquels on peut citer :
 les types numériques entiers (signés et non signés) ;
 les types numériques flottants (décimaux,
rationnels et réels);
 les types caractère et chaine de caractères ;
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 61
LES BASES DE JAVA
JAVA : Les données
 Le type « entier » sera désormais désigné par les
mots-clefs (1) :
 « byte » qui lui est codé sur un octet (1o) et peut
contenir les entiers entre -128 et +127.
 « short » qui lui est codé sur deux octets (2o) et
peut contenir les entiers compris entre -32768 et
+32767.
 « int » qui lui est codé sur quatre octets (4o) et qui
est le type que nous allons adopter par défaut
comme type entier dans notre formation.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 62
LES BASES DE JAVA
JAVA : Les données
 Le type « entier » sera désormais désigné par les mot-
clefs (2) :
« long » qui lui est codé sur huit octets (8o) et afin
d’informer la JVM que le type utilisé est long, vous
DEVEZ ajouter un « L » à la fin de votre nombre,
sinon le compilateur essaiera d’allouer ce dernier
dans une taille d’espace mémoire de type « int » et
votre code ne compilera pas si votre nombre est
trop grand.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 63
LES BASES DE JAVA
JAVA : Les données
 Le type « décimal » et le type « réel » seront
désormais désignés par les mots clés « float » et
« double » qui servent à représenter des nombres en
virgule flottante car correspondent aux différentes
précisions possibles avec :
« float » qui lui est codé sur quatre octets (4o).
« double » qui lui est codé sur huit octets (8o).

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 64


LES BASES DE JAVA
JAVA : Les données
 Le type caractère est le domaine constitué des
caractères alphabétiques, numériques et de
ponctuation et permet de contenir n’importe quel
élément du jeu de caractères utilisé par votre machine.

 Le type « caractère » sera désormais désigné par le


mot-clef « char » et un caractère est délimité par des
simples quotes.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 65
LES BASES DE JAVA
JAVA : Les données
 Le type booléen est le domaine de l’ensemble formé
les deux seules valeurs « VRAI » et « FAUX ».

 Le type booléen sera désormais désigné par le mot-


clef « boolean » et ne peut contenir que deux valeurs,
à savoir « true (vrai) » ou « false (faux) », sans
guillemets (ces valeurs sont natives dans le langage, il
les comprend directement et sait les interpréter).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 66
LES BASES DE JAVA
JAVA : Les données
 Pour faciliter la lecture des codes sources de
programmes, il convient de respecter des règles pour
nommer les variables (1) :
 Le nom d’une variable commence par une
minuscule et ne comporte pas d’espace.
 Il faut également faire attention à bien donner aux
variables un nom explicite.
 Le nom d’une variable doit refléter le but ou le rôle
de la variable dans le code source de programme.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 67
LES BASES DE JAVA
JAVA : Les données
 Pour faciliter la lecture des codes sources de
programmes, il convient de respecter des règles pour
nommer les variables (2) :
 Si le nom de la variable est composé de plusieurs
mots, il faut faire commencer chacun d’eux par une
majuscule avec la première lettre en minuscule et
ne pas faire figurer de traits d’union.
 Exemple : laVitesse, laValeurMax, leCompteur, etc.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 68


LES BASES DE JAVA
JAVA : Les données
 La valeur d’une variable est la seule caractéristique de
cette dernière qui soit modifiable au cours de
l’exécution du programme.

 Au début du programme, toutes les variables ont des


valeurs inconnues et on peut leur donner des valeurs
grâce à une opération appelée « opération
d’affectation ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 69
LES BASES DE JAVA
JAVA : Les données
 L’opération d’affectation est un mécanisme
permettant d’attribuer, de donner ou encore
d’affecter une valeur ou donnée à une variable ou à
une constante.

 L’opérateur d’affectation en langage JAVA est


symbolisé par le caractère égal « = » et sachez que le
même opérateur est utilisé quelque soit le type de la
variable (numérique, caractère ou booléen).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 70
LES BASES DE JAVA
JAVA : Les données
 Lors d’une affectation, la valeur de la partie droite
doit obligatoirement être du type de la variable dont
la valeur est modifiée ou attribuée.

 L’exécution de programme se déroule de manière


séquentielle et ligne après ligne, les variables peuvent
parfois changer de valeurs à mesure du déroulement
de l’exécution du programme et l’existence d’une
variable n’a de sens que le temps de l’exécution du
programme.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 71
LES BASES DE JAVA
JAVA : Les données
 L’opération d’initialisation est un mécanisme
permettant d’attribuer, de donner ou encore
d’affecter une valeur ou donnée de départ ou initiale
à une variable.

 L’opérateur d’affectation est utilisé pour effectuer


l’opération d’initialisation et lors d’une initialisation,
la valeur initiale doit obligatoirement être de même
type que la variable à initialiser.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 72
LES BASES DE JAVA
JAVA : Les données
 Les erreurs à éviter sur l’utilisation des variables sont :
 Une variable n’est déclarée qu’une seule fois dans
un programme.
 Avant de pouvoir utiliser une variable, il faut l’avoir
déclarée.
 Avant de pouvoir utiliser la valeur d’une variable,
une valeur doit obligatoirement lui être attribuée au
préalable.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 73
LES BASES DE JAVA
JAVA : Les données
 Dans un code JAVA, il faut souvent stocker les données à
traiter, certaines de ces données sont connues à l’avance
et ne varieront pas tout le long de l’exécution du
programme : il s’agit des « constantes ».

 Une constante est un identificateur désignant un


emplacement mémoire permettant de stocker des valeurs
numériques ou chaines de caractères qui ne seront pas
modifiées pendant l’exécution du programme.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 74
LES BASES DE JAVA
JAVA : Les données
 Parfois, on manipule des données qui restent
constantes durant toute l’exécution du programme et
pour stocker de telles valeurs, on peut utiliser des
éléments appelés « constantes » qui sont en fait des
« sortes de variables » dont on ne peut changer la
donnée qu’elles contiennent.

 En langage JAVA, pour signaler qu’un élément est


une constante, on utilise le mot clef réservé « final »
comme premier mot lors de sa déclaration.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 75
LES BASES DE JAVA
JAVA : Les données
 On peut déclarer et initialiser une constante en une
seule ligne : «final typeConst nomConst = valeurConst;»

 En langage de programmation JAVA, on ne peut plus


changer la valeur d’une constante une fois qu’elle a
été initialisée et si on tente de le faire, on se retrouve
face à une erreur de compilation.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 76


LES BASES DE JAVA
JAVA : Les données
 Utiliser les constantes est bénéfique pour deux
principales raisons.
 La première est que cela évitera d’accidentellement
modifier la valeur d’un élément qui ne devrait pas
changer, en effet le compilateur veillera à ce que
cela n’arrive pas.
 La deuxième est que cela permet au compilateur de
faire des optimisations pouvant accélérer
l’exécution du code.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 77
LES BASES DE JAVA
JAVA : Les données
 Par convention, les noms de variables et/ou des
constantes commencent par une minuscule et ne
contiennent des majuscules qu’à chaque changement
de mot, pour des noms composés.

 Pour les constantes, le nom est complètement en


majuscules avec les mots séparés par des tirets de
soulignement ( _ ).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 78
LES BASES DE JAVA
JAVA : Les opérateurs
 Les opérations utilisables sur les données de type
numérique sont toutes les opérations arithmétiques
classiques connues à savoir : l’addition (+), la
soustraction (-), le produit (*) et la division (/).

 On pourra utiliser sur les éléments de type entier ou


réel, les opérateurs de comparaison classiques à savoir
: « < », « > », « == », « != », « <= » et « >= ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 79
LES BASES DE JAVA
JAVA : Les opérateurs
 Deux opérations sont spécifiques aux entiers, à savoir: la
division entière (/) et le modulo (%).
 L’opérateur « / » entre deux entiers retourne le
résultat entier de la division entre le premier et le
deuxième.
 L’opérateur « % » entre deux entiers retourne le
reste de la division entière entre le premier et le
deuxième.
 Par exemple : (15/2) = 7 et (15%2) = 1.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA
En effet : 15 = 7x2 + 1. 80
LES BASES DE JAVA
JAVA : Les opérateurs
 Les opérateurs de calcul :
Opérateurs Descriptions
+ Addition de deux valeurs numériques.
- Soustraction de deux valeurs numériques.
* Multiplication de deux valeurs numériques.
/ Division de deux valeurs numériques.
= Affectation d’une valeur à une variable.
% Reste de la division entière entre deux valeurs
numériques.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 81


LES BASES DE JAVA
JAVA : Les opérateurs
 Les opérateurs d’assignation :
Opérateurs Descriptions
+= Ajoute à la variable de gauche la variable de droite.
Stocke la nouvelle valeur dans la variable de gauche.
-= Soustrait à la variable de gauche la variable de droite.
Stocke la nouvelle valeur dans la variable de gauche.
*= Multiplie la variable de gauche par la variable de droite.
Stocke la nouvelle valeur dans la variable de gauche.
/= Divise la variable de gauche par la variable de droite.
Stocke la nouvelle valeur dans la variable de gauche.
%= Calcule le modulo entre deux valeurs numériques.
Stocke la nouvelle valeur dans la variable de gauche.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 82
LES BASES DE JAVA
JAVA : Les opérateurs
 Les opérateurs d’incrémentation :
Opérateurs Descriptions
++ Incrémente de 1 la valeur de la variable.
-- Décrémente de 1 la valeur de la variable.
 Les opérateurs logiques :
Opérateurs Descriptions
&& Opérateur ET : implique que toutes les conditions soient
réalisées.
|| Opérateur OU : implique qu'au moins une des conditions soit
réalisée.
! Opérateur de négation : implique que la condition ne soit
pas réalisée.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 83
LES BASES DE JAVA
JAVA : Les opérateurs
 Les opérateurs de comparaison (1) :
Opérateurs Descriptions
== Opérateur d’égalité : retourne 1 si les éléments comparés
sont égaux, 0 sinon.
!= Opérateur de différence : retourne 1 si les éléments
comparés sont différents, 0 sinon.
< Opérateur d’infériorité stricte : retourne True si la
comparaison est correcte, False sinon.
<= Opérateur d’infériorité : retourne True si la comparaison
est correcte, False sinon.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 84


LES BASES DE JAVA
JAVA : Les opérateurs
 Les opérateurs de comparaison (2) :
Opérateurs Descriptions
> Opérateur de supériorité stricte : retourne True si la
comparaison est correcte, False sinon.
>= Opérateur de supériorité : retourne True si la comparaison
est correcte, False sinon.
=== Opérateur d'identité : compare la valeur et le type des
variables, retourne 1 si les éléments comparés sont les
mêmes, 0 sinon.
!== Opérateur de différence : compare la valeur et le type
des variables, retourne 1 si les éléments comparés sont
différents, 0 sinon.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 85
LES BASES DE JAVA
JAVA : Les opérateurs
 La table de vérité suivante donne la réponse « True »
ou « False » de l’opération logique « && ».
Opération « && » FAUX VRAI
FAUX FAUX FAUX
VRAI FAUX VRAI

 La table de vérité suivante donne la réponse « True »


ou « False » de l’opération logique « || ».
Opération « || » FAUX VRAI
FAUX FAUX VRAI
VRAI VRAI VRAI
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 86
LES BASES DE JAVA
JAVA : Les opérateurs
 Nous allons distinguer un opérateur de
concaténation dans le cadre de ce cours, à savoir :
« + ».
 Utilisé avec des valeurs numériques , l’opérateur
« + » effectue l’addition, mais utilisé avec des
chaines de caractères, il effectue la concaténation
de ces chaines.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 87


LES BASES DE JAVA
JAVA : « Entrées » et « Sorties »
 Les programmes utilisent fréquemment des
instructions permettant l’affichage de données a
l’écran et la saisie de valeurs au clavier par l’utilisateur,
puis le stockage de ces valeurs en mémoire.

 Nous travaillerons dans un premier temps en mode


console, puis dans un second temps en mode
graphique.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 88
LES BASES DE JAVA
JAVA : « Entrées » et « Sorties »
 Pour afficher un message à l’utilisateur de notre
programme en mode console du langage JAVA, nous
utiliserons : « System.out.println( ) ».

« System.out.println » pour dire au système qu’on


veut accéder à son périphérique principal de sortie,
qui n’est rien d’autre que l’écran de la machine pour
imprimer une ligne dessus.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 89
LES BASES DE JAVA
JAVA : « Entrées » et « Sorties »
 Dans le cadre de ce cours, l’instruction d’affichage de
données à l’écran sera :
 System.out.println(nomVariable) : Si on veut
afficher à l’écran le contenu de la variable
« nomVariable ».
 System.out.println("Bonjour à tous.") : Si on
veut afficher à l’écran la chaine de caractère
« Bonjour à tous. ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 90
LES BASES DE JAVA
JAVA : « Entrées » et « Sorties »
 Pour récupérer une donnée ou une valeur au clavier,
nous allons utiliser un objet de type « Scanner », afin
d’analyser le clavier et de récupérer son contenu.

 Après avoir créé notre « objet Scanner », nous devons


déclarer une variable qui va permettre de stocker la
valeur que nous récupèrerons au niveau du clavier à
partir de l’objet Scanner.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 91
LES BASES DE JAVA
JAVA : « Entrées » et « Sorties »
 Nous allons alors procéder en deux temps :
« Scanner nomScan = new Scanner(System.in); ».

« nomVar = nomScan.nextTYPEVAL ; ».

« System.in » permet de dire au système que nous


voulons accéder à son périphérique principal d’entrée
qui n’est rien d’autre que le clavier de la machine
(pour le scanner).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 92
LES BASES DE JAVA
JAVA : « Entrées » et « Sorties »
 La première instruction nous permet de scanner le
clavier et récupérer la donnée qui s’y trouve à l’aide
de notre objet scanner.

 La deuxième instruction permet de récupérer la


donnée contenue dans notre objet scanner pour la
stocker dans un espace en mémoire prévu pour ça.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 93


LES BASES DE JAVA
JAVA : « Entrées » et « Sorties »
 L’expression « nextTYPEVAL » varie en fonction du
type de la donnée à récupérer au clavier, en effet :
 Pour un « byte », nous aurons « nextByte ».
 Pour un « short », nous aurons « nextShort ».
 Pour un « int », nous aurons « nextInt ».
 Pour un « long », nous aurons « nextLong ».
 Pour un « float », nous aurons « nextFloat ».
 Pour un « double », nous aurons « nextDouble ».
 Pour un « string », nous aurons « nextLine ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 94
LES BASES DE JAVA
JAVA : « Entrées » et « Sorties »
 En résumé, la lecture des entrées clavier se fait via l’objet
« Scanner » en mode console et ce dernier se trouve
dans le package « java.util » que vous devrez importer.

 Pour pouvoir récupérer ce que vous allez taper dans la


console, vous devez initialiser l’objet Scanner avec
l’entrée standard du système (System.in). Et n’oubliez
pas qu’il y a une méthode de récupération de données
pour chaque type de donnée sauf pour les caractères
(char).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 95
LES BASES DE JAVA
JAVA : « Entrées » et « Sorties »
 Nous allons également nous munir de :
 « break » qui est l’instruction qui nous permettra
de sortir d’un niveau au sein d’un élément du code
source (comme d’une structure de contrôle, d’une
fonction ou d’une procédure) et ce à n’importe
quel moment.
 « System.exit( ) » qui est l’instruction qui nous
permettra de sortir d’un programme à n’importe
quel moment avec une valeur de retour par défaut
c’est la valeur zéro (0).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 96
LES STRUCTURES
DE CONTROLE

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 97


LES STRUCTURES DE CONTROLE
Définitions
 Nous allons introduire à présent les structures de
contrôle qui sont des instructions permettant de
construire des algorithmes ou des programmes
au déroulement non linéaire et des algorithmes
ou des programmes au déroulement itératif.

 Les structures de contrôle permettent également


d’exécuter un ensemble d’instructions en fonction
d’une ou de plusieurs conditions.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 98
LES STRUCTURES DE CONTROLE
Définitions
 Nous verrons dans le cadre de ce cours sept
structures de contrôle, à savoir :
 quatre structures sélectives qui sont :
« if…else », « switch », « try…catch » et la
« condition ternaire » (opérateur ternaire).
 trois structures répétitives qui sont : « while »,
« do … while » et « for ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 99


LES STRUCTURES DE CONTROLE
Structures Sélectives
 Aussi appelée « instruction sélective », une structure
sélective est une opération au sein d’un algorithme ou
au sein d’un code source de programme permettant
de construire des algorithmes ou des programmes au
déroulement non linéaire.

 La structure sélective repose sur l’évaluation, par


l’algorithme ou le programme d’une variable et en
fonction de la valeur de celle-ci un seul bloc
d’instructions est exécuté.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 100
LES STRUCTURES DE CONTROLE
Structures Sélectives
 Nous verrons dans le cadre de cette formation quatre
structures sélectives qui sont :
« if…else »
« switch »
« try…catch »
 et l’ « opérateur ternaire ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 101


LES STRUCTURES DE CONTROLE
Structures Sélectives
 Voici le formalisme en langage JAVA de la structure
sélective « if…else » :

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 102


LES STRUCTURES DE CONTROLE
Structures Sélectives
 L’instruction sélective « if … else » repose sur
l’évaluation, d’une seule condition à valeur booléenne
(« true » ou « false »), qui détermine également la
suite du déroulement de l’exécution du programme.

 Cette structure de contrôle sélective nous permettra


désormais de concevoir des programmes qui
n’exécuteront que certaines lignes de code et d’autres
non.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 103
LES STRUCTURES DE CONTROLE
Structures Sélectives
 La condition est une expression booléenne dont la
valeur détermine le bloc d’instruction à exécuter car
le bloc d’instructions exécuté dépend de la valeur
booléenne de la condition.
 Si la condition vaut « true », seul le « premier
bloc d’instructions » est exécuté et le deuxième
ne sera pas exécuté.
 Si la condition vaut « false », seul le « deuxième
bloc d’instructions » est exécuté et le premier ne
sera pas exécuté.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 104
LES STRUCTURES DE CONTROLE
Structures Sélectives
 Sachez que l’instruction « else » n’est pas obligatoire
et n’est utilisé que si nécessité. L’un des blocs est
obligatoirement exécuté et les autres ne le seront pas.

 La mise en page doit permettre de visualiser les


niveaux d’exécution des instructions du programme
et l’ensemble des instructions du bloc doit
nécessairement être décalé à droite d’une tabulation.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 105
LES STRUCTURES DE CONTROLE
Structures Sélectives
 Les décalages dans l’écriture d’un code source de
programme sont nécessaires à sa bonne lisibilité.
 Si le bloc comporte plusieurs instructions (à partir
de deux instructions), il est obligatoire de le
délimiter par des accolades (« { » et « } »).
 Si le bloc d’instruction comporte une seule
instruction, il n’est pas nécessaire de le délimiter
par des accolades (« { » et « } »).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 106
LES STRUCTURES DE CONTROLE
Structures Sélectives
 La règle est assez simple :
 dès qu’un nouveau bloc d’instructions commence
par une accolade ouvrante « { », toutes les lignes
suivantes sont décalées d’une tabulation vers la
droite.
 dès qu’un bloc se termine par une accolade
fermante « } », toutes les lignes suivantes sont
décalées d’une tabulation vers la gauche.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 107
LES STRUCTURES DE CONTROLE
Structures Sélectives
 Formalisme de « switch »

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 108


LES STRUCTURES DE CONTROLE
Structures Sélectives
 L’instruction sélective « switch » permet d’évaluer
une variable puis exécute un bloc d’instructions en
fonction de la valeur contenue dans cette variable.

 Lorsque vous utiliserez la structure de contrôle


sélective « switch », n’oubliez jamais de déclarer une
variable qui prendra les valeurs des différents cas à
tester dans le programme et sachez que le type de
cette variable dépends des valeurs qu’elle sera
susceptible de recevoir.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 109
LES STRUCTURES DE CONTROLE
Structures Sélectives
 La structure « switch » permet de tester (comparer)
la valeur d’une variable avec différentes valeurs, à
savoir les valeurs qui suivent les instructions « case ».

 Lorsque la première valeur correspondant à


l’expression testée est exécutée, le bloc de code est
traité, puis l’instruction « break » impose la sortie de
la structure « switch ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 110
LES STRUCTURES DE CONTROLE
Structures Sélectives
 L’instruction « default » permet de gérer le cas ou
aucune des valeurs proposées ne correspond à aucun
des cas sensés se produire (traitement par défaut).

 Il est alors possible de définir le code à traiter dans ce


cas de figure précis, car c’est ce bloc qui permet de
définir les instructions à exécuter par défaut.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 111


LES STRUCTURES DE CONTROLE
Structures Sélectives
Voici le formalisme en langage JAVA de la structure
sélective « try…catch » :

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 112


LES STRUCTURES DE CONTROLE
Structures Sélectives
 La structure « try…catch » permet de traiter un bloc
d’instruction dans la partie « try » et d’intercepter les
erreurs possibles de celui-ci dans la partie « catch ».

 Sa principale force est de permettre la poursuite des


traitements qui suivent la structure « try…catch »
lorsqu’une erreur est rencontrée.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 113


LES STRUCTURES DE CONTROLE
Structures Sélectives
 L’opérateur ternaire est une structure sélective
permettant d’attribuer une valeur à une variable en
fonction d’une condition donnée.

 L’opérateur ternaire est défini en JAVA de la manière


suivante :
«nomVar = (Condition) ? expres_Si_VRAI : expres_Si_FAUX;»

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 114


LES STRUCTURES DE CONTROLE
Structures Sélectives
 Le principe de fonctionnement de l’opérateur ternaire
est le suivant :
 La variable « nomVar » prendra la valeur renvoyée
par l’expression « expres_Si_VRAI », si
l’interprétation de la « Condition » renvoie la
valeur « true ».
 La variable « nomVar » prendra la valeur renvoyée
par l’expression « expres_Si_FAUX », si
l’interprétation de la « Condition » renvoie la
valeur « false ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 115
LES STRUCTURES DE CONTROLE
Structures Répétitives
 Avant d’aborder les structures de contrôles
répétitives, nous allons d’abord définir une opération
récurrente et très fréquemment utilisée dans ces
structures de contrôle répétitives (boucles) :
l’incrémentation.

 L’opération d’incrémentation est le mécanisme


permettant d’augmenter la valeur d’une variable.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 116
LES STRUCTURES DE CONTROLE
Structures Répétitives
 La quantité (la valeur du nombre) utilisée pour
augmenter la valeur de la variable à incrémenter est
appelé « pas d’incrémentation ».

 Lorsque la valeur du pas d’incrémentation n’est


pas précisée, par défaut c’est la valeur « UN (1) » qui
est utilisée pour effectuer l’opération.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 117


LES STRUCTURES DE CONTROLE
Structures Répétitives
 Aussi appelé « instruction répétitive », une structure
répétitive est une opération au sein d’un algorithme ou au
sein d’un code source de programme permettant de
construire des algorithmes ou des programmes au
déroulement itératif.

 La structure répétitive repose sur l’évaluation, par


l’algorithme ou le programme, d’une condition et en
fonction que la condition soit vraie ou fausse un
ensemble d’instruction est exécuté de manière itérative
(répétitive).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 118
LES STRUCTURES DE CONTROLE
Structures Répétitives
 Nous verrons dans le cadre de cette formation trois
structures répétitives qui sont :
« while »
« do.while »
« for ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 119


LES STRUCTURES DE CONTROLE
Structures Répétitives
 Les structures répétitives permettent d’exécuter
plusieurs fois consécutives un même bloc
d’instructions et la répétition s’effectue tant que la
condition de répétition est vérifiée.

 La première structure de contrôle répétitive que nous


verrons est la boucle « while » et sa syntaxe est
particulièrement simple, il s’agit en principe de
contrôler la répétition de l’exécution d’un bloc.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 120
LES STRUCTURES DE CONTROLE
Structures Répétitives
 Voici le formalisme en langage JAVA de la structure
répétitive « while » :

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 121


LES STRUCTURES DE CONTROLE
Structures Répétitives
 La répétition s’effectue tant que la condition est
vérifiée, c’est-à-dire que tant que l’interprétation de
l’expression booléenne renvoie la valeur « true ».

 La condition de répétition conduit la poursuite ou


l’arrêt de l’exécution du bloc d’instructions et l’état
des variables du bloc d’instructions change à chaque
tour de boucle (ou itération) et nous devons faire en
sorte qu’il en soit ainsi.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 122
LES STRUCTURES DE CONTROLE
Structures Répétitives
 Il faut cependant faire attention car la variable utilisée
pour effectuer la comparaison doit évoluer au sein du
code de la boucle sans quoi celle-ci sera infinie.

 Très fréquemment la comparaison est faite sur une


valeur numérique et il faut dans ce cas à la fin de la
boucle incrémenter cette valeur. La valeur qui
s’incrémente presque toujours dans la boucle
« while » est stockée dans une variable souvent
appelée « compteur ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 123
LES STRUCTURES DE CONTROLE
Structures Répétitives
 La deuxième structure de contrôle répétitive que
nous verrons est la boucle « do … while ». Les
structures répétitives « while » et « do … while » ont
obligatoirement (forcément) la même condition.

 La différence réside dans le fait que la structure de


contrôle répétitive « do … while » effectue
l’évaluation de la condition booléenne après avoir
exécuté au moins une première fois le bloc
d’instructions.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 124
LES STRUCTURES DE CONTROLE
Structures Répétitives
 Voici le formalisme en langage JAVA de la structure
répétitive « do…while » :

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 125


LES STRUCTURES DE CONTROLE
Structures Répétitives
 Le bloc d’instructions de la boucle « do…while »
sera au moins exécuté une fois, même si la condition
décrite plus bas au niveau du « while » n’est pas
vérifiée.

 En effet, cette condition n’est testée qu’après une


première exécution du bloc d’instructions,
contrairement à la boucle « while » qui elle effectue
d’abord le test avant d’exécuter le bloc d’instructions.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 126
LES STRUCTURES DE CONTROLE
Structures Répétitives
 Pour écrire une boucle prenez l’habitude de :
 Prévoir un compteur et chercher la condition
d’arrêt.
 Ecrire sa négation à l’aide du tableau de
correspondance des conditions d’arrêt qui suit (à
comprendre et à connaître par cœur).

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 127


LES STRUCTURES DE CONTROLE
Structures Répétitives
 Pour écrire une boucle, trois étapes sont obligatoires
(1) :
 L’initialisation de la variable compteur, et au
besoin, d’autres variables du bloc, avant d’entrer
dans la boucle.
 La condition de poursuite : il existe toujours
différentes conditions de poursuite, qui sont toutes
équivalentes, à vous d’opter pour celle qui convient
le mieux.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 128
LES STRUCTURES DE CONTROLE
Structures Répétitives
 Pour écrire une boucle, trois étapes sont obligatoires
(2) :
 L’incrémentation du compteur et la
modification d’au moins une valeur dans la boucle
pour que la répétition exprime une évolution des
calculs.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 129


LES STRUCTURES DE CONTROLE
Structures Répétitives
 Ce serait une très grosse et grave erreur de négliger
l’une des étapes précisées précédemment :
 Vous risquez de ne jamais entrer dans la
boucle si la condition de poursuite est fausse dès
le début.
 Ou vous risquez de ne jamais en sortir, si une
fois entré, la condition de sortie n’est jamais
possible, il s’agira alors d’une « boucle infinie ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 130
LES STRUCTURES DE CONTROLE
Structures Répétitives
 La troisième structure de contrôle que nous verrons
est la boucle « for » qui est utilisée très
fréquemment en programmation informatique
pour réitérer une exécution un nombre de fois
connu à l’avance.

 Cette écriture est pratique puisqu’elle désigne


l’ensemble de la boucle en une seule ligne et
l’incrémentation d’une unité de la variable
« compteur » est (implicite), sous-entendue à la fin de
la boucle.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 131
LES STRUCTURES DE CONTROLE
Structures Répétitives
 La boucle « for » permet d’exécuter un bloc
d’instructions autant de fois que, la condition remplie
par le compteur est respectée. En JAVA la structure
de contrôle répétitive « for » comprend trois
éléments, à savoir :
 L’initialisation de la variable « compteur ».
 La condition d’arrêt de la boucle.
 L’incrémentation ou décrémentation de la
variable « compteur ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 132
LES STRUCTURES DE CONTROLE
Structures Répétitives
 Le formalisme de la boucle « for » est :

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 133


LES STRUCTURES DE CONTROLE
Structures Répétitives
 L’initialisation de la variable compteur consiste à lui
affecter une valeur de départ.
 La condition d’arrêt de la boucle consiste à préciser
la valeur limite que prendra la variable « compteur ».
 L’incrémentation ou la décrémentation de la
variable « compteur » consistera à augmenter ou à
diminuer la valeur de la variable « compteur » à
chaque tour de boucle.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 134
LES STRUCTURES DE CONTROLE
Structures Répétitives
 Les boucles sont des structures qui permettent de
répéter une séquence du programme un nombre de
fois spécifique qui peut être soit défini, soit lié à une
condition.

 Effectuer une boucle en JAVA peut se faire avec les


instructions « while » ou « do..while » ou encore
« for ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 135
LES STRUCTURES DE CONTROLE
Structures Répétitives
 Les instructions « break » et « continue » permettent
de gérer les passages et les sorties des boucles :
 break : provoque la sortie immédiate de la boucle
courante.
 continue : interrompt le code restant pour la
valeur en cours et provoque le passage à la valeur
suivante mais reste toujours dans la boucle pour
continuer l’exécution avec les valeurs suivantes.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 136
INITIATION A LA POO
EN JAVA

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 137


INITIATION A LA POO EN JAVA
Définitions
 La Programmation Orientée Objet (POO) est le
volet de la programmation informatique permettant
d’analyser et de modéliser les éléments de la vie
autour de nous humains, afin de les créer de manière
virtuelle puis simuler correctement leurs
caractéristiques et leurs comportements comme dans
leur environnement naturel : on dit que la POO
consiste à faire « coïncider » la réalité avec les lignes
de codes.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 138
INITIATION A LA POO EN JAVA
Définitions
 La Programmation Orientée Objet (POO) permet
de concevoir une application informatique sous la
forme d’un ensemble de « briques » de logicielles
appelées « objets ».

 Ensemble dans lequel chaque objet joue un rôle bien


précis et peut communiquer avec les autres objets.
Les interactions entre les différents objets vont
permettre à l’application informatique de réaliser les
fonctionnalités attendues.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 139
INITIATION A LA POO EN JAVA
Définitions
 La Programmation Orientée Objet (POO) est un
type de programmation informatique qui s’articule
autour d’objets et de données, plutôt que d’actions et
de logique : la POO propose une méthodologie
centrée sur les données.

 Concrètement la POO consiste en la définition et


l’interaction de briques logicielles appelées « objets ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 140
INITIATION A LA POO EN JAVA
Définitions
 Un objet est la représentation d’un élément matériel
ou immatériel ayant un rôle dans le programme ou
système que l’on désire mettre en place.

 Un objet peut-être un élément concret (livre,


étudiant, enseignant, employé, bâtiment, etc.) ou
abstraits (organisation, compte bancaire, nombre
complexe, point géométrique dans le plan, etc.) du
système cible que l’on peut identifier clairement.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 141
INITIATION A LA POO EN JAVA
Définitions
 Un objet possède des caractéristiques que nous
appellerons « attributs » et des comportements que
nous appellerons « méthodes ».

 Un attribut de classe représente une propriété ou


une caractéristique de tout objet de cette classe et sa
valeur doit être unique pour tout exemple d’objet de
la classe, il doit être homogène, c’est-à-dire avoir un
sens commun pour tous les exemples d’objets de
cette classe.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 142
INITIATION A LA POO EN JAVA
Définitions
 Une méthode de classe représente une action
réalisable sur tout objet de cette classe et constitue
une partie du comportement des objets de cette
classe.

 Les méthodes d’une classe vont permettre par la suite


de manipuler tous les objets de cette classe, elles
joueront en effet, le rôle d’opération pour les objets
de la classe en plus de celui de description de
comportements.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 143
INITIATION A LA POO EN JAVA
Définitions
 Tous les objets ayants les mêmes caractéristiques et
les mêmes comportements seront regroupés dans des
entités que nous appellerons « classe d’objets ».

 Une classe est un élément qui permet au


programmeur informatique de catégoriser ses objets
en fonction des caractéristiques et des
comportements que ces objets ont en commun.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 144
INITIATION A LA POO EN JAVA
Définitions
 Chaque classe doit posséder au moins une méthode
particulière appelée « constructeur » qui permet non
seulement de créer de nouveaux objets de la classe
mais aussi porte obligatoirement le même nom que la
classe.

 Ne seront retenus comme attributs et méthodes


d’une classe que les caractéristiques et les
comportements qui sont communes à tous les objets
de cette classe sans distinction aucune.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 145
INITIATION A LA POO EN JAVA
Définitions
 Nous distinguons généralement :
 Les classes qui existent déjà, c’est-à-dire que soit le
langage de programmation nous les fourni ou soit
qu’un autre programmeur les a déjà créés : c’est le
cas le plus simple.
 Les classes qui n’existent pas déjà, nous devons par
conséquent les créer nous-même. Nous devons en
effet, construire nos propres outils, il s’agira
d’écrire nos propres classes.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 146
INITIATION A LA POO EN JAVA
Définitions
 Une classe peut être vue comme une entité
regroupant un ensemble de données, de fonctions et
de procédures de traitement ce qui nous donne
l’équation « Classe ← Données + Traitements ».

 Une fois la modélisation d’une classe terminée, il est


possible de la traduire dans n’importe quel langage de
programmation orienté objet.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 147
INITIATION A LA POO EN JAVA
Définitions
 Dans la définition d’une classe, on commence par la
nommer, ensuite on retrouve la définition des
attributs et des méthodes de la classe. Une classe peut
être déclarée de la manière suivante :
1) spécification du nom et du type de la classe ;
2) déclaration des attributs de la classe ;
3) signature du ou des constructeurs de la classe ;
4) signature des méthodes (procédures et fonctions)
de la classe.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 148
INITIATION A LA POO EN JAVA
Définitions
 En fait, déclarer une classe revient à la définir, puis
elle sera par la suite reconnue et utilisable :
 Un attribut de classe est une variable interne à la
classe et les attributs d’une classe permettent de
caractériser les objets de cette classe.
 Une méthode est une sorte de mini-programme,
on peut donc y déclarer des variables locales et y
utiliser tous les éléments de programmation déjà
connus.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 149
INITIATION A LA POO EN JAVA
Définitions
 Dans chaque méthode, il est possible de définir des
variables locales à la méthode, qui n’existeront que le
temps de son exécution et les variables utilisées dans
une méthode sont :
 les attributs de classe ;
 les paramètres passés entre les parenthèses lors de
l’appel de la méthode ;
 toutes les variables définies dans le bloc
d’instructions de la méthode (localement).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 150
INITIATION A LA POO EN JAVA
Définitions
 Une variable locale est une variable qui est déclarée
dans une méthode et donc ne sera accessible que
dans cette méthode : la variable locale à une méthode
est supprimée à la fin de l’exécution de cette celle-ci.

 Une variable globale est une variable déclarée en


dehors d’une méthode et donc sera accessible depuis
toutes les fonctions ou procédures de tous les fichiers
source du projet.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 151
INITIATION A LA POO EN JAVA
Définitions
 Une classe est un modèle d’objet et constitue un
nouveau type créé par le programmeur qui sert de
modèle pour tous les objets de cette classe.

 Une classe spécifie les informations (données) et les


actions (opérations, traitements) qu’auront en
commun tous les objets qui en sont issus.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 152


INITIATION A LA POO EN JAVA
Définitions
 Merci de ne pas confondre les notions « objet » et «
classe », car une classe est un type abstrait comme un
compte bancaire par exemple et un objet est un
exemplaire concret d’une classe comme le compte
bancaire de KOMBINS par exemple.

 Pour faire plus simple « un objet est une variable


particulière dont le type est une classe ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 153
INITIATION A LA POO EN JAVA
Encapsulation
 L’encapsulation consiste à restreindre l’accès à
certains éléments d’une classe (le plus souvent ses
attributs et méthodes).

 L’objectif de l’encapsulation est de ne laisser


accessible que le strict nécessaire pour que la classe
soit utilisable et il constitue l’un des principes
fondamentaux de la POO.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 154
INITIATION A LA POO EN JAVA
Encapsulation
 L’utilisation des méthodes ainsi que l’accès aux
attributs en dehors de la classe n’est pas toujours
permis par celui qui l’a conçue.

 Le programmeur de la classe a un moyen de


permettre ou d’empêcher l’utilisation d’une méthode,
ou l’accès direct à un attribut de sa classe à travers les
mots clés « Public » et « Privé ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 155
INITIATION A LA POO EN JAVA
Encapsulation
 L’encapsulation offre de nombreux avantages :
 la diminution des risques de mauvaise
manipulation d’une classe ;
 la création de classes de type « boîtes noires » par
masquage des détails internes ;
 la possibilité de modifier les détails internes d’une
classe (c’est-à-dire la manière dont elle fonctionne)
sans changer son comportement extérieur (c’est-à-
dire ce qu’elle permet de faire).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 156
INITIATION A LA POO EN JAVA
Accesseurs
 Pour des raisons de sécurité, il est généralement
recommandé au programmeur d’une classe de cacher
le nom et la nature des attributs de sa classe.

 C’est pourquoi la convention recommande de


déclarer les variables de classes (les attributs de classe)
de type « Privé », ce qui a pour conséquence que seuls
les éléments de la même classe pourront y accéder.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 157
INITIATION A LA POO EN JAVA
Accesseurs
 L’encapsulation des attributs a permis d’interdire tout
accès (accidentelle ou volontaire) des attributs d’une
classe en dehors de celle-ci.

 Pour permettre que des attributs de classes soient


accessibles en lecture et/ou en écriture depuis
l’extérieur de la classe, le programmeur doit prévoir
des méthodes appelées « accesseurs ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 158
INITIATION A LA POO EN JAVA
Accesseurs
 En programmation orientée objet, un accesseur est
une méthode de classe qui est conçue et écrite pour
permettre d’accéder à un attribut de classe en lecture
et / ou en écriture en dehors de cette classe.

 C’est pourquoi, il est fréquent de devoir fournir aux


utilisateurs de nos classes, des méthodes simples pour
« accéder » aux attributs de la classe que ce soit en «
lecture » ou en « écriture ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 159
INITIATION A LA POO EN JAVA
Accesseurs
 Un accesseur en lecture est une méthode de la classe
permettant d’accéder à un attribut de cette classe
pour récupérer (et/ou de connaître) la valeur de cet
attribut de classe : un accesseur en lecture (getter
en anglais) permet de lire la valeur d’un attribut.
 Un accesseur en écriture est une méthode de la classe
permettant d’accéder à un attribut de classe pour
modifier (ou définir) la valeur de cet attribut de classe
: un accesseur en écriture (setter en anglais)
permet de modifier la valeur d’un attribut.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 160
INITIATION A LA POO EN JAVA
Instanciation
 L’instanciation est l’opération qui consiste à créer un
nouvel objet à partir d’une classe, au moyen de
l’opérateur « New ».

 Sachez qu’un exemple d’objet d’une classe est appelé


« Instance » de cette classe, c’est à dire qu’une
instance de classe n’est rien d’autre qu’une occurrence
d’objet de cette classe.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 161
INITIATION A LA POO EN JAVA
Instanciation
 Lors de l’opération d’instanciation, le constructeur de
la classe est appelé pour construire une instance ou
exemple d’objet de cette classe et généralement l’un
des objectifs d’un constructeur de classe est
d’initialiser les caractéristiques ou propriétés de l’objet
créé à l’aide de l’opérateur « New ».

 Sans cette étape indispensable, l’objet déclaré ne peut


pas être utilisé : on dit que l’objet est instancié par
l’opérateur « New ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 162
INITIATION A LA POO EN JAVA
Instanciation
 L’instance courante est l’instance sur laquelle
s’applique la méthode en cours d’exécution et elle est
nommée « THIS » dans le bloc d’instructions de
cette méthode.

 Une méthode s’exécute toujours pour une instance


particulière et lorsqu’on ne connait pas le nom de la
variable d’instance en cours, on la désigne par le mot
clé « THIS ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 163
INITIATION A LA POO EN JAVA
Instanciation
 Il existe un cas où l’opérateur « THIS » est
obligatoire, c’est lorsqu’il il y a ambiguïté entre le
nom d’un paramètre d’une méthode de classe et celui
d’un attribut de classe.

 En effet, quand un paramètre d’une méthode et un


attribut de classe portent le même nom, il est
nécessaire de précéder la méthode par l’opérateur «
THIS » pour éviter une éventuelle confusion.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 164
INITIATION A LA POO EN JAVA
Invocation de Méthode
 Pour activer une instance, il faut lui envoyer un
message et un message est le signal envoyé à une
instance particulière en lui appliquant une méthode,
avec ou sans paramètres.

 Les instances doivent être imaginées comme des


entités indépendantes et le fait d’appliquer une
méthode à une instance déclenche alors son activité,
qui elle est caractérisée par le déroulement de la
méthode associée.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 165
INITIATION A LA POO EN JAVA
Invocation de Méthode
 On parle d’invocation pour désigner le fait
d’appliquer une méthode à une instance et
l’invocation d’une méthode sur un objet instance se
fait par l’application sur l’identificateur de cet objet
receveur (ou variable instance), du nom de la
méthode précédé de l’opérateur point et noté : « . »
c’est à dire « nomObjet.nomMéthode », ou plus
simplement « nomInstance.nomMéthode » ou
encore « Objet.Méthode ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 166
INITIATION A LA POO EN JAVA
Invocation de Méthode
 Aussi, si la méthode retourne une valeur ou une
donnée (un entier, un caractère, un objet, etc.) pensez
à mettre la valeur retournée dans une variable dédiée.

 Toujours vérifier que vous avez bien mis l’opérateur


point ( le « . ») et que la variable instance placée
devant ce point appartient bien à la classe qui possède
la méthode utilisée juste après le point.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 167
Interface Graphique
en Java

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 168


Interface Graphique en Java
Objectifs du cours
 Dans cette partie du cours, nous aborderons dans un
premier temps la programmation des interfaces
graphiques, communément appelées « Interfaces
Homme Machine (« IHM ») « Graphical User
Interfaces (GUI) » en anglais.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 169


Interface Graphique en Java
Objectifs du cours
 Dans un second temps, nous verrons la
programmation événementielle et par là, vous devez
comprendre que votre programme ne réagira plus à
des saisies au clavier mais plutôt à des événements
provenant d’un composant graphique comme un
bouton, une liste ou encore un menu, etc.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 170


Interface Graphique en Java
Généralités du cours
 Le langage Java propose différentes bibliothèques
pour programmer des IHM, mais dans ce cours, nous
utiliserons essentiellement les packages ou
bibliothèques « javax.swing » et « java.awt ».

 Nous allons commencer par apprendre à utiliser


l’objet « JFrame », présent dans la bibliothèques ou le
package « javax.swing ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 171
Interface Graphique en Java
Généralités du cours
 Le fonctionnement de base des IHM vous sera
également présenté et vous apprendrez qu’en réalité,
une fenêtre n’est qu’une multitude de composants
posés les uns sur les autres et que chacun possède un
rôle qui lui est propre.

 La bibliothèque « javax.swing » est apparue dans la


version 1.2 de Java (appelée aussi Java 2).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 172
Interface Graphique en Java
Généralités du cours
 Avant de commencer, vous devez savoir que lorsque
le langage Java a vu le jour, dans sa version 1.0, seul le
package « java.awt » était utilisable et que la
bibliothèque « javax.swing » n’existait pas déjà.

 Les « composants awt » sont considérés comme


lourds (on dit aussi HeavyWeight) car ils sont
fortement liés au système d’exploitation, c’est ce
dernier qui les gère.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 173
Interface Graphique en Java
Généralités du cours
 Les « composants swing », eux, sont comme
dessinés dans un conteneur, ils sont dits légers (on dit
aussi LightWeight) et ils n’ont pas le même rendu à
l’affichage, car ce n’est plus le système d’exploitation
qui les gère.

 Pour toutes ces raisons, il est très fortement


recommandé de ne pas mélanger les composants
« swing » et « awt » dans une même fenêtre car cela
pourrait occasionner des conflits.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 174
Interface Graphique en Java
Généralités du cours
 Si vous associez les composants graphiques des deux
bibliothèques « java.awt » et « javax.swing », vous
aurez de très grandes difficultés à développer une
IHM stable et valide.

 En effet les packages « java.awt » et « javax.swing »


ont les mêmes fondements mais diffèrent dans leur
utilisation.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 175
Repère en Java

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 176


Repère en Java
Orientation dans l’écran
 Pour placer une fenêtre à n’importe quel endroit de
votre écran d’ordinateurs, vous pourrez utiliser la
méthode « setLocation(int x, int y) » et grâce à
cette méthode, vous pourrez également spécifier où
exactement doit se situer votre fenêtre sur l’écran.

 Les coordonnées, exprimées en pixels, sont


basées sur un repère dont l’origine est
représentée par le coin supérieur gauche de votre
écran d’ordinateur.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 177
Repère en Java
Orientation dans l’écran
 Le premier argument de la méthode « setLocation »
vous positionne sur l’axe des abscisses (déplacement
horizontal) et la valeur zéro (0) correspondant à
l’origine.

 Les valeurs positives déplacent la fenêtre vers la


droite tandis que les négatives la font sortir de
l’écran par la gauche.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 178
Repère en Java
Orientation dans l’écran
 Le deuxième argument de la méthode
« setLocation » vous positionne sur l’axe des
ordonnées (déplacement vertical) et la valeur zéro (0)
correspondant à l’origine.

 Les valeurs positives font déscendre la fenêtre


depuis l’origine tandis que les négatives la font
sortir par le haut de l’écran.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 179
L’objet « JFrame »

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 180


L’objet « JFrame »
Structure d’un JFrame

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 181


L’objet « JFrame »
Structure d’un JFrame
 Une JFrame est en réalité constituée de plusieurs
couches invisibles et superposées (1) :
 tout en bas il y a la fenêtre elle-même (en gris);
 juste au dessus, il y a le RootPane (en vert), qui lui
est le conteneur principal et qui contient toutes les
autres couchent ;
 ensuite il y a le LayeredPane (en bleu), qui forme
juste un panneau sur lequel se posent le support de
la barre de menu (en jaune) et le conteneur global
(violet ou rose fushia) ;
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 182
L’objet « JFrame »
Structure d’un JFrame
 Une JFrame est en réalité constituée de plusieurs
couches invisibles et superposées (2) :
 après il y a le support de la barre de menu (en
jaune), quand il y en a une (JMenuBar);
 puis il y a le ContentPane (en violet), dans lequel
nous placerons tous nos composants graphiques ;
 enfin il y a le GlassPane (en transparence), et qui
est la couche utilisée pour intercepter les actions de
l’utilisateur avant qu’elles ne parviennent aux
composants.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 183
L’objet « JFrame »
Structure d’un JFrame
 Dans la construction de nos interfaces graphiques,
nous allons presqu’essentiellement nous servir du
« ContentPane » et pour cela, il nous suffit d’utiliser
la méthode « getContentPane() » de a classe «
JFrame ».

 Mais avant, pour être plus pratique, nous allons


utiliser un composant de type conteneur autre que le
ContentPane, à savoir un « JPanel » pour rassembler
tous les composant graphiques de notre IHM.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 184
L’objet « JFrame »
Structure d’un JFrame
 Tous les composant graphiques de notre IHM c’est-à-
dire nos boutons, étiquettes, champs de saisie, cases à
cocher, etc., seront incorporés dans ce « JPanel ».

 Après avoir rassembler tous, nos composant dans ce


conteneur, il ne nous resteras plus qu’ intégrer notre «
JPanel » au « ContentPane » de notre « JFrame » et
de rendre le JFrame visible, (car invisible par défaut).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 185
L’objet « JFrame »
L’Objet JPanel
 L’objet « JPanel » est un composant de type
conteneur dont la vocation est d’accueillir d’autres
objets de même type (conteneur comme lui) ou voire
des objets de type composant (boutons, cases à
cocher, listes, zone de texte, etc.).

 Pour utiliser un objet de type JPanel, il vous faudra


importer la classe « JPanel » de la bibliothèque
« SWING » de la manière suivante : « import
javax.swing.JPanel ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 186
L’objet « JFrame »
L’Objet JPanel
 Pour cela, je vous recommande de procéder de la
manière suivante :
 Importer la classe « javax.swing.JPanel » dans notre
classe héritée de JFrame.
 Instancier la classe « JPanel » puis spécifier une
couleur de fond au conteneur créé afin de mieux le
distinguer.
 Indiquer à notre JFrame que ce sera notre JPanel
qui constituera son « ContentPane ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 187
L’objet « JFrame »
Présentation
 Nous travaillerons dans nos TP avec « javax.swing »
et « java.awt », sauf que nous n’utiliserons pas trop
de « composants awt », nous travaillerons plus
souvent avec des « composants swing ».

 En effet, des objets issus de « java.awt » seront


utilisés afin d’interagir et de communiquer avec les
composants issus du package « javax.swing ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 188
L’objet « JFrame »
Implémentation d’un JFrame
 Pour créer une fenêtre en Java, prévoir au minimum :
 Un titre pour la fenêtre, des dimensions et préciser
si la fenêtre peut être redimensionnée ou pas.
 Prévoir l’action par défaut lorsque l’utilisateur
cliquera sur le bouton fermer.
 Placer la fenêtre à un endroit précis de votre écran
(de préférence au centre) et préciser si la fenêtre
doit être au premier plan ou non tout en la rendant
visible (car invisible par défaut).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 189
L’objet « JFrame »
Implémentation d’un JFrame

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 190


L’objet « JFrame »
Implémentation d’un JFrame

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 191


L’objet « Graphics »

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 192


L’objet « Graphics »
Définitions
 L’objet Graphics a une particularité de taille, c’est que
« vous ne pouvez l’utiliser que si et seulement si le
système vous l’a donné via la méthode
getGraphics() d’un composant swing ».

 Pour bien comprendre le fonctionnement de nos


futurs conteneurs et autres composants, nous allons
créer une classe héritée de JPanel, que nous allons
appeler « lePanelDessin ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 193
L’objet « Graphics »
Fonctionnement de Graphics
 Nous allons ensuite faire un petit tour d’horizon du
fonctionnement de cette classe.

 Commençons par redéfinir la méthode


paintComponent(), qui sera la méthode que l’objet
va appeler pour se dessiner sur votre fenêtre et sachez
que cette méthode prend en paramètre un objet de
type « Graphics ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 194
L’objet « Graphics »
Fonctionnement de Graphics
 Si vous réduisez votre fenêtre et que vous l’affichez
de nouveau, c’est encore la méthode
paintComponent() qui est appelée pour afficher
votre composant, et idem si vous redimensionnez
votre fenêtre.

 De plus, vous n’aurez même pas besoin de redéfinir


un constructeur car la méthode paintComponent()
est appelée automatiquement.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 195
L’objet « Graphics »
Fonctionnement de Graphics
 C’est donc très pratique pour personnaliser des
composants, car vous n’aurez jamais à l’appeler vous-
mêmes : c’est automatique.

 Tout ce que vous pouvez faire, c’est forcer l’objet à se


repeindre.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 196


L’objet « Graphics »
Les Méthodes de Graphics
 Pour mieux illustrer : « Le_Graphe.fillOval (20, 20,
75, 75) ». Si nous devions traduire cette instruction
en français, cela donnerait :
« Tracer un rond plein en commençant à
dessiner sur l’axe x à 20 pixels et sur l’axe y, à
20 pixels, et fais en sorte qu'il occupe 75 pixels
de large et 75 pixels de haut. ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 197


L’objet « Graphics »
Les Méthodes de Graphics
 Voici une liste de méthodes pour faire vos dessins
avec la classe « Graphics » de « java.awt.* » (1) :
 La méthode « fillOval(int x, int y, int largeur, int
hauteur) » permet de tracer un cercle plein, c’est-
à-dire un disque.
 La méthode « drawOval(int x, int y, int largeur,
int hauteur) » permet de tracer un cercle vide,
c’est-à-dire un rond.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 198
L’objet « Graphics »
Les Méthodes de Graphics
 Voici une liste de méthodes pour faire vos dessins
avec la classe « Graphics » de « java.awt.* » (2) :
 La méthode « fillRect(int x, int y, int largeur, int
hauteur) » permet de tracer un rectangle plein.
 La méthode « drawRect (int x, int y, int largeur,
int hauteur) » permet de tracer un rectangle vide.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 199


L’objet « Graphics »
Les Méthodes de Graphics
 Voici une liste de méthodes pour faire vos dessins
avec la classe « Graphics » de « java.awt.* » (3) :
 La méthode « drawRoundRect (int x, int y, int
largeur, int hauteur) » permet de tracer un
rectangle vide, avec des arrondi dans les coins
(sommets arrondis).
 La méthode « drawLine (int x1, int y1, int x2, int
y2) » permet de tracer des lignes droites et il suffit
de lui spécifier les coordonnées de départ et
d'arrivée de la ligne.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 200
L’objet « Graphics »
Les Méthodes de Graphics
 Voici une liste de méthodes pour faire vos dessins
avec la classe « Graphics » de « java.awt.* » (4) :
 La méthode « drawString (String Texte, int x,
int y) » permet de dessiner du texte et prends trois
paramètre : le texte à dessiner, l’abscisse et
l’ordonnée du point de début du texte à dessiner.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 201


L’objet « Graphics »
Les Méthodes de Graphics
 Voici une liste de méthodes pour faire vos dessins
avec la classe « Graphics » de « java.awt.* » (5) :
 La méthode « fillPolygon (int[] x, int[] y, int
nbrePoints) » permet de dessiner un polygone
plein ouvert ou fermé. Les deux premiers
paramètres sont les coordonnées en abscisses et en
ordonnées. Le dernier paramètre est le nombre de
points du polygone. Pour dessiner un polygone
fermé il faut joindre le dernier point au premier.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 202
L’objet « Graphics »
Les Méthodes de Graphics
 Voici une liste de méthodes pour faire vos dessins
avec la classe « Graphics » de « java.awt.* » (6) :
 La méthode « drawPolygon (int[] x, int[] y, int
nbrePoints) » permet de dessiner un polygone
vide ouvert ou fermé. Les deux premiers
paramètres sont les coordonnées en abscisses et en
ordonnées. Le dernier paramètre est le nombre de
points du polygone. Pour dessiner un polygone
fermé il faut joindre le dernier point au premier.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 203
L’objet « Graphics »
Les Méthodes de Graphics
 Voici une liste de méthodes pour faire vos dessins
avec la classe « Graphics » de « java.awt.* » (6) :
 La méthode « drawImage(Image img, int x, int
y, Observer obs) » permet de dessiner des images
sur notre panel. Pour cela, Vous devez charger
votre image grâce à trois objets : un « objet
Image », un « objet ImageIO » et un « objet File ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 204


L’objet « Graphics »
La Méthode « drawImage( ) »
 L’utilisation de ces objets n’est pas si compliquée que
ça. En effet, il suffit de déclarer un objet de type
Image et de l’initialiser en utilisant une méthode
statique de l’objet ImageIO qui, elle, prend un objet
File en paramètre.

 Ça peut sembler compliqué, mais vous allez voir que


ce n’est pas le cas. Notre image sera stockée à la
racine de notre projet, mais ce n’est pas une
obligation.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 205
L’objet « Graphics »
La Méthode « drawImage( ) »
 Dans ce cas, faites attention au chemin d’accès de
votre image.

 En ce qui concerne le dernier paramètre de la


méthode « drawImage », il s’agit de l’objet qui est
censé observer l’image. Ici, nous allons utiliser notre
objet Panneau, donc « this ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 206


L’objet « Graphics »
La Méthode « drawImage( ) »
 Cette méthode dessinera l’image avec ses propres
dimensions. Si vous voulez qu’elle occupe l’intégralité
de votre conteneur, utilisez le constructeur suivant :
drawImage(Image img, int x, int y, int width, int
height, Observer obs).

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 207


L’objet « Graphics »
La Méthode « drawImage( ) »

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 208


L’objet « Graphics2D »

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 209


L’objet « Graphics2D »
Définitions
 L’objet « Graphics2D » est une amélioration de
l'objet Graphics et pour l’utiliser, il nous suffit en
effet de « caster » l’objet « Graphics » en
« Graphics2D (Graphics2D Graphe2D =
(Graphics2D) Graphe) », et de ne surtout pas
oublier d’importer notre classe qui se trouve dans le
package « java.awt.* ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 210


L’objet « Graphics2D »
Présentation de Graphics2D
 L’une des possibilités qu’offre cet objet n’est autre
que celle de peindre des objets avec des dégradés de
couleurs.

 Pour cela, il faut utiliser un objet « GradientPaint »


et une méthode de l’objet Graphics2D.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 211


L’objet « Graphics2D »
Présentation de Graphics2D
 Le détail du constructeur de « GradientPaint » (1) :
 Premier paramètre : la coordonnée x où doit
commencer la première couleur ;
 Deuxième paramètre : la coordonnée y où doit
commencer la première couleur ;
 Troisième paramètre : la première couleur ;
 Quatrième paramètre : la coordonnée x où doit
commencer la seconde couleur ;
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 212
L’objet « Graphics2D »
Présentation de Graphics2D
 Le détail du constructeur de « GradientPaint » (1) :
 Cinquième paramètre : la coordonnée y où doit
commencer la seconde couleur ;
 Sixième paramètre : la seconde couleur ;
 Septième paramètre : le booléen indiquant si le
dégradé doit se répéter.
 Ensuite, pour utiliser ce dégradé dans une forme, il
faut mettre à jour votre objet Graphics2D.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 213
L’objet « Graphics2D »
Présentation de Graphics2D

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 214


L’objet « Graphics2D »
Résumé de Graphics2D
 Pour créer des fenêtres, le langage Java fournit les
composants swing (dans javax.swing) et awt (dans
java.awt). Attention : Il ne faut pas mélanger les
composants « swing » et « awt ».

 Une JFrame est constituée de plusieurs composants.


Par défaut, une fenêtre a une taille minimale et n’est
pas visible. Un composant graphique doit être bien
paramétré pour qu’il fonctionne à votre convenance.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 215
L’objet « Graphics2D »
Résumé de Graphics2D
 L’objet JPanel se trouve dans le package
« javax.swing ». Un JPanel peut contenir des
composants ou d’autres conteneurs.

 Lorsque vous ajoutez un JPanel principal à votre


fenêtre, n’oubliez pas d’indiquer à votre fenêtre qu’il
constituera son « ContentPane ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 216


L’objet « Graphics2D »
Résumé de Graphics2D
 Pour redéfinir la façon dont l’objet est dessiné sur
votre fenêtre, vous devez utiliser la méthode
« paintComponent() » en créant une classe héritée.

 Cette méthode prend en paramètre un « objet


Graphics » et cet objet doit vous être fourni par le
système (en paramètre).

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 217


L’objet « Graphics2D »
Résumé de Graphics2D
 C’est lui que vous allez utiliser pour dessiner dans
votre conteneur.

 Pour des dessins plus évolués, vous devez utiliser


l’objet Graphics2D qui s’obtient en effectuant un
« cast » sur l’objet Graphics.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 218


Les « Layout Managers »

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 219


Les « Layout Managers »
Définitions
 De manière

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 220


Les Composants
Graphiques

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 221


Les Composants Graphiques
Définitions
 De manière

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 222


Les Evènements En
Langage Java

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 223


Les Evènements En Langage Java
Définitions
 De manière générale, un évènement correspond à
une action effectuée par l’utilisateur lui permettant
d’interagir avec une interface graphique via le
parcours de son contenu.

 Ces évènements sont gérés par un gestionnaire


d’évènements qui permet de mettre en relation un
évènement et les actions qui seront faites lorsque
celui-ci sera déclenché.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 224
Les Evènements En Langage Java
Les composants
 De manière générale, la plupart des objets d’un
formulaire sont : les labels (étiquettes), le champs de
texte, les listes déroulantes et leurs éléments (Items),
les cases à cocher à choix unique, les cases à cocher à
choix multiple, les boutons.

 Chacun de ces élément est défini clairement et


proprement en Java par une classe.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 225
Les Evènements En Langage Java
Les composants
 Nous avons :
Composant Objet JAVA
Etiquette JLabel
Champ de texte JTextField
Liste déroulante JComboBox
Cases à cocher à choix unique JRadioButton
Cases à cocher à choix multiple JCheckBox
Bouton JButton

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 226


Les Evènements En Langage Java
Le Principe
 Les composants Swing créent des événements, soit
directement, soit par une action de l’utilisateur sur le
composant.

 Ces événements peuvent déclencher une action


exécutée par d’autre(s) composant(s) et un
composant qui crée des événements est appelé
source (de l’évènement).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 227
Les Evènements En Langage Java
Le Principe
 Un composant qui traite un événement est appelé
auditeur (ou « listener ») et le composant source
délègue le traitement de l’événement au composant
auditeur.

 Un composant auditeur doit s’inscrire auprès du


composant source des événements qu’il veut traiter.
On distingue généralement trois types de composants
sources, à savoir : ceux de « ActionEvent », ceux de
« MouseEvent » et ceux de « KeyEvent ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 228
Les Evènements En Langage Java
ActionEvent

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 229


Les Evènements En Langage Java
ActionEvent
 Les composants sources de « ActionEvent » sont :
 Boutons : JButton, JRadioButton, JCheckBox,
JToggleButton.

 Menus : JMenu, JRadioButtonMenuItem,


JCheckBoxMenuItem, JMenuItem.

 Texte : JTextField.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 230
Les Evènements En Langage Java
ActionEvent

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 231


Les Evènements En Langage Java
MouseEvent

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 232


Les Evènements En Langage Java
MouseEvent
 Tous les composants peuvent être sources de
« MouseEvent » et lors d’un clic les méthodes sont
appelées dans l’ordre suivant :
 mousePressed
 mouseReleased
 mouseClicked

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 233


Les Evènements En Langage Java
MouseEvent

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 234


Les Evènements En Langage Java
KeyEvent

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 235


Les Evènements En Langage Java
KeyEvent
 Tous les composants peuvent être sources de
« KeyEvent ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 236


Les Evènements En Langage Java
Hiérarchie des évènements

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 237


Les Evènements En Langage Java
Implémentation de « ActionListener »
 Swing utilise une architecture par événements, car
lorsqu’un composant de l’interface graphique le
désire, il peut provoquer un événement.

 L’événement produit est ensuite transmis aux objets


qui désirent être informés de l’événement et réagir en
conséquence.

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 238


Les Evènements En Langage Java
Implémentation de « ActionListener »
 Ces objets sont des « listeners » ou « écouteurs » ou
encore « auditeurs » et pour définir un « listener », il
suffit de créer une classe qui implémente une
interface de type « EventListener ».

 Ensuite, ce « listener » devra être enregistré dans le


composant de l’interface graphique dans lequel le
« listener » veut « écouter », puis le composant
dispatche l’événement à tout ses « listeners »
enregistrés.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 239
LES BOITES DE
DIALOGUE

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 240


LES BOITES DE DIALOGUE
Définitions
 Une boite de dialogue est en principe une interface
graphique généralement en forme de petite fenêtre
pouvant servir à plusieurs choses comme :
 afficher une information (message d’erreur,
d’avertissement, etc.) ;
 demander une validation, une réfutation ou une
annulation ;
 Ou encore demander à l’utilisateur de saisir une
donnée (valeur) dont le système a besoin.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 241
LES BOITES DE DIALOGUE
Les types de boites de dialogue
 Les boites de dialogue facilitent beaucoup les
interactions entre vos interfaces Homme-Machine et
leurs utilisateur surtout en termes de communication
et d’échange de flux de données.

 On distingue principalement :
 les boites de notification d’évènements ;
 les boites de confirmation d’actions ;
 et les boites de saisies de valeurs (ou de données).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 242
LES BOITES DE DIALOGUE
Les boites de notification
 Nous distinguons généralement trois types de boites
d’information, à savoir :
 les boites de notification d’informations ;
 les boites de notification d’avertissements ;
 et les boites de notification d’erreurs.

 L’intérêt de connaitre toutes ces boites de


notifications est de les utiliser à raison, ce qui rendra
vos applications plus professionnelles.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 243
LES BOITES DE DIALOGUE
Les boites de notification
 Tous ces trois genres de boites de dialogue de type de
notification sont en fait des objets de type
« JOptionPane » auxquels on applique (ou invoque)
la méthode « showMessageDialog (Component
parentComponent, String message, String title, int
messageType); ».

 Component parentComponent : correspond au


composant parent ; ici, il n’y en a aucun, nous
mettons donc « null ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 244
LES BOITES DE DIALOGUE
Les boites de notification
 String message : permet de renseigner le message à
afficher dans la boîte de notification.
 String title : permet de donner un nom ou un titre à
l’objet créé (la boîte de notification).
 int messageType : permet de spécifier le type de
notification, à savoir s’il s’agit :
 d’un message d’information à afficher ;
 d’un message d’avertissement à afficher ;
 Ou d’n message d’erreur à afficher.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 245
LES BOITES DE DIALOGUE
Les boites de notification
 Les boites d’information sont des « JOptionPane »
auxquels on applique « showMessageDialog » avec
quatre paramètres à savoir : 1er : « null », 2ème : « Le
message d’information à afficher », 3ème : « Le
titre de la boite de dialogue d’information » 4ème :
« JOptionPane.INFORMATION_MESSAGE ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 246


LES BOITES DE DIALOGUE
Les boites de notification
 Les boites d’avertissement sont des « JOptionPane »
auxquels on applique « showMessageDialog » avec
quatre paramètres à savoir : 1er : « null », 2ème : « Le
message d’avertissement à afficher », 3ème : « Le
titre de la boite de dialogue d’avertissement » 4ème
: « JOptionPane.WARNING_MESSAGE ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 247


LES BOITES DE DIALOGUE
Les boites de notification
 Les boites d’erreur sont des « JOptionPane »
auxquels on applique « showMessageDialog » avec
quatre paramètres à savoir : 1er : « null », 2ème : « Le
message d’avertissement à afficher », 3ème : « Le
titre de la boite de dialogue d’avertissement » 4ème
: « JOptionPane.ERROR_MESSAGE ».

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 248


LES BOITES DE DIALOGUE
Les boites de notification
 Ces trois boîtes ne s’affichent pas en même temps,
tout simplement parce qu’en Java (mais aussi dans les
autres langages), les boîtes de dialogue sont dites
modales.

 Cela signifie que lorsqu’une boîte fait son apparition,


celle-ci bloque toute interaction avec un autre
composant, et ceci tant que l’utilisateur n’a pas mis
fin au dialogue.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 249
LES BOITES DE DIALOGUE
Les boites de notification

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 250


LES BOITES DE DIALOGUE
Les boites de notification
 Vous avez sans doute remarqué que, mis à part le
texte et le titre, seul ce dernier champ a varié entre
nos trois objets.

 Sachez qu’il existe deux autres variantes de


« showMessageDialog( ) » pour cet objet : une qui
prend deux paramètres en moins (le titre et le type de
message), et une qui prend un paramètre en plus
(l’icône à utiliser) et le code précédent devient :
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 251
LES BOITES DE DIALOGUE
Les boites de notification

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 252


LES BOITES DE DIALOGUE
Les boites de notification
 Vous pouvez trouver des images icônes sur le net via
Google par exemple, puis rangez-les dans un dossier
« images » à la racine du projet Eclipse. Je vous invite
à télécharger vos propres images et à faire vos tests.

 Vous remarquerez aussi l’emploi de l’objet


« ImageIcon », qui lit le fichier image à
l’emplacement spécifié en paramètre dans son
constructeur.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 253
LES BOITES DE DIALOGUE
Les boites de notification
 Les boites de notification sont très utiles pour
signaler à l’utilisateur de votre application qu’une
opération s’est terminée ou qu’une erreur est
survenue et vous pourrez utiliser les boites :
 JOptionPane.PLAIN_MESSAGE
 JOptionPane.INFORMATION_MESSAGE
 JOptionPane. WARNING_MESSAGE
 JOptionPane.QUESTION_MESSAGE
 JOptionPane. ERROR_MESSAGE
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 254
LES BOITES DE DIALOGUE
Les boites de notification

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 255


LES BOITES DE DIALOGUE
Les boites de confirmation
 Les boites de confirmation d’action permettent de
valider, d’invalider ou d’annuler une action (prendre
une décision).

 Nous utiliserons également l’objet « JOptionPane »,


mais ce sera cette fois avec la méthode
« showConfirmDialog( ) » qui est une fonction
renvoyant ou retournant un entier correspondant à
l’option que vous aurez choisie dans cette boîte, à
savoir : « Yes », « No » ou encore « Cancel ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 256
LES BOITES DE DIALOGUE
Les boites de confirmation
 En fait, lorsque vous cliquez sur l’un des boutons
présents dans cette boîte, vous pouvez affecter une
valeur de type « int » (1) :
 correspondant à l’entier
JOptionPane.OK_OPTION, qui « vaut 0 »
(JOptionPane.YES_OPTION a la même valeur);
 correspondant à l’entier
JOptionPane.NO_OPTION, qui « vaut 1 » ;
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 257
LES BOITES DE DIALOGUE
Les boites de confirmation
 En fait, lorsque vous cliquez sur l’un des deux
boutons présents dans cette boîte, vous pouvez
affecter une valeur de type « int » (2) :
 correspondant à l’entier
JOptionPane.CANCEL_OPTION pour la boîte
apparaissant lors du clic sur « Stop », qui « vaut 2 »
;
 correspondant à l’entier
JOptionPane.CLOSED_OPTION pour la
même boîte que ci-dessus et qui « vaut -1 ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 258
LES BOITES DE DIALOGUE
Les boites de confirmation
« JOptionPane.YES_NO_CANCEL_OPTION »

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 259


LES BOITES DE DIALOGUE
Les boites de saisie
 Les boites de saisie de données permettent de
demander à l’utilisateur de saisir des valeurs à partir
de son clavier, de choisir des données à partir d’une
liste, de choisir via un bouton parmi de plusieurs ou
de cocher une case parmi plusieurs.

 Nous utiliserons toujours l’objet « JOptionPane »,


mais ce sera cette fois avec la méthode
« showInputDialog() » qui est une fonction
renvoyant ou retournant une chaine de caractère.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 260
LES BOITES DE DIALOGUE
Les boites de saisie

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 261


LES BOITES DE DIALOGUE
Les boites de saisie
 Nous avons vu que la méthode
« showInputDialog() » est une fonction renvoyant
ou retournant une donnée de type chaine de caractère
(String).

 Cependant il se pourrait que nous ayons besoin de


récupérer par exemple une valeur réelle (Double).
Comment procéder dans ce cas de figure ?
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 262
LES BOITES DE DIALOGUE
Les boites de saisie
 Pour régler ce problème, on pourrait utiliser :
« Double.parseDouble( ) » qui prends en paramètre
une donnée de type chaine de caractère (String) à
convertir en donnée de type réel (Double).

 Le code « Double.parseDouble( ) » permet de


convertir l’élément passé en paramètre et renvoie
(retourne) une donnée de type réel (Double).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 263
LES BOITES DE DIALOGUE
Les boites de saisie
 Et inversement, pour convertir une donnée de type
réel (Double) en une donnée de type chaine de
caractère (String), on pourrait utiliser :
« String.valueOf( ) » qui prends en paramètre la
donnée de type réel (Double) à convertir en donnée
de type chaine de caractère (String).

 Le code « String.valueOf( ) » permet de convertir


l’élément passé en paramètre et renvoie (retourne)
une donnée de type chaine de caractère (String).
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 264
LES BOITES DE DIALOGUE
Les boites de saisie

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 265


LES BOITES DE DIALOGUE
Les boites de saisie
 Voici un petit détail des paramètres utilisés dans cette
méthode :
 les quatre premiers paramètres, sont déjà connus ;
 le cinquième paramètre (le deuxième « null »)
correspond à l’icône que vous souhaitez passer ;
 le sixième paramètre c’est un tableau de String afin
de remplir la liste de valeurs (objet JComboBox) ;
 le dernier paramètre correspond à la valeur par
défaut de la liste déroulante.
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 266
LES BOITES DE DIALOGUE
Les boites de saisie
 Cette méthode retourne un objet de type Object,
comme si vous récupériez la valeur directement dans
du « JComboBox » (liste déroulante).

 Et comme nous avons besoin d’une donnée de type


« String », nous devons absolument faire un « cast »
c’est-à-dire forcer la conversion de données et dans
notre cas ici ce sera du « type Object » vers le « type
String ».
Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 267
LES BOITES DE DIALOGUE
Les boites de saisie

Programmation en JAVA - Par Monsieur Bienvenu KOMBILA 268

Vous aimerez peut-être aussi