Cycle : BTS
Niveau : 2
Support de cours
Programmation Orientée Objet
JAVA
ANNEE ACADEMIQUE 2025 - 2026
Ing. KOUEMO Nguégoué Joël
CHAPITRE 1 : INTRODUCTION À
L’ORIENTÉ OBJET ET À JAVA
Objectifs du chapitre
À la fin de ce chapitre, l’étudiant doit être capable de :
Pourquoi l’on utilise l’orienter objet ;
Les limites des anciennes méthodes de programmation ;
Le rôle des notions “classe”, “objet”, “attribut”, “méthode” ;
Comment Java met en œuvre l’orienté objet ;
Comment exécuter un premier programme.…).
I. PROBLÈME DE DÉPART : POURQUOI A-T-ON CRÉÉ
L’ORIENTÉ OBJET ?
1. Limites de l’ancienne méthode (programmation procédurale)
Les données et les fonctions sont séparées → difficile à gérer.
Le code devient très compliqué quand l’application grandit.
Une petite modification peut casser plusieurs parties du programme.
Les données ne sont pas protégées → n’importe quelle fonction peut les
changer.
Le programme ne représente pas bien le monde réel.
2. Besoins qui ont motivé la POO
Les développeurs voulaient un modèle qui permette de :
mieux organiser le code,
regrouper données + actions au même endroit,
protéger les informations,
faciliter la maintenance,
représenter naturellement les objets du monde réel.
3. Principe clé de la POO
On rassemble dans un même bloc les données (attributs)et les actions (méthodes). Ce
bloc s’appelle une classe. Un objet est un exemplaire de cette classe.
Ing. KOUEMO Nguégoué Joël
II. ÉLÉMENTS FONDAMENTAUX DE L’ORIENTÉ OBJET
1. La Classe
Une classe est un plan ou un modèle qui décrit quelles données un objet aura
(attributs) quelles actions il pourra faire (méthodes)
La classe ne représente pas un objet réel : elle sert à fabriquer des objets.
2. L’Objet
Un objet est un élément concret créé à partir d’une classe.
Il représente quelque chose qui existe réellement dans le programme, avec :
ses propres données (attributs)
ses propres actions (méthodes)
Un objet est une "réalité" construite à partir du modèle qu’est la classe.
Un objet est une instance de la classe.
3. Encapsulation
L’encapsulation est le principe qui consiste à protéger les données d’un objet en les
rendant inaccessibles directement depuis l’extérieur.
On contrôle l’accès à ces données à l’aide de méthodes spéciales (getters et setters).
On cache les données, et on ne les manipule qu’à travers des méthodes.
➡ Objectif : éviter les erreurs et sécuriser les données.
4. Héritage
L’héritage est un mécanisme qui permet à une classe (classe fille) de réutiliser les
attributs et méthodes d’une autre classe (classe mère), sans avoir à les réécrire.
La classe fille possède automatiquement tout ce que la classe mère possède.
⭐ Explication très simple :
La classe mère = modèle général
La classe fille = modèle plus précis qui hérite de tout ce que la classe mère
contient, puis ajoute ses propres éléments.
5. Polymorphisme
Le polymorphisme est le principe qui permet à une même méthode d’avoir des
comportements différents selon l’objet qui l’utilise.
Ing. KOUEMO Nguégoué Joël
Même nom de méthode, mais fonctionnement adapté à chaque classe.
⭐ Explication très simple
III. COMMENT JAVA IMPLEMENTE L’OOP
Java est un langage conçu spécialement pour appliquer l’Orientée Objet. Pour cela, il
utilise trois grands éléments :
La JVM (Java Virtual Machine)
Le processus compilation → exécution
La structure standard d’un programme Java
Nous allons expliquer ces éléments simplement pour que vos étudiants comprennent
comment Java exécute réellement un programme orienté objet.
1. La JVM : Le cœur de Java
La JVM (Java Virtual Machine) est une machine virtuelle qui exécute le code Java.
Elle ne comprend pas directement le code source (.java).
Elle exécute du bytecode, un code intermédiaire contenu dans les fichiers .class.
Java n’est pas compilé directement par le système d’exploitation.
Le code passe obligatoirement par la JVM.
Rôle simple de la JVM :
lire et exécuter le bytecode
gérer la mémoire (création des objets, libération automatiquement)
gérer la sécurité
permettre la portabilité de Java
2. Le processus de compilation en Java (2 étapes)
Pour exécuter un programme Java, il y a exactement deux étapes :
Étape 1 : Compilation
Commandes utilisées : javac [Link]
Le compilateur transforme le fichier source .java en fichier .class (bytecode).
Étape 2 : Exécution
Commande : java MonProgramme
La JVM lit le fichier .class et exécute le programme.
Ing. KOUEMO Nguégoué Joël
3. Structure d’un programme Java
Pour comprendre comment Java applique l’POO, il faut connaître la structure minimale d’un
programme.
Voici un exemple simple et indispensable :
CHAPITRE 2 : LES CLASSES ET OBJETS
EN JAVA
Objectifs du chapitre
À la fin de ce chapitre, l’étudiant doit être capable de :
Définir clairement ce qu’est une classe en POO et son rôle dans Java.
Distinguer une classe d’un objet grâce à une analogie simple.
Reconnaître et écrire la syntaxe minimale d’une classe Java.
Créer une classe simple contenant au moins des attributs.
Comprendre que Java oblige tout code à être dans une classe (100% orienté
objet).
Visualiser le lien Classe → Objet à travers un schéma mental simple.
I. INTRODUCTION : QU’EST-CE QU’UNE CLASSE ?
1. Définition simple d’une classe
Une classe est une structure qui regroupe des données (attributs) et des comportements
(méthodes) afin de créer des objets ayant les mêmes caractéristiques.
2. Pourquoi une classe ?
L’utilisation d’une classe répond à trois grands besoins :
a. Organiser le code
Dans les applications modernes, il y a beaucoup de données et de traitements.
Les classes permettent de ranger, organiser et structurer le programme.
On évite les programmes désordonnés.
b. Servir de modèle pour créer des objets
Une classe est un moule, un modèle commun.
Chaque objet créé à partir de cette classe a les mêmes propriétés (attributs) et les mêmes actions
(méthodes).
Ing. KOUEMO Nguégoué Joël
Exemple : Classe Étudiant → tous les étudiants ont :
un nom
un matricule
des notes
c. Base de la Programmation Orientée Objet
La POO repose entièrement sur les classes.
Sans classe → pas d’objet.
Sans objet → pas de POO.
Tout commence par la classe.
3. Syntaxe minimale d’une classe en Java
Java impose une structure très simple pour créer une classe.
4. Exemple d’une classe simple : Produit
Ing. KOUEMO Nguégoué Joël
II. DECLARATION D’UNE CLASSE AVEC ATTRIBUTS ET
METHODES
1. Définition des Attributs
Un attribut est une variable déclarée à l’intérieur d’une classe. Ces attributs représentent l’état
d’un objet, c’est-à-dire ses caractéristiques.
Exemples d'attributs :
Le nom d’un étudiant
Le prix d’un produit
Les coordonnées d’un point
Structure générale d’un attribut :
visibilite type nom_attribut;
Exemple :
private String nom;
public double prix;
int age;
2. Types d’Attributs
Les attributs peuvent être de différents types :
a. Types primitifs :
int → nombres entiers
double → nombres réels
boolean → vrai ou faux
char → caractère
b. Types objets (référence) :
String → texte
Point → classe définie par l’utilisateur
Produit → classe définie par l’utilisateur
c. Conventions :
Visibilité souvent private (encapsulation)
Nom d’attribut en camelCase → nomProduit, prixUnitaire
Ing. KOUEMO Nguégoué Joël
3. Définition des Méthodes
Une méthode représente une action, un comportement de l’objet.
Exemples :
calculer un prix
afficher une information
déplacer un point
Syntaxe générale d’une méthode :
visibilite typeRetour nomMethode(parametres) {
// corps de la méthode
}
Exemple simple :
4. Organisation générale d’une classe
Une classe Java se compose généralement de deux parties :
A. Liste des attributs B. Liste des méthodes
Placée en haut de la classe : Les méthodes viennent ensuite :
Exercice1 : Classe Point en Java
Enoncé
On souhaite créer une classe Point permettant de représenter un point dans un plan à deux
dimensions (coordonnées x et y).
Votre travail consiste à :
1. Déclarer la classe Point
La classe doit contenir deux attributs privés :
Ing. KOUEMO Nguégoué Joël
x : entier représentant l’abscisse
y : entier représentant l’ordonnée
2. Ajouter une méthode deplacer(int dx, int dy)
Cette méthode doit permettre de déplacer le point :
dx correspond au déplacement horizontal
dy correspond au déplacement vertical
La nouvelle position du point est donnée par : 𝑥 = 𝑥 + 𝑑𝑥 et 𝑦= 𝑦 +𝑑𝑦
3. Ajouter une méthode afficher(). Cette méthode doit afficher le point sous la forme : (x ;y)
Exercice 2 : Classe Banque
Créer une classe CompteBancaire ayant :
numeroCompte (String)
solde (double)
Ajouter et implémente les méthodes:
afficherSolde()
deposer(double montant) → ajoute au solde
retirer(double montant) → retire du solde
Exercice 3 : Classe Compteur
Créer une classe Compteur qui sert à compter.
Elle contient :
valeur (int)
Méthodes :
afficher()
incrementer() → ajoute 1
incrementerDe(int n) → ajoute n
reinitialiser() → remet à 0
III. L’ENCAPSULATION (VISIBILITE DES ATTRIBUTS)
1. Définition simple de l’encapsulation
L’encapsulation consiste à protéger les données d’un objet en rendant les attributs inaccessibles
directement depuis l’extérieur.
Idée clé : Les données sont privées et ne sont accessibles qu’à travers des méthodes
contrôlées.
2. Les modificateurs d’accès en Java
Java propose quatre niveaux de visibilité :
Ing. KOUEMO Nguégoué Joël
Modificateur Mot-clé Accessible depuis…
public public partout (tous les packages)
private private uniquement dans la même classe
protected protected classe + sous-classes + même package
default aucun mot-clé seulement dans le même package
3. Détail des modificateurs
a. private (le plus utilisé pour les attributs)
Non accessible en dehors de la classe
Protège les données internes
Oblige l'utilisation de getters/setters
b. public (principalement pour les méthodes)
Méthodes publiques accessibles depuis un autre fichier ou un autre objet.
c. protected
Visible par : la classe , les classes filles (héritage) et les classes du même package
d. default (aucun mot-clé)
Visible uniquement dans le même package
Rarement utilisé volontairement
4. Encapsulation et sécurité des données
L’encapsulation permet de :
empêcher les modifications dangereuses
valider les données avant modification
contrôler qui accède à quoi
protéger les informations sensibles (mot de passe, solde bancaire…)
C’est un pilier fondamental de la POO.
Ing. KOUEMO Nguégoué Joël
IV. LES GETTERS ET SETTERS (Accesseurs Et Mutateurs)
1. Définition d’un getter
Un getter est une méthode publique qui permet d’accéder (lire) la valeur d’un attribut privé
d’une classe.
Il fait partie du principe d’encapsulation, car il permet de contrôler la manière dont on lit les
données internes d’un objet.
Il a pour rôle :
Lire un attribut privé
Protéger l’attribut contre un accès direct
Permettre un accès contrôlé et sécurisé
Respecter les bonnes pratiques de la POO (encapsulation)
Syntaxe générale d’un getter Exemple
2. Définition d’un setter
Un setter est une méthode publique qui permet de modifier (changer) la valeur d’un attribut
privé d’une classe.
Il permet un accès contrôlé aux données, conformément au principe d’encapsulation.
Il a pour role :
Modifier une valeur privée
Empêcher les modifications dangereuses
Contrôler ou valider les données avant changement
Respecter les bonnes pratiques de la POO
Exemple
Syntaxe générale d’un getter
Ing. KOUEMO Nguégoué Joël
3. Règles d’écriture (conventions Java)
Le getter commence par get
Le setter commence par set
La première lettre de l’attribut après "get"/"set" devient majuscule
Les attributs restent private
Exemple standard :
Attribut Getter Setter
nom getNom() setNom(String nom)
prix getPrix() setPrix(double prix)
4. Exemple simple : nom, prix, quantite
IV. Les Constructeurs
Ing. KOUEMO Nguégoué Joël
1. Définition d’un constructeur
Un constructeur est une méthode spéciale qui sert à construire et initialiser un objet au
moment où il est créé. C’est la première chose qui s’exécute quand on écrit new.
Il sert à initialiser les attributs de l'objet.
Il porte exactement le même nom que la classe et n’a pas de type de retour (pas même void).
Syntaxe générale :
2. Constructeur par défaut (constructeur vide)
Le constructeur par défaut est un constructeur vide, c’est-à-dire un constructeur qui ne
prend aucun paramètre et initialise l’objet avec des valeurs de base.
Il peut être :
créé automatiquement par Java, si aucun autre constructeur n’est écrit,
ou
défini explicitement par le programmeur, pour préciser des valeurs initiales.
Exemple de constructeur vide Exemple de constructeur vide
implicite explicite
Il est invisible, mais il existe.
3. Constructeur avec paramètres
Un constructeur avec paramètres est un constructeur qui reçoit des valeurs en entrée
afin d’initialiser directement les attributs de l’objet lors de sa création.
Contrairement au constructeur vide, il oblige l’utilisateur à fournir des valeurs, ce qui garantit
que l’objet démarre dans un état cohérent et complet.
Ing. KOUEMO Nguégoué Joël
Syntaxe générale Exemple concret : Classe Point
4. Constructeurs multiples (Surcharge)
La surcharge des constructeurs consiste à définir plusieurs constructeurs dans une même
classe, chacun ayant des paramètres différents.
Cela permet de créer un objet de plusieurs manières selon les besoins.
Même nom (nom de la classe)
Signatures différentes (nombre, type ou ordre des paramètres)
Utilisés pour offrir plusieurs façons d’initialiser un objet
Pourquoi surcharger les constructeurs ?
Permettre plusieurs options d’initialisation
Simplifier la création des objets
Éviter la duplication du code
Adapter la classe à plusieurs situations
Règles de la surcharge
Pour que deux constructeurs coexistent, ils doivent avoir :
soit un nombre différent de paramètres,
soit un type différent,
soit un ordre différent.
Même nom + mêmes paramètres = interdit
Exemple concret : Classe Produit
Ing. KOUEMO Nguégoué Joël
Utilisation
V. Le mot-clé this
Ing. KOUEMO Nguégoué Joël