INSTITUT UNIVERSITAIRE LES COURS SONOU
Année académique : 2025 - 2026
Licence 2
TITRE du cours :
Langage JAVA
M. Zhoul YESSOUFOU
yessoufouzhul@[Link]
© Mars - Avril 2026
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 1 sur 12 [Link]
SOMMAIRE OU PLAN DU COURS
Chapitre 1 : Introduction à Java
• 1.1 Historique et caractéristiques de Java
• 1.2 Installation JDK et configuration de l’environnement
• 1.3 Premier programme Java : Hello World
• 1.4 Compilation et exécution
Chapitre 2 : Syntaxe et types de base
• 2.1 Types primitifs
• 2.2 Variables et constantes
• 2.3 Opérateurs
• 2.4 Structures conditionnelles et boucles (if, for, while, switch)
Chapitre 3 : Méthodes et tableaux
• 3.1 Déclaration et appel de méthodes
• 3.2 Passage de paramètres, retour de valeur
• 3.3 Tableaux à une et deux dimensions
• 3.4 Parcours de tableaux
Chapitre 4 : Introduction à la POO
• 4.1 Classes et objets
• 4.2 Constructeurs
• 4.3 Encapsulation : attributs, getters, setters
• 4.4 Méthodes d’instance et de classe (static)
Chapitre 5 : Concepts avancés de POO
• 5.1 Héritage
• 5.2 Surcharge et redéfinition
• 5.3 Polymorphisme
• 5.4 Classes abstraites et interfaces
Chapitre 6 : Collections et manipulation de données
• 6.1 Introduction aux collections : ArrayList, HashMap
• 6.2 Parcours avec for-each et itérateurs
• 6.3 Tri et recherche
• 6.4 Généricité
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 2 sur 12 [Link]
Chapitre 7 : Gestion des exceptions
• 7.1 Try-catch-finally
• 7.2 Types d’exceptions (checked vs unchecked)
• 7.3 Création d’exceptions personnalisées
Chapitre 8 : Entrées/Sorties de fichiers
• 8.1 Lecture et écriture de fichiers texte
• 8.2 Streams et classes utiles (BufferedReader, FileWriter)
• 8.3 Sérialisation d’objets
Chapitre 9 : Projet de synthèse
• 9.1 Choix du thème (ex : gestion d’étudiants, stock, etc.)
• 9.2 Création des classes, logique métier
• 9.3 Fichier ou base de données simple
• 9.4 Présentation du projet
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 3 sur 12 [Link]
CONTENU DU COURS DETAILLE
Chapitre 1 : Introduction à Java
1.1 Historique et caractéristiques de Java
Java est un langage de programmation créé par James Gosling chez Sun Microsystems en
1995. Il a été conçu pour être portable, sûr et orienté objet. Depuis, il est largement utilisé
pour développer des applications de bureau, web et mobiles.
Caractéristiques principales :
• Portable ("Write Once, Run Anywhere")
• Orienté objet
• Sûr (gestion de la mémoire, vérification des types)
• Multi-thread (gestion de plusieurs tâches en parallèle)
• Richesse de bibliothèques (API)
1.2 Installation JDK et configuration de l’environnement
Pour programmer en Java, il faut :
• Installer le JDK (Java Development Kit)
• Configurer la variable d’environnement JAVA_HOME
• Ajouter bin du JDK dans le PATH
IDE recommandés : IntelliJ IDEA, Eclipse, NetBeans, ou un simple éditeur comme VS
Code.
1.3 Premier programme Java : Hello World
public class HelloWorld {
public static void main(String[] args) {
[Link]("Bonjour le monde !");
}
}
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 4 sur 12 [Link]
Explication :
• public class HelloWorld : déclaration de la classe
• main : point d’entrée du programme
• [Link]() : affiche un message dans la console
1.4 Compilation et exécution
• Compilation : javac [Link] → génère [Link]
• Exécution : java HelloWorld
Chapitre 2 : Syntaxe et types de base
2.1 Types primitifs
Java comprend 8 types primitifs :
• Entiers : byte, short, int, long
• Réels : float, double
• Caractère : char
• Booléen : boolean
2.2 Variables et constantes
int age = 25; // variable
final double PI = 3.14; // constante (mot-clé final)
Les noms de variables respectent la convention camelCase.
2.3 Opérateurs
• Arithmétiques : +, -, *, /, %
• Comparaison : ==, !=, <, >, <=, >=
• Logiques : &&, ||, !
• Affectation : =, +=, -=, etc.
2.4 Structures conditionnelles et boucles
if (age >= 18) {
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 5 sur 12 [Link]
[Link]("Majeur");
} else {
[Link]("Mineur");
for (int i = 0; i < 5; i++) {
[Link](i);
int i = 0;
while (i < 5) {
[Link](i);
i++;
switch (jour) {
case 1: [Link]("Lundi"); break;
case 2: [Link]("Mardi"); break;
default: [Link]("Autre jour");
}
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 6 sur 12 [Link]
Chapitre 3 : Méthodes et tableaux
3.1 Déclaration et appel de méthodes
Une méthode est un bloc de code qui exécute une tâche spécifique. On la définit dans une
classe.
public class Calcul {
public static void afficherMessage() {
[Link]("Bienvenue en Java !");
Appel de la méthode :
[Link]();
3.2 Passage de paramètres, retour de valeur
public class MathUtil {
public static int carre(int x) {
return x * x;
Appel :
int resultat = [Link](5); // 25
3.3 Tableaux à une et deux dimensions
Tableau à une dimension :
int[] notes = {12, 15, 17};
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 7 sur 12 [Link]
[Link](notes[1]); // 15
Tableau à deux dimensions :
int[][] matrice = {
{1, 2},
{3, 4}
};
[Link](matrice[1][0]); // 3
3.4 Parcours de tableaux
for (int i = 0; i < [Link]; i++) {
[Link](notes[i]);
for (int note : notes) {
[Link](note);
Chapitre 4 : Introduction à la POO
4.1 Classes et objets
En Java, tout repose sur la programmation orientée objet (POO). Une classe est un plan de
construction, un objet est une instance de cette classe.
public class Personne {
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 8 sur 12 [Link]
String nom;
int age;
}
Personne p = new Personne();
[Link] = "Alice";
[Link] = 30;
4.2 Constructeurs
Un constructeur permet d'initialiser un objet lors de sa création.
public class Personne {
String nom;
int age;
public Personne(String n, int a) {
nom = n;
age = a;
}
}
Personne p = new Personne("Alice", 30);
4.3 Encapsulation : attributs, getters, setters
L'encapsulation consiste à protéger les données avec des méthodes d'accès.
public class Compte {
private double solde;
public double getSolde() {
return solde;
}
public void setSolde(double s) {
solde = s;
}
}
4.4 Méthodes d’instance et de classe (static)
public class Outils {
public static int doubler(int x) {
return x * 2;
}
}
int r = [Link](5); // 10
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 9 sur 12 [Link]
Chapitre 5 : Concepts avancés de POO
5.1 Héritage
Une classe peut hériter d'une autre pour réutiliser son code.
class Animal {
void crier() {
[Link]("Cri d’animal");
}
}
class Chien extends Animal {
void crier() {
[Link]("Ouaf !");
}
}
5.2 Surcharge et redéfinition
• Surcharge : plusieurs méthodes avec le même nom mais des paramètres différents.
• Redéfinition : une sous-classe modifie une méthode héritée.
5.3 Polymorphisme
Le polymorphisme permet d'utiliser des objets de différentes classes dérivées via une même
référence parent.
Animal a = new Chien();
[Link](); // "Ouaf !"
5.4 Classes abstraites et interfaces
• Une classe abstraite peut contenir des méthodes implémentées ou non.
• Une interface ne contient que des signatures de méthodes.
abstract class Forme {
abstract double aire();
}
interface Dessinable {
void dessiner();
}
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 10 sur 12 [Link]
Chapitre 6 : Collections et manipulation de données
6.1 Introduction aux collections : ArrayList, HashMap
ArrayList<String> noms = new ArrayList<>();
[Link]("Alice");
HashMap<String, Integer> annuaire = new HashMap<>();
[Link]("Alice", 1234);
6.2 Parcours avec for-each et itérateurs
for (String nom : noms) {
[Link](nom);
}
6.3 Tri et recherche
[Link](noms);
boolean existe = [Link]("Alice");
6.4 Généricité
public class Boite<T> {
private T contenu;
public void setContenu(T c) {
contenu = c;
}
public T getContenu() {
return contenu;
}
}
Chapitre 7 : Gestion des exceptions
7.1 Try-catch-finally
try {
int a = 5 / 0;
} catch (ArithmeticException e) {
[Link]("Erreur : " + [Link]());
} finally {
[Link]("Bloc finally exécuté");
}
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 11 sur 12 [Link]
7.2 Types d’exceptions
• Checked : doivent être gérées (IOException)
• Unchecked : erreurs de logique (NullPointerException)
7.3 Création d’exceptions personnalisées
class MonException extends Exception {
public MonException(String msg) {
super(msg);
}
}
Chapitre 8 : Entrées/Sorties de fichiers
8.1 Lecture et écriture de fichiers texte
BufferedWriter writer = new BufferedWriter(new FileWriter("[Link]"));
[Link]("Bonjour");
[Link]();
BufferedReader reader = new BufferedReader(new FileReader("[Link]"));
String ligne = [Link]();
[Link]();
8.2 Streams et classes utiles
FileReader, BufferedReader, FileWriter, BufferedWriter permettent une
lecture/écriture efficace.
8.3 Sérialisation d’objets
ObjectOutputStream out = new ObjectOutputStream(new
FileOutputStream("[Link]"));
[Link](monObjet);
[Link]();
Chapitre 9 : Projet de synthèse
9.1 Choix du thème
Exemples : gestion d’étudiants, stock, bibliothèque.
9.2 Création des classes, logique métier
Immeuble LES COURS SONOU – Parcelle b Lot n°66 du R.F.U
FOE/FOR/001/-CT 03 BP 2101 - Cotonou, Rép BENIN
SUPPORT DU COURS Version : 01 Tel : (00229) 21315670 / 60412121
e-mail : contact@[Link]
Page 12 sur 12 [Link]
• Modéliser les entités avec des classes
• Implémenter les comportements dans les méthodes
9.3 Fichier ou base de données simple
• Sauvegarde des données dans un fichier texte ou objet
9.4 Présentation du projet
• Présentation orale ou écrite du fonctionnement
• Démonstration des fonctionnalités principales