0% ont trouvé ce document utile (0 vote)
34 vues61 pages

Java I - 045246

Le document présente un cours sur la programmation orientée objet en Java. Il introduit les concepts de base du langage Java ainsi que les outils de développement comme NetBeans. Le cours couvre également les instructions de base, les variables, les types de données et les opérateurs.

Transféré par

irtresi9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
34 vues61 pages

Java I - 045246

Le document présente un cours sur la programmation orientée objet en Java. Il introduit les concepts de base du langage Java ainsi que les outils de développement comme NetBeans. Le cours couvre également les instructions de base, les variables, les types de données et les opérateurs.

Transféré par

irtresi9
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
Vous êtes sur la page 1/ 61

1

Objectifs
A l’issu de cours, l’étudiant qui l’aura suivi en intégralité avec attention
sera capable de :
 Appréhender les concepts de base de la programmation
événementielle ;
 Appréhender les concepts de la programmation orientée objet du
Java ;
 Concevoir une application simple avec Java ;
 Développer un logiciel de gestion avec Java ;

Prérequis
Pour bien assimiler ce cours, l’étudiant doit avoir :
 Les notions sur la logique de programmation (algorithme) ;
 Les notions élevées en programmation procédurale et structurale
par exemple le langage C ;
 Maîtrisé les Méthodes fondamentales d’analyse et de conception
des systèmes d’information ;
 La maîtrise de l’utilisation d’un SGBDR (Mysql par exemple).

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
2

INTRODUCTION

Le langage Java est un langage généraliste de programmation


synthétisant les principaux langages existants lors de sa création en
1995 par Sun Microsystems. Il permet une programmation orientée-
objet (à l’instar de SmallTalk et, dans une moindre mesure, C++),
modulaire (langage ADA) et reprend une syntaxe très proche de celle
du langage C.

Outre son orientation objet, le langage Java a l’avantage d’être


modulaire (on peut écrire des portions de code génériques, c-à-d
utilisables par plusieurs applications), rigoureux (la plupart des
erreurs se produisent à la compilation et non à l’exécution) et portable
(un même programme compilé peut s’exécuter sur différents
environnements). En contre-partie, les applications Java ont le défaut
d’être plus lentes à l’exécution que des applications programmées en C
par exemple.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
3

CHAPITRE I. GENERALITE SUR LE LANGAGE JAVA

I.1. HISTORIQUE DU LANGAGE JAVA

Le langage Java est un langage de Programmation Informatique


Orienté Objet, créé par James Gosling et Patrick Naughton,
employés de Sun Microsystems, avec le soutien de Bill Joy
(cofondateur de Sun Microsystems en 1982), présenté officiellement
le 23 Mai1995 au SunWorld.
La Société Sun a été ensuite rachetée en 2009 par la Société Oracle
qui détient et maintient désormais Java.

La Particularité et l'Objectif central de Java est que les logiciels


écrits dans ce langage doivent être très facilement portables sur
plusieurs Systèmes d’Exploitation, tels que Windows, Mac, Linux ...
Avec ce Langage, on peut faire de nombreuses sortes de programmes
sans soucis, tel que :
 Des applications, sous forme de fenêtre ou de Console ;
 Des applets : sont des programmes Java incorporés à des pages
web ;
 Des applications pour appareils mobiles, avec J2ME (Java 2
Micro Edition) ;
 et bien d'autres ! J2EE (Java 2 Entreprise Edition), JMF (Java
Media Framework), J3D pour la 3D...
Comme vous le voyez, Java permet de réaliser un nombre important
d'applications différentes !
I.2. STRUCTURE DU LANGAGE
Java est un langage objet qui s’appuie sur la syntaxe du langage C et
du C++. Java est un langage objet : on doit utiliser les classes et les
objets. Ce point présente la syntaxe des instructions de base de Java

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
4

permettant de définir des variables de types dits "primitifs" et de


contrôler le déroulement du programme.

Voici un exemple très simple de programme qui se contente d’afficher


dans la fenêtre console le texte : "Mon premier programme Java".

Explication de la structure du programme


1. Package javaapplication3; est le paquetage
(Bibliothèque/Librairie/dossier) qui va renfermer tous les
fichiers nécessaire pour notre programme (javaapplication3 :
c’est le Nom du Projet, voir Etape 2),
2. Public class Main { } est le Classe principale de notre Programme
javaapplication3 qui va renfermer entre accolade { } toutes les
méthodes nécessaire pour notre programme.
3. Public static void main(String[] args) {} est la Méthode principal
qui va renfermé nos instructions nécessaires entre accolade { }
pour notre programme

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
5

Je ne veux pas enter vraiment en profondeur pour le moment sur ces


points, je vous les donnerais au fur et à mesure que nous évoluons et
vous allez bien les comprendre toutes ces parties !
Autre chose, jusque-là notre Programme ne faire rien, ne traite rien,
ne manipule rien ….
I.3. Les commentaires

Comme en Java, il existe deux types de commentaires. Les


commentaires pour un ensemble de lignes délimités par /* au début et
*/ à la fin :
/* commentaires entre ces 2 marques,
éventuellement sur plusieurs lignes */
et les commentaires pour une ligne (de // jusqu’à la fin de la ligne) :
i = 0; // commentaires jusqu’à la fin de la ligne

Toute ligne ou bloc de lignes mises en commentaire apparait en couleur


grisée. Par exemple :
//pour une ligne
/* pour plusieurs lignes
pour plusieurs lignes
pour plusieurs lignes
pour plusieurs lignes */

Toutes les lignes mises en commentaires sont oubliées par le


compilateur lors de la phase de compilation des codes sources.

I.4. Outils de développement

L'un des principes phares de Java réside dans sa machine virtuelle :


celle-ci assure à tous les développeurs Java qu'un programme sera
utilisable avec tous les Systèmes d'Exploitation sur lesquels est
installée une machine virtuelle Java. Il s’agit de ce qu’on appelle
autrement « Compilateur Java »: JRE ou JDK.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
6

Afin de nous simplifier la vie, nous allons utiliser un outil de


développement Intègre, on parle de l’IDE (Integrated Development
Environment) NetBeans, pour nous aider à écrire nos futurs codes
source …

I.4.1. Installation des outils nécessaires

On commence toujours par installer la Machine Virtuelle (compilateur)


de JAVA, donc JRE ou JDK en premier (sans elle, impossible de
Programmer en JAVA), puis un outil de développement Intègre : IDE.
Après l’installation de ces 2 outils (JRE ou JDK et un IDE NetBeans),
il nous reste de savoir maintenant par où et comment commencer ?
Sachez qu’on s’intéressera qu’à notre IDE.

I.5. LANCEMENT DE L’APPLICATION NETBEANS

Double cliquez sur son icône qui se trouve sur le bureau de votre
ordinateur et attendez le chargement ou l’ouverture de l’interface de
développement.
Voici comment se présente l’interface de développement de l’IDE
NetBeans :

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
7

I.6. Création du nouveau projet avec NetBeans

Allez dans le Menu Fichier>Nouveau projet, vous aurez la fenêtre


suivante:
1ère Etape :
Sélectionner la Catégorie ainsi que le Projet « Application Java »,
puis vous cliquez sur le bouton « Suivant ».

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
8

Puis, vous serez invité à la fenêtre suivante :


2èmeEtape :
Saisissez le Nom du Projet et indiquez l’Emplacement du programme
(optionnel), et enfin cliquez sur le bouton « Terminer ».

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
9

Après avoir cliqué sur le bouton Terminer, vous serez devant cette
fenêtre : Interface de programmation.

I.9. Exécution du Projet JAVA en NetBeans

Aller dans le menu « Exécuter », puis, dans les sous menus qui
apparaissent, cliquer sur la commande « Exécuter le projet principal
» comme le montre la figure suivante :

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
10

I.10. La compilation et l’interprétation


I.10.1. Compilation

La compilation s’effectue par le fait de cliquer le bouton compilation


et exécution (Run projet) se trouvant sur la barre d’outils de
Netbeans, qui crée les bytecodes qui exécute par l’interpréteur.

I.10.2. Interprétation
Le bytecode obtenu par compilation ne peut être exécuté qu’à l’aide de
l’interpréteur. L’exécution s’effectue par la commande java suivie du
nom de la classe à exécuter (sans l’extension .class). Comme lors de la
compilation, il se peut que des classes d’autres répertoires soient
nécessaires. Il faut alors utiliser l’option -classpath.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
11

CHAPITRE II. LES INSTRUCTIONS DES BASES


II.1. LES VARIABLES
II.1.1. Définition
Une variable est une zone mémoire ou une adresse mémoire qui change
les contenues au court d’un traitement ou au court de l’exécution d’un
programme.

Une variable doit avoir un Nom et un Type définissant apriori la nature


de son contenu (donnée) qu’elle pourra stocker.

II.1.2. Nom d’une Variable

Le Nom d’une variable est une chaine des caractères qu’on attribue à
une zone mémoire. Tout nom d’une variable en langage Java doit
observer les règles suivantes :
Le nom d’une variable peut être n’importe quoi mais doit
commencer par une lettre minuscule ;
Le nom d’une variable ne doit jamais contenir les caractères
spéciaux, tels que : é, ç, à, -, @, #, ?, ‘,", espace, … (sauf le tiré
de bas « _ » );

II.1.3. Types de variables

En Java, nous avons deux types de variables : simple ou « primitif » et


complexe ou des « objets » :

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
12

II.1.4. Déclaration et Initialisation des variables


II.1.4.1. Déclaration des Variables
Une déclaration de variable se fait comme ceci, syntaxe :

Cette opération se termine toujours par un point-virgule « ; » (comme


toutes les instructions de ce langage).

II.1.4.2. Initialisation ou Affectation des Variables

C’est une opération qui consiste à stocker une donnée à l’intérieur de


la variable. Pour initialiser une variable elle doit d’abord exister c’est-
à-dire, il faut d’abord la déclarer. Ça se fait de la manière suivante :
Syntaxe :

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
13

Ou encore
typeVariable nomVariable = valeur ;

NB: le signe égal « = » est appelé « Opérateur d’initialisation ou


d’affectation».
Exemple avec les variables de type simple ou primitif

Exemple avec les variables de type complexe ou objet


➔ Le type String

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
14

Attention : String commence par une lettre Majuscule (S)! Et lors


l’initialisation d’une variable de ce type, la valeur (chaine) doit être
encadrer par les guillemets (" ").

Cela a été mentionné plus haut : String n'est pas un type de variable
simple, mais un objet (complexe). Notre variable est un objet, on parle
aussi d'une instance : ici, une instance de la classe String. Ce que vous
devez savoir :

 Tous vos noms de classes doivent commencer par une majuscule


;
 Tous vos noms de variables doivent commencer par une minuscule
;
 Tout ceci sans caractère spécial !
A présent, je vous demanderai de ne pas oublier ces règles !
Voici quelques exemples de noms de classes et de variables :

A présent, je vous demanderai de ne pas oublier ces règles !


Voici quelques exemples de noms de classes et de variables :
public class Toto{}
public class Nombre{}
public class TotoEtTiti{}
String chaine ;
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
15

String chaineDeCaracteres ;
int nombre ;
int nombrePlusGrand ;
Veillez à bien respecter la casse (Majuscules et minuscules), car une
déclaration de CHAR à la place de char ou autre chose provoquera une
erreur, tout comme une variable de type string à la place de String !
Faites donc bien attention lors de vos déclarations de variables…

Une petite astuce quand même (enfin deux, plutôt) : on peut très bien
compacter les phases de déclaration et d'initialisation en une seule
phase ! Comme ceci :
int nombre = 74;
float pi = 3.1416f;
charcarac = 'z';
String mot = new String("Coucou");

Et lorsque nous avons plusieurs variables d'un même type, nous pouvons
résumer tout ceci à une déclaration :
int nbre1 = 2, nbre2 = 3, nbre3 = 0 ;

Ici, toutes les variables sont des entiers, et toutes sont initialisées.
NB. La déclaration et l’initialisation de nos variable se feront dans la
structure de notre programme Java, précisément dans les accolades
de la méthode principale main(String[ ] args){ /* ici */}

Voici un exemple :
package exercice_declaration_initialisatin_var ;
public class Main {
public static void main(String[] args) {
//Déclaration des variables
int age ;
Sting nom, postnom, prenom ;
boolean etat ;
char sexe ;

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
16

float poids ;
//Initialisation des variables
age = 4;
nom = "KASONGA";
postnom = "MBUYI";
prenom = "PASCAL";
sexe = "M" ;
etat = true ;
poids = 20 ;
}
}

Avant de nous lancer dans la programmation, nous allons faire un peu


de mathématiques avec nos variables.
II.1.5. Opérations
Une opération est une action ou traitement effectué sur les données
suivant un ensemble de règles fini.
II.1.5.1. Les opérateurs arithmétiques
Les opérateurs arithmétiques sont ceux que nous avons appris à l'école
primaire pour faire de calcul…, d’où nous citons :

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
17

II.1.5.2. Quelques exemples de calcul

Ici, nous voyons bien que nous pouvons affecter des résultats
d'opérations sur des nombres à nos variables, mais aussi affecter des
résultats d'opérations sur des variables de même type.
Très important : on ne peut faire du traitement arithmétique que sur
des variables de même type sous peine de perdre de la précision lors
du calcul.
On ne s'amuse pas à diviser un int par un float , ou pire, par un char !
Ceci est valable pour tous les opérateurs arithmétiques et pour tous
les types de variables numériques. Essayez de garder une certaine
rigueur pour vos calculs arithmétiques.

Comme expliqué précédemment, les variables de type double


contiennent plus d'informations que les variables de type int. Ici, il va
falloir écouter comme il faut… heu, pardon : lire comme il faut ! Nous
allons voir un truc super important en Java. Ne vous en déplaise, vous
serez amenés à convertir des variables.
D'un type int en type float :
int i = 123;
float j = (float)i; // j stocke 123.0

D'un type int en double :

int i = 123;

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
18

double j = (double)i; // j stocke 123.0


Et inversement :
double i = 1.23;
double j = 2.9999999;
int k = (int)i; //k stocke 1
k = (int)j; //k stocke 2
Ce type de conversion s'appelle une « conversion d'ajustement », ou
cast de variable. Vous l'avez vu : nous pouvons passer directement
d'un type int à un type double . L'inverse, cependant, ne se déroulera
pas sans une perte de précision. En effet, comme vous avez pu le
constater, lorsque nous castons un double en int, la valeur de ce double
est tronquée, ce qui signifie que l'int en question ne prendra que la
valeur entière du double, quelle que soit celle des décimales.
Pour en revenir à notre problème de tout à l’heure, il est aussi possible
de caster le résultat d'une opération mathématique en la mettant
entre « ( ) » et en la précédant du type de cast souhaité. Donc :
double nbre1 = 10, nbre2 = 3;
int resultat = (int)(nbre1/nbre2);
Voilà qui fonctionne parfaitement. Pour bien faire, vous devriez mettre
le résultat de l'opération en type double.

Voici une possibilité :


int nbre1 = 3, nbre2 = 2;
double resultat = nbre1 / nbre2;

Vous aurez « 1 » comme résultat. Je ne caste pas ici, car un double


peut contenir un int.
En voici une autre :
int nbre1 = 3, nbre2 = 2;
double resultat = (double)(nbre1 / nbre2);

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
19

Idem… Afin de comprendre pourquoi, vous devez savoir qu'en Java,


comme dans d'autres langages d'ailleurs, il y a la notion de priorité
d'opération ; et là, nous en avons un très bon exemple !
Sachez que l'affectation, le calcul, le cast, le test, l'incrémentation…
toutes ces choses sont des opérations ! Et Java les fait dans un certain
ordre, il y a des priorités.
Dans le cas qui nous intéresse, il y a trois opérations :
 un calcul ;
 un cast sur le résultat de l'opération ;
 une affectation dans la variable resultat.

Eh bien, Java exécute notre ligne dans cet ordre ! Il fait le calcul (ici
3/2), il caste le résultat en double, puis il l'affecte dans notre variable
resultat.
Vous vous demandez sûrement pourquoi vous n'avez pas 1.5… C'est
simple : lors de la première opération de Java, la JVM voit un cast à
effectuer, mais sur un résultat de calcul. La JVM fait ce calcul
(division de deux int qui, ici, nous donne 1), puis le cast (toujours 1), et
affecte la valeur à la variable (encore et toujours 1). Donc, pour avoir
un résultat correct, il faudrait caster chaque nombre avant de faire
l'opération, comme ceci :
int nbre1 = 3, nbre2 = 2;
double resultat = (double)(nbre1) / (double)(nbre2);
// resultat stocke 1.5
int en String.
int i = 12;
String j = new String();
j = j.valueOf(i);
j est donc une variable de type String contenant la chaîne de
caractères 12. Sachez que ceci fonctionne aussi avec les autres types

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
20

numériques. Voyons maintenant comment faire marche arrière en


partant de ce que nous venons de faire.
int i = 12;
String j = new String(); j = j.valueOf(i);
int k = Integer.valueOf(j).intValue();

Maintenant, la variable k de type int contient le nombre « 12 ».


Il existe des équivalents à intValue() pour les autres types numériques
: floatValue() , doubleValue() …
En résumé
Certains programmes Java travaillent directement sur les bits, il peut
donc être plus pratique de les représenter ainsi avant de les manipuler.
 Les variables sont essentielles dans la construction de
programmes informatiques.
 On affecte une valeur dans une variable avec l'opérateur égal ( =
).
 Après avoir affecté une valeur à une variable, l'instruction doit
se terminer par un point-virgule ( ; ).
 Vos noms de variables ne doivent contenir ni caractères
accentués ni espaces et doivent, dans la mesure du possible,
respecter la convention de nommage Java.
 Lorsque vous effectuez des opérations sur des variables, prenez
garde à leur type : vous pourriez perdre en précision.
 Quand vous castez un résultat, ajouté un type devant celui-ci :
(int), (double), etc.

Prenez garde aux priorités lorsque vous castez le résultat


d'opérations, faute de quoi ce dernier risque d'être incorrect.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
21

II. 2. LECTURE ET ECRITURE


II.2.1. ECRITURE (Affichage A l’Ecran)
Pour afficher un message dans la console, utilisez l'instruction
suivante :
System.out.println("Votre message ici");
Ou encore :
System.out.print("Votre message ici");
Si vous souhaitez le contenu d’une variable :
System.out.println(votreVariableici);
Ou encore :
System.out.print(votreVariableici);

II.2.1.1. Opérateur de concaténation

Je suppose que vous voudriez aussi mettre du texte en même temps


que vos variables… Eh bien sachez que l'opérateur « + » sert aussi
d'opérateur de concaténation, c'est-à-dire qu'il permet de mélanger
(relier pas additionner) du texte brut et des variables.

II.2.1.2. Exercices

Voici un exemple :
int nbre1, nbre2, resultat ;
nbre1 = 10 ;
nbre2 = 3;
resultat = nbre1 * nbre2;
System.out.println("Résultat = " + resultat);
Sachez aussi que vous pouvez tout à fait mettre des opérations dans
un affichage, comme ceci :
System.out.print("Résultat = " + nbre1 * nbre2);

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
22

Le « + » joue ici le rôle d'opérateur de concaténation ; ceci vous


permet d'économiser une variable et par conséquent de la mémoire. A
ne pas confondre avec ce lui vu précédemment sur les Opérateurs
Arithmétiques.

II.2.2. LECTURE DES ENTREES CLAVIER


Après la lecture de ce point, vous pourrez saisir des informations et
les stocker dans des variables afin de pouvoir les utiliser à posteriori.
En fait, jusqu'à ce que nous voyions les interfaces graphiques, nous
travaillerons en mode console. Donc, afin de rendre nos programmes
plus ludiques, il est de bon choix de pouvoir interagir avec ceux-ci. Par
contre, ceci peut engendrer des erreurs (on parlera d'exceptions).
Afin de ne pas surcharger le chapitre, nous survolerons ce point sans
voir les différents cas d'erreurs que cela peut engendrer.
II.2.2.1. La classe Scanner
Le moment est enfin venu !
Mais je vous préviens, la méthode que je vais vous donner présente des failles.
Je vous fais confiance pour ne pas rentrer n'importe quoi n'importe quand !

Je vous ai dit que vos variables de type String sont en réalité des
objets de type String.

Pour que Java puisse lire ce que vous tapez au clavier, vous allez devoir
utiliser un objet de type Scanner. Cet objet peut prendre différents
paramètres, mais ici nous n'en utiliserons qu'un : celui qui correspond
à l'entrée standard en Java.

Lorsque vous faites System.out.println();, je vous rappelle que vous


appliquez la méthode println() sur la sortie standard ; ici, nous allons
utiliser l'entrée standard System.in. Donc, avant d'indiquer à Java
qu'il faut lire ce que nous allons taper au clavier, nous devrons
instancier un objet Scanner. Avant de vous expliquer ceci, créez une

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
23

nouvelle classe et tapez cette ligne de code dans votre méthode main
:

Scanner sc = new Scanner(System.in);

Vous devez avoir une jolie vague rouge sous le mot Scanner. Cliquez sur
la croix rouge sur la gauche et faites un double-clic sur « Ajouter une
importation pour java.util.Scanner » (Figure suivante). Et là, l'erreur
disparaît !

Maintenant, regardez au-dessus de la déclaration de votre classe, vous


devriez voir cette ligne :
import java.util.Scanner;

Voilà ce que nous avons fait. Je vous ai dit qu'il fallait indiquer à Java
où se trouve la classe Scanner. Pour faire ceci, nous devons importer
la classe Scanner grâce à l'instruction import. La classe que nous
voulons se trouve dans le package java.util.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
24

Un package est un ensemble de classes. En fait, c'est un ensemble de


dossiers et de sous-dossiers contenant une ou plusieurs classes, mais
nous verrons ceci plus en détail lorsque nous ferons nos propres
packages en Programmation Orienté Objet (POO) en G3.
Les classes qui se trouvent dans les packages autres que java.lang
(package automatiquement importé par Java, on y trouve entre autres
la classe System) sont à importer à la main dans vos classes Java pour
pouvoir vous en servir. La façon dont nous avons importé la classe
java.util.Scanner dans NetBean est très commode. Vous pouvez aussi
le faire manuellement :

N.B. : toutes importation de classe se fait entre l’instruction package


et public class main.
II.2.2.2. Récupérer ce que vous tapez

Voici l'instruction pour permettre à Java de récupérer ce que vous


avez saisi pour ensuite l'afficher :

Une fois l'application lancée, le message que vous avez écrit


auparavant s'affiche dans la console, en bas. Pensez à cliquer dans la
console afin que ce que vous saisissez y soit écrit et que Java puisse
récupérer ce que vous avez inscrit (figure suivante) !

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
25

Saisie utilisateur dans la console


Si vous remplacez la ligne de code qui récupère une chaîne de
caractères comme suit :

… vous devriez constater que lorsque vous introduisez votre variable


de type
Scanner et que vous introduisez le point permettant d'appeler des
méthodes de l'objet, NetBean vous propose une liste de méthodes
associées à cet objet (ceci s'appelle l'auto-complétion) ; de plus,
lorsque vous commencez à taper le début de la méthode nextInt(), le
choix se restreint jusqu'à ne laisser que cette seule méthode.
Exécutez et testez ce programme : vous verrez qu'il fonctionne à la
perfection. Sauf… si vous saisissez autre chose qu'un nombre entier !
Vous savez maintenant que pour lire un int, vous devez utiliser
nextInt(). De façon générale, dites-vous que pour récupérer un type
de variable, il vous suffit d'appeler next<Type de variable commençant
par une majuscule> (rappelez-vous de la convention de nommage Java).

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
26

Il y a un type de variables primitives qui n'est pas pris en compte par


la classe Scanner : il s'agit du type char.
Voici comment on pourrait récupérer un caractère :

Qu'avons-nous fait ici ?


Nous avons récupéré une chaîne de caractères, puis utilisé une
méthode de l'objet String (ici, charAt(0)) afin de récupérer le premier
caractère saisi. Même si vous tapez une longue chaîne de caractères,
l'instruction charAt(0) ne renverra que le premier caractère.
En résumé
 Pour afficher le résultat de votre traitement il faut utiliser
l’instruction : System.out.println();
 La lecture des entrées clavier se fait via l'objet Scanner.
 Ce dernier se trouve dans le package java.util que vous devrez
importer.
 Pour pouvoir récupérer ce vous allez taper dans la console, vous
devrez initialiser l'objet Scanner avec l'entrée standard,
System.in
Il y a une méthode de récupération de données pour chaque type (sauf
les char) : nextLine() pour les String, nextInt() pour les int ...

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
27

II.3. LES CONDITIONS

Dans une classe, la lecture et l'exécution se font de façon séquentielle,


c'est à-dire ligne par ligne. Avec les conditions, nous allons pouvoir
gérer différents cas de figure sans pour autant lire tout le code. Vous
vous rendrez vite compte que tous vos projets ne sont que des
enchaînements et des imbrications de conditions et de boucles (notion
que l'on abordera au point suivant).

II.3.1. Opérateurs logiques


Voici les différents opérateurs à connaître :
 « == » : permet de tester l'égalité.
 « != » : permet de tester l’inégalité.
 « < » : strictement inférieur.
 « <= » : inférieur ou égal.
 « > » : strictement supérieur.
 « >= » : supérieur ou égal.
 « && » : l'opérateur ET. Il permet de préciser une condition
 « || » : le OU. Même combat que le précédent.
 « ? : » : l'opérateur ternaire. Pour celui-ci, vous comprendrez
mieux avec un exemple qui sera donné vers la fin de ce chapitre.

Comme je vous l'ai dit dans le point précédent, les opérations en Java
sont soumises à des priorités. Tous ces opérateurs se plient à cette
règle, de la même manière que les opérateurs arithmétiques…

II.3.2. La structure if… else


Toujours est-il que la structure d’un test est relativement claire. Voici
comment se présente la structure if … else :

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
28

Cela peut se traduire par :

Le résultat de l'expression évaluée par l'instruction if sera un boolean,


donc soit true, soit false. La portion de code du bloc if ne sera
exécutée que si la condition est remplie. Dans le cas contraire, c'est
le bloc de l'instruction else qui le sera.
Mettons notre petit exemple en pratique :
Essayez ce petit code, et vous verrez comment il fonctionne. Dans ce
cas, notre classe affiche « le nombre est positif ».
Expliquons un peu ce qui se passe.
 Dans un premier temps, la condition du if est testée : elle dit «
si i est strictement inférieur à 0 alors fais ça ».
 Dans un second temps, vu que la condition précédente est fausse,
le programme exécute le else.
En fait, les accolades sont présentes dans la structure « normale » des
conditions, mais lorsque le code à l'intérieur de l'une d'entre elles
n'est composé que d'une seule ligne, les accolades deviennent
facultatives.
La condition du if est remplie si le nombre est strictement négatif, ce
qui n'est pas le cas ici puisque nous allons le mettre à 0. Le code
contenu dans la clause else est donc exécuté si le nombre est égal ou

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
29

strictement supérieur à 0. Il nous suffit d'ajouter une condition à


l'intérieur de la clause else, comme ceci :

Maintenant que vous avez tout compris, je vais vous présenter une
autre façon d'écrire ce code, avec le même résultat : on ajoute juste
un petit « sinon si… ».

Alors ? Juste, n'est-ce pas ?


 Si i est strictement négatif alors le code de cette condition est
exécuté.
 Sinon si i est strictement positif alors le code de cette condition
est exécuté.
 Sinon i est forcément nul alors le code de cette condition est
exécuté.

Il faut absolument donner une condition au else if pour qu'il


fonctionne.
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
30

Ici, je vais très fortement insister sur un point : regardez l'affichage


du code et remarquez le petit décalage entre le test et le code à
exécuter. On appelle cela l'indentation !
Pour vous repérer dans vos futurs programmes, cela sera très utile.
Imaginez deux secondes que vous avez un programme de 700 lignes
avec 150 conditions, et que tout est écrit le long du bord gauche. Il
sera difficile de distinguer les tests du code. Vous n'êtes pas obligés
de le faire, mais je vous assure que vous y viendrez.
Exemple d’un programme qui nous demande le nom, le sexe et l’âge et
enfin ça nous affiche : le nom et l’âge ! Et voyez les lignes de codes :
Avant de passer à la suite, vous devez savoir qu'on ne peut pas tester
l'égalité de chaînes de caractères ! Du moins, comme je vous l'ai
montré ci-dessus. Nous aborderons ce point plus tard.

II.3.3. Les conditions multiples


Derrière ce nom barbare se cachent simplement plusieurs tests dans
une instruction if (ou elseif). Nous allons maintenant utiliser les
opérateurs logiques que nous avons vus au début en vérifiant si un
nombre donné appartient à un intervalle connu. Par exemple, on va
vérifier si un entier est compris entre 50 et 100.

Nous avons utilisé l'opérateur &&. La condition de notre if est devenue


: « si i est inférieur à 100 ET supérieur à 50 ».
Avec l'opérateur « && », la clause est remplie si et seulement si les
conditions la constituant sont toutes remplies ; si l'une des conditions
n'est pas vérifiée, la clause sera considérée comme fausse.
Cet opérateur vous initie à la notion d'intersection d'ensembles. Ici,
nous avons deux conditions qui définissent un ensemble chacune :
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
31

 i < 100 définit l'ensemble des nombres inférieurs à 100 ;


 i > 50 définit l'ensemble des nombres supérieurs à 50.

L'opérateur « && » permet de faire l'intersection de ces ensembles.


La condition regroupe donc les nombres qui appartiennent à ces deux
ensembles, c’est-à-dire les nombres de 51 à 99 inclus. Réfléchissez
bien à l'intervalle que vous voulez définir.
Voyez ce code :

Ici, la condition ne sera jamais remplie, car je ne connais aucun nombre


qui soit à la fois plus petit et plus grand que 100 !
Reprenez le code précédent et remplacez l'opérateur « && » par « ||
» (petit rappel, il s'agit du OU). À l'exécution du programme et après
plusieurs tests de valeur pour i, vous pourrez vous apercevoir que tous
les nombres remplissent cette condition, sauf 100.

II.3.4. La structure switch

Le switch est surtout utilisé lorsque nous voulons des conditions « à la


carte ». Prenons l'exemple d'une interrogation comportant trois
questions : pour chacune d'elles, on peut obtenir uniquement 0 ou 10
ou 20 points, ce qui nous donne au final trois notes et donc trois
appréciations possibles, comme ceci :
 0/20 : tu peux revoir ce chapitre, petit Zéro !
 10/20 : je crois que tu as compris l'essentiel ! Viens relire ce
chapitre à l'occasion.
 20/20 : bravo !
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
32

Dans ce genre de cas, on utilise un switch pour éviter des else if à


répétition et pour alléger un peu le code. Je vais vous montrer
comment se construit une instruction switch ; puis nous allons l'utiliser
tout de suite après.
Syntaxe

switch (/*Variable*/)
{
case /*Argument*/ :
/*Action*/;
break;
default :
/*Action*/;
}

Voici les opérations qu'effectue cette expression :


 La classe évalue l'expression figurant après le switch (ici
/*Variable*/).
 Si la première languette (case /*Valeur possible de la
variable*/:) correspond à la valeur de /*Variable*/, l'instruction
figurant dans celle-ci sera exécutée.
 Sinon, on passe à la languette suivante, et ainsi de suite.
 Si aucun des cas ne correspond, la classe va exécuter ce qui se
trouve dans l'instruction default:/*Action*/;. Voyez ceci comme
une sécurité.
Notez bien la présence de l'instruction break;. Elle permet de sortir
du switch si une languette correspond. Pour mieux juger de l'utilité de
cette instruction, enlevez tous les break; et compilez votre
programme. Vous verrez le résultat… Voici un exemple de switch que
vous pouvez essayer :

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
33

Je n'ai écrit qu'une ligne de code par instruction case, mais rien ne
vous empêche d'en mettre plusieurs.
Si vous avez essayé ce programme en supprimant l'instruction break;,
vous avez dû vous rendre compte que le switch exécute le code contenu
dans le case 10:, mais aussi dans tous ceux qui suivent ! L'instruction
break; permet de sortir de l'opération en cours. Dans notre cas, on
sort de l'instruction switch, mais nous verrons une autre utilité à
break; dans le chapitre suivant.
Depuis la version 7 de Java, l'instruction switch accepte les objets de
type String en paramètre. De ce fait, cette instruction est donc valide
:

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
34

II.3.5. La condition ternaire


Les conditions ternaires sont assez complexes et relativement peu
utilisées. Je vous les présente ici à titre indicatif. La particularité de
ces conditions réside dans le fait que trois opérandes (c'est-à-dire
des variables ou des constantes) sont mis en jeu, mais aussi que ces
conditions sont employées pour affecter des données à une variable.
Voici à quoi ressemble la structure de ce type de condition :

Décortiquons ce qu'il se passe :


 Nous cherchons à affecter une valeur à notre variable max, mais
de l'autre côté de l'opérateur d'affectation se trouve une
condition ternaire…
 Ce qui se trouve entre les parenthèses est évalué : x est-il plus
petit que y ? Donc, deux cas de figure se profilent à l'horizon : o
si la condition renvoie true (vrai), qu'elle est vérifiée, la valeur
qui se trouve après le ? sera affectée ;
 sinon, la valeur se trouvant après le symbole: sera affectée.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
35

 L'affectation est effective : vous pouvez utiliser votre variable


max.
Vous pouvez également faire des calculs (par exemple) avant
d'affecter les valeurs :

N'oubliez pas que la valeur que vous allez affecter à votre variable
doit être du même type que votre variable. Sachez aussi que rien ne
vous empêche d'insérer une condition ternaire dans une autre
condition ternaire :

En résumé
 Les conditions vous permettent de n'exécuter que certains
morceaux de code. Il existe plusieurs sortes de structures
conditionnelles :
 la structure if... else if... else ;
 la structure switch... case... default;
 la structure ? :
 Si un bloc d'instructions contient plus d'une ligne, vous devez
l'entourer d'accolades afin de bien en délimiter le début et la
fin.
 Pour pouvoir mettre une condition en place, vous devez comparer
des variables à l'aide d'opérateurs logiques.
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
36

 Vous pouvez mettre autant de comparaisons renvoyant un


boolean que vous le souhaitez dans une condition.
 Pour la structure switch, pensez à mettre les instructions break
; si vous ne souhaitez exécuter qu'un seul bloc case.

II.4. LES BOUCLES


Le rôle des boucles est de répéter un certain nombre de fois les mêmes
opérations. Tous les programmes, ou presque, ont besoin de ce type de
fonctionnalité. Nous utiliserons les boucles pour permettre à un
programme de recommencer depuis le début, pour attendre une action
précise de l'utilisateur, parcourir une série de données, etc.
Une boucle s'exécute tant qu'une condition est remplie. Nous
réutiliserons donc des notions du point précédent !
Pour décortiquer précisément ce qui se passe dans une boucle, nous
allons voir comment elle se construit !

II.4.1. Opérateurs d’incrémentation

Un Opérateur d’incrémentation permet d’ajouter (incrémenter) ou


d’enlever (décrément) une valeur à une variable. Par défaut, cette
valeur est de 1.
Comme toujours, les opérateurs vus précédemment sont encore utilisé
dans les boucles. Alors, pour pouvoir contrôler nos boucles, nous allons
nous servir des opérateurs d’incrémentation (pas forcement) !
En JAVA, nous avons :
 « ++ » ou « += » : permet d’incrémenter une valeur ;
 « -- » ou « -= » : permet décrémenter une valeur.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
37

II.4.2. La boucle while


Une boucle commence par une déclaration : ici while. Cela veut dire, à
peu de chose près, « tant que ». Puis nous avons une condition : c'est
elle qui permet à la boucle de s'arrêter. Une boucle n'est utile que
lorsque nous pouvons la contrôler, et donc lui faire répéter une
instruction un certain nombre de fois. C'est à ça que servent les
conditions. Ensuite nous avons une ou plusieurs instructions : c'est ce
que va répéter notre boucle (il peut même y avoir des boucles dans une
boucle !
while (/* Condition */)
{
//Instructions à répéter
}
Nous allons travailler sur un exemple concret mais d'abord,
réfléchissons à « comment notre boucle va travailler ». Pour cela, il
faut déterminer notre exemple.
Nous allons afficher « Bonjour, <un prénom> », prénom qu'il faudra
taper au clavier ; puis nous demanderons si l'on veut recommencer.
Pour cela, il nous faut une variable qui va recevoir le prénom, donc dont
le type sera String, ainsi qu'une variable pour récupérer la réponse. Et
là, plusieurs choix s'offrent à nous : soit un caractère, soit une chaîne
de caractères, soit un entier. Ici, nous prendrons une variable de type
char. C'est parti !

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
38

Vous avez dû cligner des yeux en lisant reponse =


sc.nextLine().charAt(0);. Rappelez-vous comment on récupère un char
avec l'objet Scanner : nous devons récupérer un objet String et
ensuite prendre le premier caractère de celui-ci ! Eh bien cette
syntaxe est une contraction de ce que je vous avais fait voir
auparavant.
Détaillons un peu ce qu'il se passe. Dans un premier temps, nous avons
déclaré et initialisé nos variables. Ensuite, la boucle évalue la condition
qui nous dit : tant que la variable reponse contient « O », on exécute
la boucle. Celle-ci contient bien le caractère « O », donc nous entrons
dans la boucle. Puis l'exécution des instructions suivant l'ordre dans
lequel elles apparaissent dans la boucle a lieu. À la fin, c'est-à-dire à
l'accolade fermante de la boucle, le compilateur nous ramène au début
de la boucle.
Cette boucle n'est exécutée que lorsque la condition est remplie : ici,
nous avons initialisé la variable reponse à « O » pour que la boucle

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
39

s'exécute. Si nous ne l'avions pas fait, nous n'y serions jamais entrés.
Normal, puisque nous testons la condition avant d'entrer dans la boucle
!
Voilà. Ce n’est pas mal, mais il faudrait forcer l'utilisateur à ne taper
que « O » ou « N ». Comment faire ? C'est très simple : avec une boucle
! Il suffit de forcer l'utilisateur à entrer soit « N » soit « O » avec un
while ! Attention, il nous faudra réinitialiser la variable reponse à « ' '
» (caractère vide). Il faudra donc répéter la phase « Voulez-vous
réessayer ? » tant que la réponse donnée n'est pas « O » ou « N ».
Voici notre programme dans son intégralité :

Vous pouvez tester ce code (c'est d'ailleurs vivement conseillé) : vous


verrez que si vous n'entrez pas la bonne lettre, le programme vous
posera sans cesse sa question, comme à la figure suivante !

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
40

Attention à écrire correctement vos conditions et à bien vérifier vos variables dans vos while,
et dans toutes vos boucles en général. Sinon c'est le drame ! Essayez d'exécuter le programme
précédent sans la réinitialisation de la variable reponse, et vous verrez le résultat ! On n'entre
jamais dans la deuxième boucle, car reponse = 'O' (puisqu’initialisée ainsi au
début du programme). Là, vous ne pourrez jamais changer sa valeur…
Le programme ne s'arrêtera donc jamais ! On appelle ça une « boucle
infinie ». En voici un autre exemple.
int a=1, b=15;
while (a<b)
{
System.out.println("coucou "+a+" fois !!");
}
Si vous lancez ce programme, vous allez voir une quantité astronomique
de « coucou 1 fois !! ». Nous aurions dû ajouter une instruction dans le
bloc d'instructions de notre while pour changer la valeur de a à chaque
tour de boucle, comme ceci :
int a=1, b=15;
while (a<b)
{
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
41

System.out.println("coucou "+a+" fois !!"); a++;


}
Une petite astuce : lorsque vous n'avez qu'une instruction dans votre
boucle, vous pouvez enlever les accolades, car elles deviennent
superflues, tout comme pour les instructions if, else if ou else.
Vous auriez aussi pu utiliser cette syntaxe :
int a=1, b=15;
while (a++<b)
System.out.println("coucou "+a+" fois !!");
Souvenez-vous de ce dont je vous parlais au chapitre précédent sur la
priorité des opérateurs. Ici, l'opérateur « < » a la priorité sur
l'opérateur d'incrémentation « ++ ». Pour faire court, la boucle while
teste la condition et ensuite incrémente la variable a. Par contre,
essayez ce code :
int a=1, b=15;
while (++a<b)
System.out.println("coucou "+a+" fois !!");
Vous devez remarquer qu'il y a un tour de boucle en moins ! Eh bien
avec cette syntaxe, l'opérateur d'incrémentation est prioritaire sur
l'opérateur d'inégalité (ou d'égalité), c'est-à-dire que la boucle
incrémente la variable a, et ce n'est qu'après l'avoir fait qu'elle teste
la condition !
II. 4.3. La boucle do… while

Puisque je viens de vous expliquer comment fonctionne une boucle


while, je ne vais pas vraiment m'attarder sur la boucle do… while. En
effet, ces deux boucles ne sont pas cousines, mais plutôt soeurs. Leur
fonctionnement est identique à deux détails près.
do{
//Instructions
}while(a<b);
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
42

A. Première différence

La boucle do… while s'exécutera au moins une fois, contrairement à sa


soeur. C'est-à-dire que la phase de test de la condition se fait à la fin,
car la condition se met après le while.

B. Deuxième différence

C'est une différence de syntaxe, qui se situe après la condition du


while. Vous voyez la différence ? Oui ? Non ? Il y a un « ;» après le
while. C'est tout ! Ne l'oubliez cependant pas, sinon le programme ne
compilera pas.
Mis à part ces deux éléments, ces boucles fonctionnent exactement
de la même manière. D'ailleurs, refaisons notre programme précédent
avec une boucle do… while.

Vous voyez donc que ce code ressemble beaucoup à celui utilisé avec la
boucle while, mais il comporte une petite subtilité : ici, plus besoin de
réinitialiser la variable reponse, puisque de toute manière, la boucle
s'exécutera au moins une fois !
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
43

II.4.4. La boucle for

Cette boucle est un peu particulière puisqu'elle prend tous ses


attributs dans sa condition et agit en conséquence. Je m'explique :
jusqu'ici, nous avions fait des boucles avec :
 déclaration d'une variable avant la boucle ;
 initialisation de cette variable ;
 incrémentation de celle-ci dans la boucle.

Eh bien on met tout ça dans la condition de la boucle for, et c'est tout.


Il existe une autre syntaxe pour la boucle for depuis le JDK 1.5. Nous
la verrons lorsque nous aborderons les tableaux. Mais je sais bien qu'un
long discours ne vaut pas un exemple, alors voici une boucle for sous
vos yeux ébahis :
for(int i=1; i<=10; i++)
{
System.out.println("Voici la ligne "+i);
}
Ce qui donne la figure suivante.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
44

Vous aurez sûrement remarqué la présence des « ; » dans la condition


pour la séparation des champs. Ne les oubliez surtout pas, sinon le
programme ne compilera pas.
Nous pouvons aussi inverser le sens de la boucle, c'est-à-dire qu'au
lieu de partir de 0 pour aller à 10, nous allons commencer à 10 pour
atteindre 0 :
for(int i=10; i>=0; i--)
System.out.println("Il reste "+i+" ligne(s) à écrire");
On obtient la figure suivante.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
45

Boucle for avec décrémentation.


Pour simplifier, la boucle for est un peu le condensé d'une boucle while
dont le nombre de tours se détermine via un incrément. Nous avons un
nombre de départ, une condition qui doit être remplie pour exécuter
une nouvelle fois la boucle et une instruction de fin de boucle qui
incrémente notre nombre de départ. Remarquez que rien ne nous
empêche de cumuler les déclarations, les conditions et les instructions
de fin de boucle :

for(int i=0, j=2; (i<10&&j<6); i++, j+=2)


{
System.out.println("i = "+i+", j = "+j);
}
Ici, cette boucle n'effectuera que deux tours puisque la condition
(i < 10 && j < 6) est remplie dès le deuxième tour, la variable j
commençant à 2 et étant incrémentée de deux à chaque tour de boucle.
 Les boucles vous permettent simplement d'effectuer des tâches
répétitives.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
46

 Il existe plusieurs sortes de boucles : o la boucle


while(condition){…} évalue la condition puis exécute
éventuellement un tour de boucle (ou plus) ;
la boucle do{…}while(condition); fonctionne exactement
comme la précédente, mais effectue un tour de boucle quoi qu'il
arrive ;
la boucle for permet d'initialiser un compteur, une condition
et un incrément dans sa déclaration afin de répéter un morceau
de code un nombre limité de fois.

Tout comme les conditions, si une boucle contient plus d'une


ligne de code à exécuter, vous devez l'entourer d'accolades afin
de bien en délimiter le début et la fin.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
47

Chapitre III. Le graphique


Jusqu’à présent, nous avons traîné dans la console, dans ce chapitre
nous allons utiliser les objets graphiques et voir de quelle manière
programmer les interfaces graphiques en java.
Le langage Java propose différentes bibliothèques pour programmer
des IHM, mais nous, nous utiliserons essentiellement les packages
javax.swing et java.awt présents d'office dans Java pour apprendre
à utiliser l'objet JFrame, présent dans le package javax.swing. Ce qui
vous amènera alors à créer une fenêtre, de définir sa taille, etc.
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.
III.1. Comment créer un programme à Interface Graphique ?
III.1.1. Objet JFrame
L’Objet JFrame est l’objet de base, absolument universel qui
repensent une « Fenêtre » en programmation Java.
Comment ajouter un Objet JFrame ?
Il faut d’abord créer un projet principal !
1. Cliquer sur le menu « Ficher », puis sur « Nouveau fichier », soit
dans la barre d’outils standard, cliquer ici

Dans la boite de dialogue qui apparait :


 Dans Catégorie, sélectionner « Swing GUI Froms »,
 Dans Type de fichier (File Type) sélectionner « JFrame From »

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
48

Puis cliquer sur Suivent (Next).


Dans la boite de dialogue suivante, saisissez le Nom de la classe ou de
l’Objet JFrame (fenêtre) de votre choix (exemple : Mafenetre),
première lettre en Majuscule et sans espace, sans caractères
spéciaux.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
49

Puis, cliquer sur « Terminer » (Finish). Et vous obtenez ça (Votre


fenêtre en JAVA) :

Vous venez d’ajouter une classe à votre projet qui porte le nomme que
vous avez saisi dans la 2ème boite de dialogue (exemple : Mafenetre).
2. Ou encore, vous pouvez faire un clic-droit sur le nom de votre
projet, puis cliquer sur « Nouveau », puis sur « JFrame Form »

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
50

Dans la boite de dialogue qui apparait, saisissez le Nom de la classe ou


de l’Objet JFrame (fenêtre) de votre choix (exemple : Mafenetre),
première lettre en Majuscule et sans espace, sans caractères
spéciaux.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
51

Puis, cliquer sur « Terminer » (Finish). Et vous obtenez ça (Votre


fenêtre en JAVA) :

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
52

Sachez que vous venez d’ajouter une classe à votre projet qui porte
le nomme que vous avez saisi dans la boite de dialogue (exemple :
Mafenetre).
Pour que votre fenêtrée soit prise en charge dans le projet il faut
créer une instance en tapant le code suivant dans la méthode main
(méthode principale) du projet :
Mafenetre fen = new Mafenetre() ;

Pour obtenir une fenêtre plus conséquente, il faudrait donc :


 Qu’elle soit visible, lors de l’exécution du projet ;
 Qu’elle soit plus grande ;
 Qu’elle comporte un titre ;
 Qu’elle figure au centre de l’écran, ce serait parfait ;

• • Qu’il s’arrête réellement lorsqu’on clique sur le bouton de


fermeture.
NB. Le langage JAVA est un langage de Programmation purement
Orienté Objets, ce qui fait appel à la notion de classe, Objet,
Encapsulation, Polymorphisme, Héritage, … Qui risque de gâcher votre
compréhension, parce que vous allez rencontrer des différents en
différences sur la façon d’écrire les codes (les instructions).
Je vous prie de tenir le coup !

III.1.1.1 Quelques méthodes indiquant le comportement de la


fenêtre
POSITION DE LA FENETRE A L’ECRAN

Pour cela, vous pouvez utiliser les méthodes suivantes :


setlocationRelativeTo(null) : pour centrer la fenêtre.
Exemple :
fen.setLocationRelativeTo(null) ;
setLocation(int x, int y) : pour spécifier où doit se situer la 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
(figure suivante).
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
53

Exemple :
Fen.SetLocation(300,240) ;

La première valeur de la méthode vous positionne sur l’axe x, 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. La même règle s’applique aux valeurs de l’axe y, si ce n’est que
les valeurs positives font descendre la fenêtre depuis l’origine tandis
que les négatives la font sortir par le haut de l’écran.

EMPECHER LE REDIMENSIONNEMENT DE LA FENENTRE

Pour cela, il suffit d’invoquer la méthode setResizable(boolean b) :


false empêche le redimensionnement tandis que true l’autorise.

GARDER LA FENETRE AU PREMIER PLAN

Il s’agit là encore d’une méthode qui prend un booléen en paramètre.


Passer true laissera la fenêtre au premier plan quoi qu’il advienne, false
annulera cela. Cette méthode est seTalwaysonTop(boolean b)

RETIRER LES CONTOURS ET LES BOUTONS DE CONTROLE


Pour ce faire, il faut utiliser la méthode seTundecorated(boolean b).

Je ne vais pas faire le tour de toutes les méthodes maintenant, car de


toute façon, nous allons nous servir de bon nombre entre elles très
prochainement. Cependant, je suppose que vous aimeriez bien remplir
un peu votre fenêtre. Je m’en doutais, mais avant il vous faut encore
apprendre une bricole.
Vous pensez, c’est légitime, que votre fenêtre est toute simple,
dépourvue de tout composant (hormis les contours, barre de titre).

III.1.2. Construction de la fenêtre

Pour contrainte la fenêtre il faut placer les composants (Labelle, Zone


de texte, Bouton, Case à cacher, …) sur la fenêtre.
IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE
L1 INFO LMD /ISTIA
54

Tous ces composants se trouvent dans l’onglet Palette et sont des


différents type : Conteneurs, Contrôles, Menus, …

III.1.2.1. Comment placer un composant sur la fenêtre ?


Cliquez sur un composant fans l’onglet Palette pour le sélectionner,
puis vous le dessinez (on dit « Instancier ») sur le JFrame (votre
fenêtre) là où vous souhaitez qu’il soit placé.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
55

1. Je clique sur ce contrôle appelé Panel

2. Je me place sur mon JFrame, là où le Panel doit apparaitre, puis je


clique et j’obtiens ça.

Vous pouvez le redimensionner en faisant clic-en-foncé sur l’un des


points qui l’entourent, puis glissez jusqu’à l’endroit voulu et relâcher
pour obtenir la taille que vous voulez.
J’espère que vous avez compris en quelques mots comment placer
(Instancier) un composant sur une Fenêtre (JFrame).
Rappel : tout Objet possède tout un tas de propriétés et méthodes
qui le caractérisent. Pour chaque Objet, vous retrouverez ses
propriétés dans cette fenêtre.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
56

III.1.3. Comment modifier la valeur d’une propriété d’un Objet ?


Pour modifier la propriété d’un, on sélectionne d’abord l’Objet, puis
dans la fenêtre, puis dans la fenêtre « Propriétés », on clique sur une
propriété, puis on indique sa valeur.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
57

Exercice 1
Créer un programme graphique qui calcule et affiche le prix total d’un
article

Codes sources pour bouton calculer

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
58

Bouton Effacer

Bouton Quitter

Exercice 3
Créer un programme graphique qui calcule et affiche le prix total d’un
article.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
59

Exercice 3
Créer un programme graphique contenant le formulaire suivant :

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
60

Exercice 4 : Créer un programme graphique qui calcule et affiche le


prix total de l’article PARFUM, lors que l’utilisateur choix un autre
article le programme affiche mauvais article au cas contraire le
programme affiche achat du PARFUM effectuée avec succés.

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA
61

IR NICOLAS KABAMBA COURS DE JAVA 1 DESTINE AUX ETUDIANTS DE


L1 INFO LMD /ISTIA

Vous aimerez peut-être aussi