Académique Documents
Professionnel Documents
Culture Documents
COURS DE LANGAGE DE
PROGRAMMATION III(JAVA)
A l’usage des étudiants de troisième année graduat en
Informatique et des passionnés de développement
Février 2023
P age |2
INTRODUCTION
Ce cours de langage de programmation Java est
destiné aux étudiants de troisième année graduat en
Informatique de Gestion. Son intérêt réside par le fait
qu’actuellement, la plupart des applications
informatiques sont centrées vers une approche dite
orientée-objet.
I. OBJECTIF DU COURS :
a) Objectif général
b) Objectifs spécifiques
IV. BIBLIOGRAPHIE
a) Ouvrages
1. Boichat, JB., Apprendre Java et C++ en parallèle,
4ème édition, Eyrolles, Paris, 2008.
2. Claude, D., Exercice en Java 5.0, 2ème édition
Eyrolles, Paris, 2006.
3. DJUNGU, SJ, Outils et langages du Web n.0, Ed.
CRIA, Kinshasa, 2013.
4. MUKENGE, J., Le Langage Java et nous, 1ère édition,
CRIGED, Kinshasa, Octobre 2012.
b) Notes de cours
5. Gautier, P., Cours d’initiation à la programmation
orienté-objet avec le langage Java, Pôle
informatique, ENSM Saint-Etienne, 2013-2014.
6. KANGA, E., Cours des questions spéciales de
programmation avancée, L1 Info, ISCBDD, 2016-2017.
7. MISSWAY, J., Cours d’Informatique de Gestion, G3
SCF, ISC-BDD, 2015-2016.
8. MISSWAY,J., Cours de Technique de base de données,
G3 Info, ISC-BDD,2015-2016.
9. MISSWAY, J., cours de langage de programmation
III( Java), G3 info, ISC-BDD, 2016-2017.
10. MUKENGE, J., Cours de Java, G3 Info, ISC Kin,
2014-2015.
P age |4
c) Sites consultés
11. http://www.developpez.com/java
12. http://www.siteduzero.com/tutoriel-3-10601-
programmation-en-java.html
13. http://www.openclassroom.com/java
P age |5
Java
Virtual
Machine
Pentium
Windows
Java
Virtual
Machine
Pentium
Code source
Compilateur Java
Code Java Linux
Java
Virtual
Machine
Alpha
UNIX
2.1. Identificateur
2.2. Commentaire
2.3. Opérateurs
Opérateurs arithmétiques :
Exemple
Exemple 1 :
int k = 5 , n ; n = 5 k = 6
n = k++ ;
Exemple 2 :
int k = 5, n ; n = -1 k = 6
n = k++ - k ;
Exemple 3 :
int k = 5 , n ;
P a g e | 14
n = k - k++ ;
n = 0 k = 6
Exemple1 :
int k = 5 , n ;
n = ++k ; n = 6 k = 6
Exemple 2 :
int k = 5 , n ;
n = ++k - k ; n = 0 k = 6
Exemple 3 :
int k = 5 , n ;
n = k - ++k ; n = -1 k = 6
Dans l'instruction k - ++k nous avons le calcul
suivant : le premier opérande de la soustraction est
k (k=5), le second opérande de la soustraction est
++k, k est immédiatement incrémenté (k=6) et c'est sa
P a g e | 15
Exemple de la post-décrémentation : k—
Exemple 1 :
int k = 5 , n ;
n = k-- ; n = 5 k = 4
pré-décrémentation : --k
La valeur de k est d'abord diminuée puis utilisée dans
l'instruction.
Exemple1 :
int k = 5, n ;
n = --k ; n = 4 k = 4
Exemple
Opérateurs logiques
Opérateurs de comparaison
A>B=false
(A>B)|(B==C=false
P a g e | 17
Opérateurs d’affectation
2.4. Concaténation
Exemple
System.out.println(Pren+Nom);
2.5. Variable
Voici la syntaxe :
Typevariable nomVariable;
Exemple :
int X ;
P a g e | 20
Exemple :
int A=10 ;
Booléens
Le type boolean, ils prennent les valeurs true et
false. Un booléen prend la valeur par défaut false.
Caractères
Les caractères peuvent être déclarés avec le
type char. Non initialisés, ils prennent la valeur 0
(caractère null).
Ils occupent 2 octets puisque codés en Unicode
(à la différence du C qui les code sur 8 bits en
ASCII). Unicode a permis entre autres d’associer dans
une table toutes les tables ASCII.
Caractères spéciaux
Ils sont utilisés pour indiquer des opérations
particulières comme un saut de ligne. En voici un
tableau non exhaustif :
Exemple : NomDeClasse
Conversion de types
La conversion (également appelée transtypage) est
faite en Java seulement d’un type primitif en un autre
type primitif. Il se fait de la manière suivante :
Exemple
float a=1.0 ;
int b=(int)a ;
P a g e | 23
Exemple
2.7. Instructions
package exempleLecture;
import java.util.Scanner;
public class Lecture {
public static void main(String[] args) {
String ligne_lue;
System.out.println("Entrer une string");
Scanner clavier=new Scanner (System.in);
ligne_lue=clavier.nextLine();
System.out.println(ligne_lue);
}
}
bufferedReader clavier=new BufferedReader(new
InputredReader(system.in)) ; permet au programmeur
de créer un objet de la classe BufferedReader appélé
clavier.
Tout objet de la classse BufferedReader exécute une
méthode appelé readLine()qui permet de lire une
ligne entière de chaine de caractères.
package exempleLecture;
import java.io.*;
P a g e | 25
Exemple1
Exemple2
P a g e | 26
Int a =5;
Int b=5 ;
System.out.println(a+b);
EXERCICES D’APPLICATION
P a g e | 27
L’instruction if else
Un test :
if(condition1)
instruction1 ;
else
instruction 2 ;
if(condition1)
instruction1 ;
else if(condition2)
instruction2 ;
else if(confition3).
instruction3 ;
Exemple:
Écrivez un programme pour trouver un maximum entre
trois nombres en utilisant une if-else ou if imbriquée
import java.util.Scanner;
import java.util.Scanner ;
Int A, B, C, Sauve ;
A = clavier.nextInt() ;
B = clavier.nextInt() ;
C= clavier.nextInt() ;
Else
else
} }
Nota:
Un bloc peut remplacer une instruction si
plusieurs instructions sont à exécuter.
L’instruction switch
switch(expression) {
case valeur1 : //bloc de code 1 ;
break ;
case valeur2 : //bloc de code 2 ;
break ;
case valeur3 :
P a g e | 31
case valeur4 :
//bloc de code 3&4 ;
break
default : //bloc de code par
défaut ;
}
Exemple 1
int x = 10;
switch (x+1)
{ case 11 : System.out.println(">> case 11");
case 12 : System.out.println(">> case 12");
default : System.out.println(">> default");
}
>> case 11
>> case 12
>> default
Exemple 2 :
Écrivez un programme pour Saisir le numéro du jour
dans une semaine (1-7) et affichez le nom du jour à
l'aide de switch case.
import java.util.Scanner;
int jour;
switch (jour) {
case 1:
System.out.println("Lundi");
break;
case 2:
System.out.println("Mardi");
break;
case 3:
System.out.println("Mercredi");
break;
case 4:
System.out.println("Jeudi");
break;
case 5:
System.out.println("Vendredi");
break;
case 6:
System.out.println("Samedi");
break;
case 7:
System.out.println("Dimanche");
break;
default:
System.out.println("Entrée invalide!
Veuillez saisir le numéro de jour entre 1 et 7.");
}
int num;
switch (num % 2) {
/* Si n%2 == 0 */
case 0:
System.out.println("Pair");
break;
/* Sinon n%2 == 1 */
case 1:
System.out.println("Impair");
break;
}
int num;
switch (op) {
case '+':
resultat = num1 + num2;
break;
case '-':
resultat = num1 - num2;
break;
case '*':
resultat = num1 * num2;
break;
case '/':
resultat = num1 / num2;
break;
default:
System.out.println("Opérateur invalide");
}
Boucle for
for(initialisation ; condition ;
opération) { /*bloc*/ }
Cette boucle fonctionne ainsi :
tout d’abord une initialisation est
effectuée
ensuite la condition est testée
si elle est vraie, le bloc est exécuté
puis l’opération effectuée ; ensuite on
repart sur la condition
si elle est fausse, le bloc n’est pas
exécuté et l’on quitte la boucle.
P a g e | 37
Exemple1
I=1 j=1
I=2 j=2
I=3 j=3
I=4 j=4
I=5 j=5
P a g e | 38
while(condition) { … }
Avant chaque exécution du bloc, la condition
est à nouveau testée jusqu’à ce qu’elle soit fausse.
Si elle est fausse dès le départ, le bloc ne sera
jamais exécuté.
Exemple 1
Boucle do while
do { … }
while(expression)
Exemple :
import java.util.Scanner;
public class Test {
public static void main(String[] variables) {
Scanner clavier = new Scanner(System.in);
int i, n;
clavier.close();
import java.util.Scanner;
P a g e | 41
int i, n, somme = 0;
// calculer la somme
for (i = 2; i <= n; i += 2) {
somme += i;
}
clavier.close();}}
Exemple
int a=0;
while(a<10){
P a g e | 42
Sans initialisation
Type nom_vecteur [] ;
Avec initialisation :
Solution
int somme=0;
int i=0;
while (i<=7){
System.out.println(""+Table[i]);
P a g e | 44
somme+=Table[i];
i++;
System.out.println(" ---");
System.out.println("Total:"+(somme));
Exemples
Exemple
double somme= 0;
for (int i = 0;i<ligne;i++){
System.out.println("Ligne numero " + (i +
1));
for (int j=0;j<colonne;j++){
System.out.println("Donnez la valeur "
+ (j + 1) + " ");
tableau[i][j] = sc.nextDouble();
} }
for (int i=0;i<ligne;i++){
for (int j=0;j<i;j++)
somme=somme+tableau[i][j];
}
System.out.println("La somme " + somme);
}
}
Exemple:
try {
operation_risquée1;
opération_risquée2;
}
catch (Exception e) {
traitements
}
finally {
traitement_pour_terminer_proprement;
}
Si un événement indésirable survient dans le bloc
try, la partie éventuellement non exécutée de ce bloc
est abandonnée et le premier bloc catch est traité. Si
catch est défini pour capturer l'exception issue du bloc
try alors elle est traitée en exécutant le code associé
au bloc. Si le bloc catch est vide (aucunes instructions
entre les accolades) alors l'exception capturée est
ignorée.
4.1. Classe
Cercle mon_rond;
mon_rond = new Cercle();
Exemple :
MaClasse m;
String chaine;
Exemple :
m = new MaClasse();
Exemple :
4.5. Méthodes
4.5.1. Déclaration
}
P a g e | 54
4.5.4. Constructeur
}
4.5.5. CLASSE STRING
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic her
String chaine1,chaine2;
chaine1="papa";
chaine2=chaine1.toUpperCase();
System.out.println(chaine2);
}
Ce programme affiche à l’exécution PAPA.
P a g e | 57
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic her
String chaine1,chaine2,chaine3;
chaine1="ISC";
chaine2=" BANDUNDU";
chaine3=chaine1.concat(chaine2);
System.out.println(chaine3);
}
}
A l’exécution, ce programme affiche ISC BANDUNDU
d) Equals () : permet de voir si deux chaines de
caractères sont identiques.
class EXEMPLE_CLASS_STRING {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic her
String chaine1,chaine2,chaine3;
chaine1="KISANGANI";
chaine2="KINGASANI";
if (chaine1.equals(chaine2))
System.out.println("les deux chaines
identiques");
else
System.out.println("les deux chaines ne sont
pas identiques");
}
P a g e | 58
}
A l’exécution le programme affiche le second message
car, les deux chaines ne sont pas identitiques.
e) Length () : permet de donner la longueur d’une chaine
de caractère.
package exemple_class_string;
/**
*
* @author JMK Missway
*/
public class EXEMPLE_CLASS_STRING {
/**
* @param args the command line arguments
*/
public static void main(String[] args) {
// TODO code application logic her
String chaine;
chaine="KISANGANI";
int longueur;
longueur=chaine.length();
System.out.println(longueur);
}
P a g e | 59
}
A l’exécution, ce programme affiche 9 comme nombre de
caractères composant la chaine KISANGANI.
Package Description
java.awt Classes graphiques et de gestion
d’interfaces
java.io Gestion des entrées/sorties
java.lang Classes de base (importé par défaut)
java.util Classes utilitaires
javax.swing Autres classes graphiques
Java.sql Accès aux données de base de données
et traitement
Java.math Classe permettant des calculs en
précision entière et en virgule
flottante
Java.text Support de localisation pour la
gestion des textes, des dates, des
nombres et des messages
Java.net Classes qui permettent le
développement en réseau
import java.util.Date;
public class DateMain {
public static void main(String[] args) {
Date today = new Date();
System.out.println(”Nous sommes le ” +
today.toString());
}
}
CHAPITRE V : INTERFACES GRAPHIQUES EN JAVA
Pour créer les interfaces graphiques, nous allons
utiliser l’Environnement de Développement Intégré (EDI)
NetBeans.
Un debugger,
Un outil de modélisation UML,
Tout le nécessaire pour faire des applications J2EE,
Il est gratuit !
5.1. Création d’un projet
Résolution
Interface à réaliser
P a g e | 77
Code source
int i,j,resultat;
String Chaine1, Chaine2, Chaine3;
// récuparation des deux données au format
String...
Chaine1 = jTextField2.getText();
Chaine2 = jTextField3.getText();
// converson en int
i = Integer.parseInt(Chaine1);
j = Integer.parseInt(Chaine2);
// addition
resultat = i + j;
// conversion en chaine
Integer rr = new Integer(resultat);
Chaine3 = rr.toString();
// on affiche le résultat
jTextField4.setText(Chaine3);
}
P a g e | 78
Authentification
Cliquez ici pour se windows
connecter
a. Création de la table
Statement requete=con.createStatement() ;
Resultset resultat=requete.executeQuery("select*
from T_Etudiant") ;
resultat.next()
getstring(NumColonne), getInt(NumColonne),
getDate(NumColonne),….
P a g e | 84
try {
for(int i = 0; i<=100; i++){
Thread.sleep(100);
PAGE_DEMAR.jProgressBar1.setValue(i);
if(i==100){
MALALA.setVisible(true);
PAGE_DEMAR.setVisible(false);
}
}
}
catch (Exception e){
FENETRE D’AUTHENTIFICATION
P a g e | 87
BOUTON VALIDER
private void
VALIDERActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here malala:
String Motpass= jPasswordField1.getText();
if(Motpass.contains("MALALA")){
MENU MENU = new MENU();
MENU.setVisible(true);
setVisible(false);
}
else{
JOptionPane.showMessageDialog(null,"Mot de
passe incorrect !");
jTextField1.setText("");
jPasswordField1.setText("");
}
}
BOUTON QUITTER
private void
QUITTActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here:
System.exit(0);
}
P a g e | 88
BOUTON ENREGISTREMENT
private void
ENREGActionPerformed(java.awt.event.ActionEvent evt) {
// TODO add your handling code here malala:
ENREGISTREMENT TAMFUMU = new ENREGISTREMENT();
TAMFUMU.setVisible(true);
setVisible(false);
}
P a g e | 89
BOUTON ENREGISTRER
private void
ENREGISTRERActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
try{
Statement req=con.createStatement();
int a;
a = req.executeUpdate("Insert into TPRODUIT Values
("+jTextField1.getText()+",'"+jTextField2.getText()
+"','"+jTextField3.getText()+"','"+jTextField4.getT
ext()+"','"+jTextField5.getText()+"')");
Afficher();
JOptionPane.showMessageDialog(null, "Enregistrement
effectué");
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
}
P a g e | 90
BOUTON RECHERCHER
private void
RECHERCHERActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
try{
Statement req=con.createStatement();
ResultSet rs=req.executeQuery("Select *
From TPRODUIT WHERE CODE_PROD="+
jTextField1.getText());
while(rs.next()){
jTextField2.setText(rs.getString(2));
jTextField3.setText(rs.getString(3));
jTextField4.setText(rs.getString(4));
jTextField5.setText(rs.getString(5));
}}catch(Exception e){
JOptionPane.showMessageDialog(null, "Erreur
Code\n"+e.getMessage());}}
BOUTON SUPPRIMER
private void
jButton3ActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
try{
if(jTextField1.getText().length()!=0){
Statement req=con.createStatement();
int a;
a=req.executeUpdate("Delete from
TPRODUIT WHERE CODE_PROD="+ jTextField1.getText());
Afficher();
JOptionPane.showMessageDialog(null,"Suppression
reussie");
P a g e | 91
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
}else{JOptionPane.showMessageDialog(null,"Remplir le
Code");}
}catch (Exception e){
JOptionPane.showMessageDialog(null,"Erreur
suppression\n"+e.getMessage());}
}
BOUTON MODIFIER
private void
jButton4ActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
try{
Statement req=con.createStatement();
int a;
a = req.executeUpdate("UPDATE TPRODUIT SET
LIBELLE_PROD='"+jTextField2.getText()+"',QUANTITE='"+jT
extField3.getText()+"',PU='"+jTextField4.getText()+"',P
T='"+jTextField5.getText()+"' Where
CODE_PROD="+jTextField1.getText());
Afficher();
JOptionPane.showMessageDialog(null, "Modification
reussie");
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
}catch (Exception e){
JOptionPane.showMessageDialog(null, "Erreur
\n"+e.getMessage());
}}
P a g e | 92
BOUTON ANNULER
private void
jButton6ActionPerformed(java.awt.event.ActionEvent evt)
{
// TODO add your handling code here:
jTextField1.setText("");
jTextField2.setText("");
jTextField3.setText("");
jTextField4.setText("");
jTextField5.setText("");
}
BOUTON QUITTER
private void
jButton7ActionPerformed(java.awt.event.ActionEvent
evt) {
// TODO add your handling code here:
System.exit(0);
}
P a g e | 93
A : i = 1 n = 0
B : i = 11 n = 11
C : i = 21 j = 6 n = 120
D : i = 18 n = 18
E : i = 12 j = 4 n = 12
2. Quels résultats fournit ce programme ?
public class OpCond
{ public static void main(String[] args)
{ int n=10, p=5, q=10 ;
n = p = q = 5 ;
P a g e | 94
n += p += q ;
System.out.println ("A : n = " + n + " p = " +
p + " q = " + q) ;
q = n < p ? n++ : p++ ;
System.out.println ("B : n = " + n + " p = " +
p + " q = " + q) ;
q = n > p ? n++ : p++ ;
System.out.println ("C : n = " + n + " p = " +
p + " q = " + q) ;
}
}
Solution
A : n = 15 p = 10 q = 5
B : n = 15 p = 11 q = 10
C : n = 16 p = 11 q = 15
3. Quelles erreurs ont été commises dans chacun des
groupes d’instructions suivants. On suppose que les
variables concernées sont d’un type primitif
numérique et qu’elles ont été correctement déclarées
(un groupe ne comporte aucune erreur) :
// groupe 1
if (a < b) System.out.println ("ascendant")
else System.out.println ("non ascendant") ;
// groupe 2
if (a < b) { System.out.println ("ascendant) ; max = b
}
// groupe 3
int n, p ;
.....
switch (n) { case 2 : System.out.println ("petit") ;
break ;
case p : System.out.println ("limite") ;
break ;
P a g e | 95
}
// groupe 4
int n ;
final int LIMITE = 20 ;
.....
switch (n) { case LIMITE-1 : System.out.println ("un peu
trop petit") ; break ;
case LIMITE : System.out.println ("OK")
; break ;
case LIMITE+1 : System.out.println ("un peu
trop grand") ; break ;
}
Solution
Groupe 1
Il manque un point-virgule à la fin du premier appel de
System.out.println :
if (a < b) System.out.println ("ascendant") ;
else System.out.println ("non ascendant") ;
Groupe 2
Il manque un point-virgule à la fin de la deuxième
instruction du bloc :
if (a < b) { System.out.println ("ascendant) ; max = b
; }
}
System.out.println ("Somme : " + som) ;
}
}
Écrire un programme réalisant la même chose en
employant à la place de l’instruction for :
1. une instruction while,
2. une instruction do... while
Solution
{ int i, n, som ;
som = 0 ;
i = 0 ;
while (i<4)
n = Clavier.lireInt() ;
som += n ;
i++ ;
{ int i, n, som ;
som = 0 ;
i = 0 ;
do
n = Clavier.lireInt() ;
som += n ;
i++ ;
while (i<4) ;
CONCLUSION
La programmation de nos jours devient un domaine
incontournable de l’informatique, car au-delà de
matériels qui deviennent de plus en plus sophistiqués,
avec des très grandes capacités en termes des
performances, il faut également des logiciels qui
puissent être à la hauteur de ceux-ci.