INITIATION À LA
PROGRAMMATION
ORIENTÉE-OBJET AVEC
LE LANGAGE JAVA
Au profit des classes 3eme EA
Présenté par Mahbouba Hattab
2024-2025
Objectifs du Cours
Apprendre à concevoir,
créer et manipuler des
objets en programmation.
Acquérir des compétences
Introduction au
de base en résolution de Familiarisation avec les
langage Java problèmes avec la POO. concepts clés tels que les
classes, les objets,
Comprendre les
l'encapsulation, l'héritage et
principes fondamentaux le polymorphisme.
de la programmation
orientée objet. Préparation à des concepts
plus avancés en POO.
PLAN
Introduction au langage Java
Syntaxe du langage
Éléments de programmation Java
Concepts POO en Java
Héritage
Les exceptions
Les Interfaces...
Qu’est-ce que Java ?
Java est un langage de programmation populaire, créé en 1995.
Il appartient à Oracle (Sun Microsystems )et plus de 3 milliards
d’appareils utilisent Java.
Il est utilisé pour :
Applications mobiles (spécialement les applications Android)
Applications Desktop
Applications Web
Serveurs Web et serveurs d’applications
Jeux
Connexion à la base de données
...
Qu’est-ce que Java ?
Pourquoi utiliser Java ?
Java fonctionne sur différentes plateformes (Windows, Mac, Linux, Raspberry Pi, etc.)
C’est l’un des langages de programmation très populaires au monde(Il a un énorme
community support (des dizaines de millions de développeurs))
Il est facile à apprendre et simple à utiliser
Il est open-source et gratuit
Il est sécurisé, rapide et puissant( java apps lentes à l’exécution % C)
Java est un langage orienté objet qui donne une structure claire aux programmes et
permet de réutiliser le code, réduisant ainsi les coûts de développement
Environnement Java
JDK
Le JDK, ou Java Development Kit, est un ensemble de logiciels et d'outils nécessaires au
développement d'applications en langage de programmation Java. IL comprend plusieurs
composants essentiels
Le compilateur Java (javac) : traduire le code source Java en bytecode, un langage
intermédiaire compréhensible par la JVM.
La machine virtuelle Java (JVM) : Elle est responsable de l'exécution du bytecode Java sur
différentes plates-formes, ce qui permet aux applications Java d'être portables .
Les bibliothèques Java standard (Java Standard Library) : contiennent des classes et
méthodes pré-définies qui simplifient le développement d'applications Java telles que la
gestion des chaînes de caractères, les entrées/sorties, les collections, etc.
Environnement Java
JDK
Environnement Java
Java Quickstart
En Java, chaque application commence par un nom de classe, et cette classe doit
correspondre au nom de fichier.
Chaque ligne de code qui s’exécute en Java doit
être à l’intérieur d’une classe. Dans notre exemple,
nous avons nommé la classe Main. Une classe doit
toujours commencer par une première lettre
majuscule.
Note : Java est sensible à la casse : "MyClass" et
"myclass" ont une signification différente.
Les Variables Java
Les variables sont des conteneurs pour stocker des valeurs de données.
Les types de données sont divisés en deux groupes :
Types de données primitifs - inclut byte(1), short(2), int(4,) long(8), float(4), double,(8) booléen
et char(2)
Types de données non primitifs - tels que String, Tableaux et Classes
Types de données primitifs :
Chaîne - stocke le texte, tel que "Bonjour".
int - tels que 123 ou -123
float - telles que 19,99 ou -19,99
char - tels que 'a' ou 'B'.
boolean - stocke les valeurs avec deux états : vrai ou faux
Les Variables Java
Variables finales
Si vous ne voulez pas que les autres (ou vous-même) écrasent des valeurs existantes,
utilisez le mot-clé final (qui déclarera la variable « final » ou « constant », ce qui signifie
immuable et en lecture seule) :
Les Variables Java
Tableaux et matrices
Une variable est déclarée comme un tableau dès lors que des crochets sont
présents soit après son type, soit après son identificateur
Un tableau a toujours une taille fixe qui doit être précisée avant l’affectation de
valeurs à ses indices, de la manière suivante :
Les Variables Java
Chaînes de caractères
Pour Les chaînes de caractères On utilise une classe particulière, String, fournie dans le
package [Link] avec les caractéristiques suivantes :
leur valeur ne peut pas être modifiée
on peut utiliser l’opérateur + pour concaténer deux chaînes de caractères :
Structures de contrôle
Instructions conditionnelles
Exemple
Structures de contrôle
Instructions itératives
Structures de contrôle
Instructions break et continue
L’instruction break est utilisée pour sortir
immédiatement d’un bloc d’instructions (sans traiter
les instructions restantes dans ce bloc).
break : l’exécution se poursuit après la boucle
(comme si la condition d’arrêt devenait vraie) ;
continue : l’exécution du bloc est arrêtée mais pas
celle de la boucle. Une nouvelle itération du bloc
commence si la condition d’arrêt est toujours vraie.
Les Méthodes Java
Une méthode est un bloc de code qui ne s’exécute que lorsqu’elle est appelée.
Nous pouvons passer des paramètres, dans une méthode.
Les méthodes sont utilisées pour effectuer certaines actions, et elles sont
également appelées fonctions.
Pourquoi utiliser des méthodes ? Pour réutiliser du code : définissez le code une
fois et utilisez-le plusieurs fois.
Les Méthodes Java
Programmation
orientés objet (OO).
Les langages de programmation peuvent être classés en deux catégories principales : les
langages de programmation procéduraux et les langages de programmation orientés
objet (OO).
Langages de programmation procéduraux : sont basés sur le concept de la
programmation procédurale, où un programme est structuré en termes de procédures
ou de fonctions. le code est généralement organisé en séquences d'instructions, et les
données sont stockées dans des variables.
L'accent est mis sur les procédures (fonctions) qui effectuent des tâches spécifiques
sur les données. Exemples C, Pascal, Fortran.
Programmation
orientés objet (OO).
Langages de programmation orientés objet (OO) : sont basés sur le principe où les
programmes sont structurés autour d'objets.
le code est organisé en classes et objets. Les classes définissent la structure et le
comportement des objets, tandis que les objets sont des instances de ces classes.
Les concepts clés de la programmation orientée objet incluent l'encapsulation,
l'héritage et le polymorphisme.
L'accent est mis sur la modélisation du monde réel en termes d'objets et de leurs
interactions.
Exemples de langages de programmation orientés objet : Java, C++, Python, Ruby.
Programmation
orientés objet (OO).
La programmation procédurale se concentre sur les procédures et les fonctions,
tandis que la programmation orientée objet se concentre sur les objets et leurs
relations.
Dans la programmation procédurale, les données et les fonctions sont souvent
séparées, tandis que dans la programmation orientée objet, les données et les
fonctions qui les manipulent sont encapsulées dans des objets.
Programmation
orientés objet (OO).
OOP est plus rapide et plus facile à exécuter
OOP fournit une structure claire pour les programmes
OOP aide à garder le code Java DRY "Don’t Repeat Yourself", et rend le code plus
facile à maintenir, modifier et déboguer
OOP permet de créer des applications réutilisables complètes avec moins de code
et un temps de développement plus court
Programmation
orientés objet avec
JAVA.
Java est un langage orienté objet car il est modélisé et organisé autour d’objets
plutôt que d’actions; et de données plutôt que de logique. Il simplifie le
développement et la maintenance de logiciels en fournissant des fonctionnalités
très intrigantes. La programmation orientée objet en Java vise à implémenter des
entités du monde réel telles que les objets, les classes, l’abstraction, l’héritage, le
polymorphisme et bien d’autres.
Programmation
orientés objet avec
JAVA.
Java - Que sont les
Classes et les Objets?
En programmation orientée objet (POO) en Java, une classe est un modèle ou un plan pour
créer des objets, tandis qu'un objet est une instance spécifique d'une classe. Une classe
définit les caractéristiques (attributs) et les comportements (méthodes) que les objets de
cette classe auront. Une classe est essentiellement une définition abstraite.
Java - Que sont les
Classes et les Objets?
Un objet est une instance concrète d'une classe. Il est créé en utilisant le constructeur de
la classe. Chaque objet a ses propres valeurs d'attributs, mais partage les mêmes
méthodes définies dans la classe. Les objets sont utilisés pour représenter des entités
réelles ou abstraites dans votre programme.
Java - Que sont les
Classes et les Objets?
Classes & Objects
Une classe Java est un plan qui inclut toutes vos données. Une classe contient des champs
(variables) et des méthodes pour décrire le comportement d’un objet.
Un objet est un élément majeur d’une classe qui a un état et un comportement. C’est une
instance d’une classe qui peut accéder à vos données. Le mot-clé « new » est utilisé pour
créer l’objet.
Java Constructors
Un constructeur est un bloc de code qui initialise un objet nouvellement créé. Il est similaire à une
méthode en Java mais n’a pas de type de retour et son nom est le même que le nom de la classe. Il
existe 2 types de constructeurs :
[Link] par défaut
(constructeur sans argument)
[Link] paramétré
Modificateurs en Java
En Java, les modificateurs sont des mots-clés utilisés pour spécifier la visibilité, l'accès et d'autres
caractéristiques des classes, des méthodes, des variables et des membres. Les modificateurs sont
essentiels pour définir l'encapsulation et le contrôle d'accès dans un programme Java. Voici
quelques-uns des modificateurs les plus couramment utilisés en Java :
Modificateurs en Java
Modificateurs d'accès (Access Modifiers) :
public: Les éléments avec ce modificateur sont accessibles depuis n'importe où dans le
code.
protected: Les éléments sont accessibles dans la même classe, dans les sous-classes
(héritage), et dans le même package.
default (ou pas de modificateur) : Les éléments sont accessibles uniquement dans la même
classe et dans le même package.
private: Les éléments sont accessibles uniquement dans la même classe.
Modificateurs en Java
Modificateurs de variable :
final: Indique que la variable est une constante et ne peut pas être réaffectée.
static: Indique que la variable est partagée par toutes les instances de la classe plutôt que
d'appartenir à une instance particulière.
Modificateurs en Java
Modificateurs d'accès (Access Modifiers) :
Modificateurs en Java
Modificateurs de classe :
final: Indique que la classe ne peut pas être héritée (sous-classement interdit).
abstract: Indique que la classe est une classe abstraite, ce qui signifie qu'elle ne peut pas
être instanciée directement.
Modificateurs en Java
Modificateurs de méthode :
final: Indique que la méthode ne peut pas être redéfinie dans les sous-classes.
static: Indique que la méthode appartient à la classe plutôt qu'à une instance de la
classe.
abstract: Indique que la méthode n'a pas de corps (implémentation) dans la classe
actuelle et doit être définie dans les sous-classes abstraites.
synchronized: Utilisé pour la synchronisation de threads.
native: Indique que la méthode est implémentée dans une bibliothèque native (non Java).
L’heritage
La notion de l‘héritage dans la programmation orienté objet :
L'héritage est l'un des concepts fondamentaux de la programmation orientée objet (POO).
Il s'agit d'un mécanisme qui permet à une classe d'hériter des caractéristiques (attributs
et méthodes) d'une autre classe, appelée classe parent ou classe de base. La classe qui
hérite de ces caractéristiques est appelée classe fille ou classe dérivée. L'héritage permet
de créer une hiérarchie de classes, ce qui facilite la réutilisation du code, la
généralisation des concepts et la structuration du programme.
L’heritage
Les points clés :
Relation parent-enfant : Une classe enfant peut hériter des propriétés d'une classe
parent. Cela signifie que la classe enfant a accès aux attributs et aux méthodes de la
classe parent.
Réutilisation du code : L'héritage favorise la réutilisation du code, car une classe peut
utiliser les fonctionnalités d'une autre classe sans avoir à les redéfinir. Cela permet de
créer des classes spécialisées qui étendent ou modifient le comportement d'une classe de
base.
L’heritage
Les points clés :
Polymorphisme : L'héritage contribue au polymorphisme, qui permet à des objets de
classes différentes de répondre de manière similaire à une même méthode. Par exemple,
une méthode définie dans la classe parent peut être redéfinie dans la classe enfant pour
adapter son comportement spécifique.
Encapsulation : L'héritage facilite l'encapsulation en permettant de définir des membres
de classe (attributs, méthodes) comme publics, protégés ou privés. Les membres protégés
sont accessibles par les classes dérivées, mais pas par les classes extérieures.
L’heritage
Les mots clés :
extends : Utilisé dans le contexte de l'héritage.
Lorsqu'une classe A extends une classe B, cela signifie que la classe A hérite de tous les
membres (attributs et méthodes) de la classe B.
La classe A est souvent appelée la classe dérivée ou sous-classe, et la classe B est
appelée la classe de base ou superclasse.
L’heritage
Les mots clés :
super : Utilisé pour appeler les membres (méthodes ou attributs) de la classe parente
(superclasse) depuis la classe fille (sous-classe).
Utile lorsque la sous-classe a des membres avec le même nom que ceux de la superclasse.
Peut également être utilisé pour appeler le constructeur de la superclasse dans le
constructeur de la sous-classe.
L’heritage
Les mots clés :
@Override : Une annotation utilisée pour indiquer explicitement qu'une méthode dans
une sous-classe est destinée à remplacer (ou "override") une méthode de la superclasse.
Facultatif mais recommandé pour une meilleure lisibilité du code.
Le compilateur générera une erreur si la méthode annotée n'override pas correctement
une méthode de la superclasse.
Les Interfaces
Definition :
En programmation orientée objet, une interface définit un ensemble de méthodes (fonctions) que les
classes qui implémentent cette interface doivent fournir. Lorsqu'une classe implémente une interface,
elle promet de fournir une certaine fonctionnalité sans révéler les détails internes de son
fonctionnement.
L'abstraction à travers les interfaces se fait en utilisant uniquement les méthodes définies dans
l'interface, sans se soucier de la manière dont ces méthodes sont mises en œuvre. Cela permet aux
développeurs de travailler à un niveau plus élevé, en utilisant des concepts abstraits plutôt que de se
plonger dans les détails spécifiques de l'implémentation.
Les Interfaces
En résumé, les interfaces fournissent un moyen de définir un contrat entre les différentes
parties d'un programme. Cela permet d'atteindre une abstraction efficace, car les détails
internes sont cachés derrière des méthodes déclarées dans l'interface, offrant ainsi une
manière simplifiée d'interagir avec des objets ou des composants logiciels sans se soucier
de la complexité interne.
Les Interfaces
Il n’y a pas d’héritage multiple en Java: une classe ne peut être extension qu’une seule
classe. Par contre une classe peut implémenter plusieurs interfaces (et être extension d’une
seule classe).
Une interface ne contient (essentiellement) que des déclarations de méthodes.
Une interface est un peu comme une classe sans données membres et dont toutes les
méthodes seraient abstraites.
Merci !