Vous êtes sur la page 1sur 29

Cours: Programmation Java

Filière: 2 ème LSI


Enseignante: Dr. Majdoub Manel

2023-2024 Programmation JAVA 2eme SI 1


Plan du cours

Chapitre 1 Introduction
Chapitre 2 Objets et Classes
Chapitre 3 Encapsulation et Surcharge
Chapitre 4 Héritage et Polymorphisme
Chapitre 5 Classes abstraites et Interfaces
Chapi
Chapitre 6 Les collections
tre 5
Chapitre 7 Les exceptions

18/09/2023 POO 2eme SI 2


Objectifs du module

1. Comprendre l’intérêt de la programmation orientée


objet
2. Maitriser les principes de base de la POO :
Objet
 Classe
 Encapsulation
Héritage
Polymorphisme
classe abstraite
 les interfaces
3. Savoir utiliser ce paradigme de programmation pour
modéliser des problèmesPOO 2eme SI
18/09/2023 3
Chapitre I: Introduction
La programmation procédurale
• La programmation procédurale telle que étudiée au travers des
langages C, Pascal permet de mettre en œuvre des programmes avec
un ensemble de données sur lesquelles agissent des procédures ou
des fonctions
Opérent sur
Traitements Données Données globales

influencent
Instructions et Variables
Function 2 Fonction 1 Fonction 2 Fonction 3
expressions Structures
Les boucles Chaines de Données Données
conditionnelles caractères
Données
Les fonctions Tableaux
locales locales locales
Pointeur

• Exécuter un programme se réduit alors à appeler ces procédures dans


un ordre décrit par le séquençage des instructions et en leur
fournissant les données nécessaires à l’accomplissement de leurs
tâches.
18/09/2023 POO 2eme SI 5
La programmation procédurale

• Au fur et à mesure que les programmes écrits avec une approche


procédurale grossissent, ils deviennent fragiles et mettent en
danger les données
• Propagation des erreurs- débogage difficile
• Maintenance complexes ( les fonctions interdépendantes)
• La portée d’une modification est trop grande et difficile à gérer
• Redondance dans le code (la même chose est codé plusieurs fois)

18/09/2023 POO 2eme SI 6


La programmation orientée objet

• L'idée de base de la programmation orientée objet (POO) est de


rassembler dans une même entité appelée objet les données et les
traitements qui s'y appliquent.
Données Données
Fonctions Fonctions

Objet1 Objet
2
Données
Fonctions

Objet3

• Un objet est une entité informatique qui modélise un élément du


monde réel. Cette entité permet alors de regrouper les principales
caractéristiques d’un élément du monde réel (taille, couleur, ...).
• Un objet est un ensemble de données (attributs) et de fonctions
(méthodes) permettant des manipuler les données.
18/09/2023 POO 2eme SI 7
Les concepts de la programmation orientée objets

• Classes et objets
• L’abstraction
• L’encapsulation
• L’héritage
• Le polymorphisme

18/09/2023 POO 2eme SI 8


Les concepts de la programmation orientée objets

Classes et objets
Classe

Objet
18/09/2023 POO 2eme SI 9
Les concepts de la programmation orientée objets

Classes et objets
• Une classe est la description de données appelées attributs, et
d’opérations appelées méthodes.
• Une classe est un modèle de définition pour des objets ayant le même
ensemble d’attributs, et le même ensemble d’opérations.
• A partir d’une classe on peut créer un ou plusieurs objets
par instanciation ; chaque objet est une instance d’une seule classe.

18/09/2023 POO 2eme SI 10


Les concepts de la programmation orientée objets

Classes et objets
Etudiant1
Num inscription 11
Nom: ‘’Ali’’
Filière: ‘’SI’’
Etudiant2
Num inscription: 13
Etudiant3 Nom: ‘’Asma’’
Num inscription: 12 Filière: ‘’SI’’
Nom: ‘’Mohamed’’
Filière: ‘’ISI’’

Enseignant1
Matricule: 12548
Nom: ‘’Ali’’
Grade: ‘’MA’’

18/09/2023 POO 2eme SI 11


Les concepts de la programmation orientée objets

Classes et objets Classe Etudiant


Num inscription 11
Nom: ‘’Ali’’ Etudiant
Filière: ‘’SI’’
Num inscription: 13 Num : int
Num inscription: 12 Nom: ‘’Asma’’ Nom: String
Nom: ‘’Mohamed’’ Filière: ‘’SI’’ Filiere: String
Filière: ‘’ISI’’
S’inscrire() : void
PasserExamen() : boolean

Enseignant
Matricule: 12548
Nom: ‘’Ali’’ Matricule : int
Grade: ‘’MA’’ Nom: String
Grade: String
Classe Enseignant
18/09/2023 POO 2eme SI Enseigner(): void 12
Les concepts de la programmation orientée objets

Classes et objets
• Un objet Un objet est une entité informatique qui modélise un élément du
monde réel.
• Cette entité permet alors de regrouper les principales caractéristiques d’un
élément du monde réel (taille, couleur, ...).
• Un objet est une structure de données caractérisée par :
– une identité : permettre d’identifier l’objet sans ambiguïté
– des états : qui constitue l’ensemble des valeurs des attributs de cet
objet.
– des méthodes : chaque objet est capable d’exécuter les actions ou le
comportement défini dans la classe. Ces actions sont traduites en POO
concrètement sous forme de méthodes.

18/09/2023 POO 2eme SI 13


Les concepts de la programmation orientée objets

Abstraction: est un principe qui consiste à ignorer certains aspects d’un


sujets qui ne sont pas importants pour le problème dans le but de se
concentrer sur ceux qui le sont.

Classe Etudiant {
Numinscri
Nom
abstraction Prenom
}

Un étudiant

Représentation d’une réalité en code


18/09/2023 POO 2eme SI 14
Les concepts de la programmation orientée objets

L’encapsulation:
• Regrouper des caractéristiques au sein d’une classe
• masquer un certain nombre d’attributs et de méthodes afin de
garder une cohérence dans la gestion de l’objet. Les détails de
l’implémentation d’un objet sont masqués aux autres objets du
système à objets.

18/09/2023 POO 2eme SI 15


Les concepts de la programmation orientée objets

L’héritage: permet, à partir d’un objet existant (nommé objet parent), de


définir un nouvel objet (nommé objet enfant) auquel on ajoute de
nouveaux attributs et de nouvelles méthodes en plus de ceux hérités de
l’objet existant. Document
Num
Classe mère
Titre
Emprunter ()

Livre Revue Dictionnaire

Auteur Date Langue


Nbpages

Classe fille
18/09/2023 POO 2eme SI 16
Les concepts de la programmation orientée objets

Le polymorphisme: c’est capacité d’un objet à posséder plusieurs


formes. Ce principe découle de l’héritage. C’est un mécanisme qui
permet à une sous classe de redéfinir une méthode dont elle a
hérité tout en gardant la même signature de la méthode.

18/09/2023 POO 2eme SI 17


Les langages de POO

• JAVA ,C++, C#, PHP (Depuis la version 4), Python, etc.

Les langages de programmation les plus utilisés en 2023


Source: Index TIOBE
18/09/2023 POO 2eme SI 18
Le langage Java

• Un langage de programmation orienté objet crée par Sun MicroSystems


• Présenté officiellement le 23 Mai 1995
• La société Oracle a achetée la société Sun en 2009-2010 , JAVA
appartient désormais à Oracle.
• La particularité et l’intérêt de Java réside dans sa portabilité entre les
différents systèmes d’exploitations tels que Unix, Windows, ou MacOS.
• La syntaxe du langage Java est à l’origine très inspirée du C et du C++

18/09/2023 POO 2eme SI 19


Le langage Java

• est orienté objet


• est fortement typé
➢ Toute variable doit être déclarée avec un type
➢ Le compilateur vérifie que les utilisations des variables sont
compatibles avec leur type (notamment via un sous typage correct)
➢ Les types sont d'une part fournis par le langage, mais
également par la définition des classes
• est compilé
➢ En bytecode, i.e., code intermédiaire indépendant de la
machine
• est interprété
➢Le bytecode est interprété par une machine virtuelle Java

18/09/2023 POO 2eme SI 20


Les versions java

1996 : JDK 1.0 2019


1997 : JDK 1.1 mars : Java SE 12
1998 : JDK 1.2, appelé Java 2 septembre : Java SE 13
2000 : JDK 1.3 2020
2002 : JDK 1.4 mars : Java SE 14
2004 : JDK 1.5, appelé Java 5 septembre : Java SE 15
2006 : JDK 1.6, appelé Java 6 2021
2010: janvier : rachat de Sun Microsystems mars : Java SE 16
par Oracle septembre : Java SE 17
2011 : JDK 1.7, appelé Java 7 2022
2014 : JDK 1.8, appelé Java 8. mars : Java SE 18
2017 : JDK 9. septembre: Java SE 19
2018 : mars : Java SE 10 2023
septembre : Java SE 11 mars: Java SE 20
septembre: Java SE 21
18/09/2023 POO 2eme SI 21
Les éditions principales de Java

• Il existe quatre éditions principales de Java :


– Java 2 Standard Edition (J2SE): pour le développement et
l'exécution des applications classiques, desktop
– Java 2 Enterprise Edition (J2EE): pour le développement et
l'exécution des applications serveur, Web services, etc.
– Java 2 Micro Edition (J2ME): pour le développement et
l'exécution des applications embarquées, PDA, téléphones, etc.

18/09/2023 POO 2eme SI 22


Les étapes de développement

• Pour faire un programme Java , en utilisant l’outil JDK de Sun par exemple :
– on doit créer le fichier source (extension .java) , par exemple : test.java
en utilisant n’importe quel éditeur de texte.
– On compile le fichier avec l’utilitaire javac : javac test.java. Si le
programme ne contient aucune erreur, un fichier .class est créé. Ce
fichier contient un certain nombre d'instructions, appelées bytecodes
ou P-codes, qui pourront être exécutées par l'interpréteur Java
(implémentation de la Machine Virtuelle Java)
– On lance l’exécution du fichier compilé avec : java test.class.

18/09/2023 POO 2eme SI 23


Compilation et exécution
Monprogramme.java

Code source Compilation


Javac Monprogramme.java
Javac Monprogramme.java
Class Monprogramme
{
Public static void main(String args[])
Monprogramme.class {
System.out.println(‘’ bonjour’’);
Bytecodes }}

JVM Interprétation
Java Monprogramme

Résultat
18/09/2023 POO 2eme SI 24
Le kit de développement Java (JDK)

• Le kit de développement Java (JDK) est un ensemble d’outils essentiels


pour le développement d’applications Java. Il permet de fournir un
environnement complet pour écrire, compiler, déboguer et exécuter
des programmes Java (cf. I.B). Les outils fournis par le JDK sont
généralement rencontrés dans tous les environnements de
développement logiciel.
• Les composants du JDK
– Le compilateur Java (javac)
– Les bibliothèques standard (Java Class Library)
– Les outils de développement

18/09/2023 POO 2eme SI 25


Le Java Runtime Environment (JRE)

• Le Java Runtime Environment (JRE) est un environnement d’exécution


nécessaire pour exécuter des applications Java. Il comprend la Java
Virtual Machine (JVM), les bibliothèques de classes et d’autres
composants essentiels. Il prend en charge l’exécution des programmes
Java en fournissant une plateforme d’exécution pour la JVM. Il charge et
exécute les fichiers bytecodes Java et fournit l’accès aux bibliothèques
de classes nécessaires.
• Les composants du JRE
– La Java Virtual Machine (JVM)
– Les bibliothèques de classes du JRE

18/09/2023 POO 2eme SI 26


La Java Virtual Machine (JVM)

• La Java Virtual Machine (JVM) est un composant essentiel de


l’environnement d’exécution Java. Son rôle principal est d’exécuter les
programmes Java en convertissant le bytecode Java en instructions
exécutables pour la machine sous-jacente.

18/09/2023 POO 2eme SI 27


Les environnements de développement intégré (IDE)

• Parmi les meilleurs IDE, on cite :


– IntelliJ IDEA
– Eclipse
– NetBeans
– VSCode

18/09/2023 POO 2eme SI 28


Les règles de nommage

• Les noms des classes


– 1ère lettre en majuscule
– Mélange de minuscule, majuscule avec la première lettre de chaque
mot en majuscule
– Donner des noms simples et descriptifs
– Eviter les acronymes : hormis ceux commum (XML, URL, HTML, ...)

• Les constants
– Tout en majuscule
– Séparer les mots par underscore '_'

18/09/2023 POO 2eme SI 29

Vous aimerez peut-être aussi