Académique Documents
Professionnel Documents
Culture Documents
1. Introduction
2. Classes et objets
3. Héritage
4. Polymorphisme
5. Abstract/Static/Final
6. Les collections
1- Introduction
1- Introduction
1. Présentation du cours
2. Définition de l'orienté
3. Avantages de l'orienté objet
4
1.1- Présentation du cours
Durée et fréquence Niveau requis et
Objectifs du cours Matériel nécessaire
des séances pré-requis
Dans ce cours, nous allons explorer les bases de la programmation orientée objet
(POO) et découvrir comment utiliser les concepts clés de la POO pour construire des
programmes plus robustes et plus faciles à maintenir. À la fin de ce cours, vous devriez
être capable de:
•Comprendre les principes fondamentaux de la POO
•Créer des classes et des objets en utilisant la POO
•Utiliser les concepts de héritage, polymorphisme et encapsulation
•Écrire du code plus facilement compréhensible et maintenable
5
1.1- Présentation du cours
Durée et fréquence Niveau requis et
Objectifs du cours Matériel nécessaire
des séances pré-requis
Le cours se déroulera sur 10 semaines, avec une séance hebdomadaire d'une durée de 3 heures.
6
1.1- Présentation du cours
Durée et fréquence Niveau requis et
Objectifs du cours Matériel nécessaire
des séances pré-requis
7
1.1- Présentation du cours
Durée et fréquence Niveau requis et
Objectifs du cours Matériel nécessaire
des séances pré-requis
Pour suivre ce cours, vous aurez besoin d'un ordinateur avec un IDE pour java
8
1.2- Définition de l'orienté objet
Définition de l'orienté Historique de l'orienté Comparaison avec
objet objet d'autres paradigmes
9
1.2- Définition de l'orienté objet
Définition de l'orienté Historique de l'orienté Comparaison avec
objet objet d'autres paradigmes
10
1.2- Définition de l'orienté objet
Définition de l'orienté Historique de l'orienté Comparaison avec
objet objet d'autres paradigmes
11
1.2- Définition de l'orienté objet
Définition de l'orienté Historique de l'orienté Comparaison avec
objet objet d'autres paradigmes
La programmation orientée objet a été introduite pour la première fois dans les
années 1960, mais c'est seulement dans les années 1980 et 1990 qu'elle a
commencé à être largement utilisée. Au fil des ans, la programmation orientée objet
a évolué pour inclure des fonctionnalités telles que les génériques et les signatures
de méthodes.
12
1.2- Définition de l'orienté objet
Définition de l'orienté Historique de l'orienté Comparaison avec
objet objet d'autres paradigmes
13
1.3- Avantages de l'orienté objet
14
2- Classes et objets:
2- Classes et objets
1. Introduction
2. Classes
1. Définition de la classe
2. Propriétés et méthodes des classes
3. Objets
1. Définition de l'objet
2. Utilisation des objets
4. Résumé
16
2- Classes et objets
Introduction Classes Objets Résumé
La programmation orientée objet est un paradigme de programmation qui s'appuie sur
l'utilisation des objets pour représenter les concepts du monde réel dans un programme
informatique. Les objets sont créés à partir de classes, qui définissent les propriétés et les
méthodes que les objets créés à partir de ces classes peuvent posséder. Les autres
concepts clés de la programmation orientée objet comprennent l'héritage, le
polymorphisme et l'encapsulation.
17
2- Classes et objets
Introduction Objets Résumé
Classes
2.1. Définition de la classe
Une classe est un modèle pour créer des objets. Une classe définit les propriétés et les
méthodes que les objets créés à partir de cette classe peuvent posséder. Par exemple, si
nous voulons représenter des voitures dans notre programme, nous pouvons créer une
classe appelée "Voiture" qui définit les propriétés telles que la marque, le modèle et la
couleur, ainsi que les méthodes telles que démarrer et arrêter le moteur.
18
2- Classes et objets
Introduction Classes Objets Résumé
2.1. Exemple d’une classe
public class Voiture {
// Propriétés de la classe Voiture
private String marque;
private String modèle;
private String
couleur;
// Méthodes de la classe Voiture
public void démarrer() {
System.out.println("Le moteur
a démarré.");
}
public void arrêter() {
System.out.println("Le moteur
s'est arrêté.");
}
}} } 19
2- Classes et objets
Introduction Classes Objets Résumé
2.2. Propriétés et méthodes des classes
Les propriétés d'une classe sont utilisées pour stocker les états d'un objet. Les méthodes
sont utilisées pour décrire les comportements d'un objet. Dans notre exemple de classe
"Voiture", les propriétés sont la marque, le modèle et la couleur, tandis que les méthodes
sont démarrer et arrêter.
20
2- Classes et objets
Introduction Objets Résumé
Classes
2.1. Définition de l’objet
Un objet est une instance concrète d'une classe. Nous pouvons créer autant d'objets que
nous le souhaitons à partir d'une seule classe. Chaque objet peut avoir des valeurs
différentes pour ses propriétés, ce qui les rend uniques.
21
2- Classes et objets
Introduction Classes Résumé
Objets
22
2- Classes et objets
Introduction Objets Résumé
Classes
2.2.
NousUtilisation des objets
pouvons utiliser les objets pour accéder à leurs propriétés et méthodes. Pour accéder à une propriété
d'un objet, nous pouvons utiliser l'opérateur point (.). Pour appeler une méthode d'un objet, nous pouvons
utiliser l'opérateur point suivi du nom de la méthode et des parenthèses.
• maVoiture.marque = "Toyota";
• maVoiture.modèle = "Camry";
• maVoiture.couleur = "Rouge";
• maVoiture.démarrer();
• maVoiture.arrêter();
23
2- Classes et objets
Introduction Classes Objets Résumé
Les classes et les objets sont deux concepts clés de la programmation orientée objet. Les
classes sont utilisées pour définir les propriétés et les méthodes que les objets créés à
partir de ces classes peuvent posséder. Les objets sont des instances concrètes de classes,
qui peuvent avoir des valeurs uniques pour leurs propriétés. Nous pouvons utiliser les
objets pour accéder à leurs propriétés et méthodes.
24
3- Héritage:
3- Héritage
• Définition de l'héritage
• Utilisation de l'héritage pour réutiliser du code
• Overriding
26
3- Héritage
Exemple Notions
Définition avantages
importantes
2.1. Définition de l’héritage
L'héritage est un concept important en programmation orientée objet qui permet à une
classe de hériter les propriétés et les méthodes d'une autre classe. La classe qui hérite est
appelée classe fille ou sous-classe, tandis que la classe dont elle hérite est appelée classe
mère ou super-classe.
27
3- Héritage
Exemple Notions
Définition avantages
importantes
2.1. Exemple de l’héritage
Supposons que nous avons une classe Animal qui définit les propriétés et les méthodes génériques pour
tous les animaux, telles que la race, le poids et la méthode manger().
28
3- Héritage
Exemple Notions
Définition avantages
importantes
2.1. Exemple de l’héritage
Nous pouvons maintenant définir des sous-classes pour des animaux spécifiques, tels que Chien et Chat, en
héritant de la classe Animal.
29
3- Héritage
Exemple Notions
Définition avantages
importantes
2.1. Exemple de l’héritage
Dans cet exemple, la classe Chien et la classe Chat héritent toutes les deux des propriétés
et des méthodes de la classe Animal. De plus, chacune peut définir ses propres propriétés
et méthodes spécifiques. Cela permet de modéliser différents types d'animaux en utilisant
l'héritage et de réutiliser le code existant sans duplication.
30
3- Héritage
Notions
Définition Exemple avantages importantes
31
3- Héritage
Exemple Notions
Définition avantages
importantes
Il est également important de noter que l'héritage peut entraîner des problèmes tels que
la complexité accrue, la réduction de la flexibilité et la dépendance de la classe parent. Il
est donc important de choisir judicieusement l'utilisation de l'héritage dans votre code.
32
3- Héritage
Exemple Notions
Définition avantages
importantes
La méthode equals() en Java est une méthode héritée de la classe Object qui est utilisée
pour comparer l'égalité de deux objets. Elle renvoie true si les deux objets sont égaux,
c'est-à-dire s'ils ont la même valeur. Pour déterminer l'égalité, la méthode compare les
valeurs de tous les champs de l'objet. Si tous les champs ont la même valeur, la méthode
renvoie true, sinon elle renvoie false.
33
4- Polymorphisme :
Polymorphisme
35
Polymorphisme
36
Polymorphisme
Exemple d'overloading :
37
Polymorphisme
38
Polymorphisme
Exemple d'overriding :
39
5- Abstract/Static/Final
Abstract
Une classe abstraite en programmation orientée objet est une classe qui ne
peut pas être instanciée directement, mais qui sert de modèle pour d'autres
classes qui en héritent. Elle peut contenir des méthodes abstraites, c'est-à-
dire des méthodes qui n'ont pas de corps et doivent être implémentées dans
les classes qui en héritent. Les classes abstraites peuvent également contenir
des méthodes et des attributs concrets qui seront hérités par les classes filles.
Les classes abstraites sont souvent utilisées pour regrouper des
fonctionnalités communes et définir un comportement de base qui doit être
implémenté dans les classes filles.
41
Abstract
Une méthode abstraite est une méthode qui ne possède pas de corps de
méthode (ou d'implémentation) dans la classe abstraite dans laquelle elle est
déclarée. Elle ne contient que sa signature (nom de méthode et liste de
paramètres) et elle est marquée avec le mot clé abstract. Les classes
abstraites ne peuvent pas être instanciées directement, mais elles peuvent
être héritées par des classes concrètes qui implémentent les méthodes
abstraites. Les sous-classes doivent alors fournir une implémentation de
toutes les méthodes abstraites héritées.
42
Abstract
43
Static
44
Static
Une méthode static est une méthode qui n'agit pas sur des
variables d'instance mais uniquement sur des variables de
classe. Ces méthodes peuvent être utilisées sans instancier un
objet de la classe. Les méthodes ainsi définies peuvent être
appelées avec la notation classe.methode() au lieu de
objet.methode() : la première forme est fortement
recommandée pour éviter toute confusion.
45
Static
propriétés :
▶ Le mot clé static est utilisé pour désigner une propriété dont la
valeur est identique pour tous les objets de la classe.
▶ Le mot clé static est aussi utilisé pour désigner une méthode qui
n’accède à aucune propriété non static.
▶ Une méthode qui accède à une propriété static doit être déclarée
static.
46
Static
propriétés :
47
Static
Exemple : Variables statiques
1 class A
2 {
3 public static
int i = 100;
4
5 public static void main(String[] args) {
6 System.out.println(i); 7
}
8 }
9
10
class B 11
{
12 publ
ic 48
stati
c
Static
Exemple : Méthodes statiques
class A
{
public static void f()
{ System.out.println("Inside static
method");
}
class B
{
public static void main(String[] args) {
A.f(); 49
}
Final
En Java, le mot clé "final" est utilisé pour indiquer :
Pour les variables : si une variable est déclarée comme finale, elle ne peut
être affectée qu'une seule fois, soit lors de l'initialisation, soit lors de la
déclaration. Toute tentative de modification ultérieure de la valeur de la
variable entraînera une erreur de compilation.
Pour les méthodes : si une méthode est déclarée comme finale, elle ne peut
pas être redéfinie (ou "overridden") par des sous-classes.
Pour les classes : si une classe est déclarée comme finale, elle ne peut pas
être étendue par des sous-classes.
50
Final
Exemple variables :
51
Final
Exemple methodes :
52
Final
Exemple classe :
53
Exercice
▶ Créer une classe Note avec les attributs nomModule, coefficient et
noteModule.
▶ Créer une classe Etudiant qui contient les attributs nom, prenom, note de
type tableau de classe.
▶ Créer une méthode pour calculer la moyenne pondérée des notes de
l'étudiant en utilisant les coefficients des modules.
▶ Ajouter un attribut et une méthode statique pour compter le nombre
d'étudiants.
▶ Tester la classe en créant plusieurs étudiants avec plusieurs notes pour
chaque étudiant, en ajoutant et en calculant la moyenne pondérée de leurs
notes, et en affichant le nombre d'étudiants créés.
54