Slides Java 2025 C
Slides Java 2025 C
POO/JAVA
OBJECTIFS DU COURS
Pr. [Link]
PARTIE 1
PRISE DE CONNAISSANCE AVEC JAVA
chapitre 1: La Programmation Orientée
Objet
chapitre2: Qu’est-ce que Java
INTRODUCTION
PLAN PROGRAMME
1. Introduction
2. Principes méthodologiques POO C’est une suite d’instructions
6
S.T
5 ALL
AL
[Link] 1
ENSEM
POO/JAVA
INTRODUCTION
PROGRAMMATION
8
par
programme l’homme
PROGRAMME = Langage Evolué (source)
Ce programme est traduit en
langage machine par l’intermédiaire TRADUCTEUR = COMPILATEUR
S.T S.T
RESULTATS
ALL ALL
AL AL
[Link] 2
ENSEM
POO/JAVA
PROGRAMMATION PROCÉDURALE
STRUCTURÉE PROGRAMMATION PROCÉDURALE
STRUCTURÉE
Objectifs Programmation structurée pose la
concevoir un ensemble de fonctions (et
procédures) permettant de résoudre un question :
problème.
Après avoir déterminé ces fonctions, trouver la
manière appropriée de stocker les données. ➔ Que doit faire le programme ?
Algorithmes + Structures de données =
Programme
17
➔ Sur quoi porte le programme ? 18
[Link] 3
ENSEM
POO/JAVA
22
21
[Link] 4
ENSEM
POO/JAVA
25
26
vus ultérieurement ) lequel une classe, dite classe
L’encapsulation : est le mécanisme dérivée ou sous-classe, reçoit une
par lequel le programmeur cache une partie de sa définition d’une autre
partie de l’information pour classe, dite classe mère.
préserver l’intégrité de l’objet. Il ▪ Ceci illustre les phénomènes de
établit une séparation entre réutilisation et d’extensibilité.
l’interface (publique) et On peut avoir des héritages simples
l’implémentation (invisible). ou multiples.
29 30
[Link] 5
ENSEM
POO/JAVA
HISTORIQUE
Java est un langage de programmation orienté objet créé par deux
employés de la société Sun Microsystems : James Gosling et Patrick
Naughton, et présenté officiellement en mai 1995 à la
Nom : conference SunWorld. (Il a été mis au point à partir de 1990 )
La société Sun a été ensuite rachetée en 2009 par la société Oracle qui
➔en l'honneur à la boisson préférée détient et maintient désormais Java.
Le but de Java à l'époque était de constituer un langage de
des programmeurs américains , c'est- programmation pouvant être intégré dans les appareils
électroménagers, afin de pouvoir les contrôler, de les rendre
à-dire le café, interactifs, et surtout de permettre une communication entre les
appareils.
Aussi ,
A la même époque, Internet faisait son apparition, or Java possèdait
toutes les caractéristiques faisant de lui un langage approprié pour le
31
Web
33 34
➢ Les pointeurs
➢ La surcharge d'opérateurs
➢ L'héritage multiple (remplacé par la notion d'interface)
➢ En revanche :La libération de mémoire est transparente
pour l'utilisateur (grâce à un ramasse-miettes)
JVM
➢ La gestion des exceptions est beaucoup plus rigoureuse
➢ Les chaines et les tableaux sont des objets faisant partie
intégrante du langage
o Java est moins rapide que le langage C++, car il est
interprété par une machine virtuelle. Il perd donc en
rapidité ce qu'il gagne en portabilité... 35 36
[Link] 6
ENSEM
POO/JAVA
37 38
JAVA ET LE RÉSEAU
Une de ses plus grandes forces est Java conçu pour le réseau
son excellente portabilité : une fois Applications distribuées
votre programme créé, il Décharger et exécuter les classes
fonctionnera automatiquement sous
Aucune hérédité multiple
Windows, Mac, Linux, etc.
Donc indépendant de la plate forme
de votre machine, Et par conséquent
ne fait pas d’ appels systèmes
39 40
ENSEM
avec lesquels le code Java peut être compilé, transformé en bytecode destiné à la
machine virtuelle Java.
outils nécessaires pour programmer en
java, exécuter ses programmes java, tester ses
JRE (Java Runtime Environment) contient uniquement l'environnement programmes java et livrer ses programmes java à ses
d'exécution de programmes Java. Le JDK contient lui-même le JRE. Le JRE seul clients.
doit être installé sur les machines où des applications Java doivent être exécutées. Le JDK est en évolution constante et différentes
versions sont mises à la disposition des
JVM (Java Virtual Machine) : désigne l’environnement d'exécution pour
développeurs. Connaître la version du JDK
applications Java. Elle assure l'indépendance du matériel et du système
d'exploitation lors de l'exécution des applications Java. employée est extrêmement important : les classes
disponibles peuvent être sensiblement différentes
Javac : c’est le compilateur java , il utilise un fichier source Java fourni en d'une version à une autre.
paramètre pour créer un ou plusieurs fichiers contenant le bytecode Java 41 42
correspondant.
[Link] 7
ENSEM
POO/JAVA
ENSEM
43
J2SE 1.2 (8-Decembre-1998)
Application = classe
J2SE 1.3 (8-Mai 2000)
[Link] [Link]
[Link] [Link]
[Link] [Link]
[Link] [Link]
45 46
47 48
[Link] 8
ENSEM
POO/JAVA
LA DOCUMENTATION DE JAVA
Indice des
packages
Texte de la
documentation Chapitre 3
ELÉMENTS DE BASE DU LANGAGE
Indice des
classes
50
49
51 52
53 54
[Link] 9
ENSEM
POO/JAVA
55 56
57 58
59
[Link] 10
ENSEM
POO/JAVA
ENSEM
62
J .class
.java
V
M
000001010111
2. Configurer le path;
code source bytecode 3. Vérifier l’installation;
→Puis interprété 4. Télécharger l’IDE;
.class
000001010111 5. Lancer l’IDE;
6. Nouveau projet Java
61
[Link] 11
ENSEM
POO/JAVA
EXERCICE
67
COMMENTAIRE
TYPES DE DONNÉES JAVA
Un programme java se commente comme
en C : Types primitifs de Java :
// Commentaire de fin de ligne Nombres entiers,
Nombres flottants,
/* Commentaire Caractères ,
sur plusieurs Booléens.
lignes
*/ Types références :
Tableaux,
/*==================== *
Classes ,
* Commentaire titre * 69 Interfaces. 70
*=====================*/
[Link] 12
ENSEM
POO/JAVA
Exemple :
Instructions de branchement inconditionnel:
max = a>b ? a : b; Instructions break et continu.
75 76
IF ………………..ELSE……………. SWITCH …
Syntaxe : Syntaxe :
If (condition) Switch (expression)
instructions_1 { case constante_1: [suite_d’instructions_1]
[ else case constante_2: [suite_d’instructions_2]
……………………………………..
instruction_2]
case constante_n: [suite_d’instructions_n]
[default : suite_d’instructions]
}
Exemple :
if (++i < limite) [Link](‘’ok’’);
Exemple :
switch(n)
Imbrications des instructions if: { case 0 : [Link](‘’null ‘’);
If(a<b) if(b<c) [Link](‘’ordonné’’); case 1 : [Link](‘’un ‘’);
default : [Link](‘’grand ‘’);
Else [Link](‘’non ordonné’’); 77 } 78
[Link] 13
ENSEM
POO/JAVA
TABLEAUX TABLEAUX
Déclaration dynamique : Accès aux éléments :
Typetab[] nomtab;
Typetab nomtab[]; Les éléments d’un tableau sont indicés à partir de 0.
TABLEAUX TABLEAUX
Nombre d’éléments : Affectation d’un tableau:
[Link] 14
ENSEM
POO/JAVA
OBJET
[Link] 15
ENSEM
POO/JAVA
➢ L’état d’un objet peut changer dans le temps, La première ligne permet de créer une nouvelle
mais pas spontanément. Une modification dans variable de type Cheval, qui sera appelée poney.
l’état d’un objet doit être la conséquence d’appels
de méthodes. La seconde ligne crée un nouvel objet de type Cheval
et le place dans la variable poney.
3. Son identité : Comment l’objet se distingue-t-il
des autres qui peuvent avoir le même
comportement et le même état ? 91 92
Un objet est
constitué d’attributs qui
caractérisent la structure de celui-ci.
Référence, Désignation, PrixUnitaire
et Quantité sont les attributs de
l'objet de type ARTICLE.
93 94
MÉTHODES MÉTHODES
[Link] 16
ENSEM
POO/JAVA
CLASSES ET OBJETS
CLASSE
Exemple :
Une classe est définie par le mot clé
Class et par un nom qui doit Class Cheval
commencer par une majuscule. {
Int age;
Le bloc qui suit doit contenir des
Int DonnerAge (int age)
variables et des procédures. {
return age+1;
}
}
99 100
101 102
[Link] 17
ENSEM
POO/JAVA
103 104
NOTION DE CLASS
NOTION DE CLASS
105 106
107 108
[Link] 18
ENSEM
POO/JAVA
CLASSE / OBJET
Notion de Classe :
La notion de classe généralise la notion de type. La classe
comporte des champs et des méthodes.
Notion d’objet :
La notion d'objet généralise la notion de variable.
Chapitre 6 Un type classe donné permet d'instancier un ou plusieurs
objets du type, chaque objet comportant son propre jeu de
CLASSE ET OBJET JAVA (SUITE) données.
ACCESSSPECIFIER MODIFIER
Public : Static :
Le méthode appartient à la classe et non pas aux instances.
Une méthode est accessible à partir de n’importe quelle Une méthode statique ne sera pas dupliquée pour chaque
autre classe ou package. instance.
Protected : Abstract :
Une méthode abstraite est déclarée mais non implantée.
Une méthode est accessible à partir de n’importe quelle C’est la responsabilité d’une sous classe de la classe
autre classe ou sous-classe du même package. courante.
Private : Final :
Une méthode final ne peut pas être surchargée par une
Une méthode est accessible à partir de n’importe quelle sous-classe.
autre méthode de la même classe. • Native :
• Package (par défaut) : une méthode native est déclarée mais non implantée. Elle le
sera dans un autre langage.
Une méthode est accessible à n’importe quelle autre • Synchronized :
méthode de la même classe ou d’autres classes Permet de gérer l’accès aux données de la méthodes par
appartenant au même package. 113 plusieurs threads. 114
[Link] 19
ENSEM
POO/JAVA
EXEMPLE
PROPRIÉTÉS
Class Test
{ Les propriétés sont extraites et définies
Public int i =12; comme des champs, mais sont
Public int Testclass() implémentées via les procédures de
{ propriété Get et Set qui contrôlent
i++; davantage la façon dont les valeurs
return i; sont définies ou retournées.
}
La couche d'adressage entre la valeur
}
stockée et les procédures qui utilisent
Test ref =new Test(); cette valeur vous aide à isoler vos
ref.i=15; données et vous permet de valider les
j=[Link](); valeurs avant qu'elles ne soient
[Link] ("j="+ j); 117 attribuées ou extraites. 118
}}
MÉTHODES ÉVÉNEMENTS
[Link] 20
ENSEM
POO/JAVA
Les termes classe et objet sont Si l'on reprend l'analogie avec un plan
de construction, une classe est un plan,
parfois employés indifféremment, et un objet est un bâtiment construit à
mais en réalité, les classes décrivent partir de ce plan. Habituellement, la
la structure des objets, alors que ces modification des données dans un objet
ne modifie les données dans aucun
derniers sont des instances autre objet. (les membres partagés qui
utilisables des classes. Chaque sont des membres de classe déclarés
instance est une copie exacte, mais avec le modificateur Shared, font
toutefois exception à cette règle
distincte de sa classe. Dans la puisqu'ils existent indépendamment
mesure où un objet est une instance 123
des instances spécifiques d'une classe). 124
126
[Link] 21
ENSEM
POO/JAVA
127
128
architectures logicielles fondées sur des par lequel le programmeur cache une
objets que tout système manipule. partie de l’information pour
Elle est essentiellement caractérisée préserver l’intégrité de l’objet. Il
par :
➢ L’encapsulation des données
établit une séparation entre
➢ Les constructions d’objets et leur l’interface (publique) et
destruction l’implémentation (invisible).
➢ L’héritage des attributs et méthodes
➢ Le polymorphisme
130
lequel une classe, dite classe méthode d’après le type de l’objet
dérivée ou sous-classe, reçoit une
implémenté. C-à-d, plusieurs classes
partie de sa définition d’une autre
classe, dite classe mère. peuvent posséder une méthode de
▪ Ceci illustre les phénomènes de
même nom.
réutilisation et d’extensibilité. ▪ Suivant la nature de l’objet auquel
On peut avoir des héritages simples elle doit s’appliquer, on appliquera
ou multiples. telle ou telle méthode.
ENCAPSULATION ENCAPSULATION
L'encapsulation est la capacité à contenir un groupe L'encapsulation permet en outre de contrôler la manière dont les
d'éléments associés et à en contrôler l'accès. Les classes données et les procédures sont utilisées. Vous pouvez recourir à
constituent l'un des moyens les plus courants d'encapsuler des modificateurs d'accès, tels que Privateou Protected, pour
des éléments. Dans l'exemple ci-dessous, la empêcher les procédures externes d'exécuter des méthodes de
classe BankAccount encapsule les méthodes, les champs et classe ou de lire et de modifier les données figurant dans les
propriétés et les champs. Vous devez déclarer les détails internes
les propriétés qui décrivent un compte bancaire. d'une classe en tant que Private pour éviter qu'ils soient utilisés
Sans encapsulation, il aurait été nécessaire de déclarer des en dehors de votre classe ; cette technique est appelée
procédures et des variables distinctes pour stocker et gérer le masquage de données et permet de protéger des informations
les informations relatives au compte bancaire, sans parler client, telles que le solde d'un compte.
de la difficulté de manipuler plus d'un seul compte bancaire L'une des règles fondamentales de l'encapsulation est que des
à la fois. L'encapsulation vous permet d'utiliser les données données de classe doivent être modifiées ou extraites uniquement
et les procédures de la classe BankAccount en tant par des méthodes ou des procéduresProperty. Le fait de masquer
qu'unité. Vous pouvez manipuler plusieurs comptes les informations d'implémentation des classes vous permet
bancaires à la fois sans qu'il y ait confusion, car chaque d'empêcher que celles-ci ne soient utilisées de façon non souhaitée
et de modifier ces éléments ultérieurement sans risquer des
compte est représenté par une instance unique de la classe. problèmes de compatibilité. Par exemple, les versions ultérieures
de la classe BankAccount peuvent modifier le type de données du
champ AccountBalance sans entraver le fonctionnement des
131 applications pour lesquelles ce champ doit absolument présenter 132
un type de données spécifique.
[Link] 22
ENSEM
POO/JAVA
MEMBRES PARTAGÉS
HÉRITAGE
Comme les structures Visual Basic, vous pouvez Par défaut, les données de classe sont
utiliser des classes pour définir des types de données spécifiques à chaque instance de la classe,
qui encapsulent un groupe d'éléments connexes.
Contrairement aux structures, toutefois, les classes mais il peut arriver qu'une donnée unique
Visual Basic peuvent hériter des caractéristiques doive être partagée entre tous les objets
d'autres classes et étendre ces caractéristiques. Les créés à partir d'une classe. Dans de tels cas,
classes qui servent de base à de nouvelles classes sont utilisez le modificateur Shared pour qu'une
appelées classes de base. Les classes dérivées des
classes de base sont appelées classes dérivées. Les variable partage la même valeur dans
classes dérivées héritent de tous les champs, toutes les instances d'une classe (les
propriétés, méthodes et événements de leur classe de membres Shared sont parfois désignés sous
base. Cela signifie que vous pouvez développer et le nom de « membres statiques » dans
déboguer une classe une seule fois et la réutiliser d'autres langages de programmation). Vous
ensuite comme la classe de base d'autres classes.
pouvez appeler des méthodes partagées
directement à l'aide d'un nom de classe sans
133
créer au préalable une instance de la classe. 134
OCCULTATION 2. GÉNÉRALITÉS
➢ Types de base, opérateurs et expressions
2. GÉNÉRALITÉS 2. GÉNÉRALITÉS
➢ Types de base, opérateurs et expressions ➢ Types de base, opérateurs et expressions
➢ Les expressions: opérateurs classiques ➢ Les expressions: Pré et Post incrément (Décrément)
++var incrémente la variable var et retourne la nouvelle valeur.
Opérateurs booléens ▪
! représente le “NON”.
▪ L’expression --var décrémente la variable var et retourne la nouvelle
valeur.
[Link] 23
ENSEM
POO/JAVA
2. GÉNÉRALITÉS 2. GÉNÉRALITÉS
➢ Types de base, opérateurs et expressions ➢ Types de base, opérateurs et expressions
➢ Evaluation des expressions arithmétiques
➢ Evaluation des expressions booléennes
Si une (sous-)expression mélange plusieurs types, c’est le type le plus large
Dans e1 && e2, la sous-expression e2 n’est évaluée que si e1 a été qui est utilisé.
évaluée à ’true’. int i=3,j=2,m ;
139 140
2. GÉNÉRALITÉS
➢ Types de base, opérateurs et expressions Principales fonctions d’un ordinateur
➢ Evaluation des expressions arithmétiques
Pour éviter les erreurs, il est possible de convertir explicitement des
•Saisie de l’information
Mémoires
auxiliaires
[Link] 143 [Link] 144
[Link] 24