Académique Documents
Professionnel Documents
Culture Documents
POO/JAVA
OBJECTIFS DU COURS
Mme S.TALLAL
PARTIE 1
PRISE DE CONNAISSANCE AVEC JAVA
chapitre1: Qu’est-ce que Java?
chapitre 2: Eléments de base du langage
Chapitre 1
chapitre 3: La Programmation Orientée
QU’EST-CE QUE JAVA?
Objet
chapitre 4:Installer Java, compiler et
exécuter un programme
chapitre 5: Objets, classes et messages 4
5 6
S.TALLAL 1
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
7
Web
9 10
➢ 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é... 11 12
S.TALLAL 2
ENSEM
POO/JAVA
13 14
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
15 16
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 17 18
correspondant.
S.TALLAL 3
ENSEM
POO/JAVA
ENSEM
19
JDK 1.1 (19-Fevrier-1997)
Java SE 7 (28-Juellet2011)
Java SE 9 (16-Janvier-2018) 19 20
java.io java.text
java.lang java.util
java.math java.accessibility
java.net java.swing
21 22
23 24
S.TALLAL 4
ENSEM
POO/JAVA
LA DOCUMENTATION DE JAVA
Indice des
packages
Texte de la
documentation Chapitre 2
ELÉMENTS DE BASE DU LANGAGE
Indice des
classes
26
25
27 28
29 30
S.TALLAL 5
ENSEM
POO/JAVA
31 32
33 34
35
S.TALLAL 6
ENSEM
POO/JAVA
LA PROBLÉMATIQUE DE LA PROGRAMMATION :
PLAN PROGRAMMATION ?
LA PROBLÉMATIQUE DE LA PROGRAMMATION :
PROGRAMMATION ?
PROGRAMMATION ?
La robustesse : aptitude à bien La portabilité : facilité avec
réagir lorsque l’on s’écarte des laquelle on peut exploiter un même
conditions normales d’utilisation. logiciel dans différents
L’extensibilité : facilité avec implémentations.
laquelle un programme pourra être L’efficience : temps d’exécution,
adapté pour satisfaire à une taille mémoire, etc.
évolution des spécifications.
La réutilisabilité : possibilité de
réutiliser certains parties du logiciel. 39 40
INTRODUCTION INTRODUCTION
Questions:
Comment certaines sociétés de l’industrie
informatique sont-elles devenues si importantes Réponse
et aussi rapidement ?
Elles fabriquent en général de bonnes machines,
Ces sociétés se sont orientée Objet
vendues à prix bas, dans une période où il existe
une grande demande. = elles ont sous-traité une bonne partie de
leur travail
Comment ont-elles pu construire tant de
modèles aussi rapidement, et comment ont-elles
répondu aussi vite au changement que subit le ➢ Production rapide et réduction des coûts.
marché de la micro-informatique ? ➢ Ces constructeurs achetaient des «fonctionnalités
41 pré conditionnées». 42
S.TALLAL 7
ENSEM
POO/JAVA
PROGRAMMATION PROCÉDURALE
PROGRAMMATION ORIENTÉ OBJET STRUCTURÉE
45 46
AVANTAGES DE LA P.O.O
CONCLUSION
La programmation orientée objet est une 1. La découpe du problème en classes et donc en objets
nouvelle méthode de programmation qui permet la réutilisation du code, chose plus difficile
avec un programme classique.
tend à se rapprocher de notre manière
2. Une classe peut hériter d'une autre classe ce qui
naturelle d'appréhender le monde permet d'utiliser les fonctions et les données de la
Les modèles à objets ont étés crées pour classe parent et de rajouter les données et fonctions
modéliser le monde réel. de la nouvelle classe
Les fonctions de la classe n'ont pas un grand nombre
Dans un modèle à objet, toute entité du
3.
d'arguments puisque les données sont lisibles par les
monde réel est un objet, et réciproquement, fonctions de la classe.
tout objet représente une entité du monde 4. Les données de la classes sont protégées de
réel. l'extérieur : sécurité.
Langages orientés objets posent la question 5. Grâce à la P.O.O, on gagne en rapidité de
: fabrication du code, puisqu'il est possible d'utiliser
un grand nombre de classe déjà existante.
➔ Sur quoi porte le programme ? 47 48
S.TALLAL 8
ENSEM
POO/JAVA
50
C++
Eiffel
Java
C# (Microsoft)
51 Python (script) 52
54
vus ultérieurement )
architectures logicielles fondées sur des
objets que tout système manipule. L’encapsulation : est le mécanisme
Elle est essentiellement caractérisée par lequel le programmeur cache une
par : partie de l’information pour
➢ L’encapsulation des données préserver l’intégrité de l’objet. Il
➢ Les constructions d’objets et leur établit une séparation entre
destruction l’interface (publique) et
➢ L’héritage des attributs et méthodes l’implémentation (invisible).
➢ Le polymorphisme
S.TALLAL 9
ENSEM
POO/JAVA
55
56
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.
PRÉSENTATION JAVA
Un programme écrit en java est :
→ d’abord compilé :
Chapitre 4
Installer JAVA, compiler et exécuter un .java
J .class
V 000001010111
programme M
→Puis interprété
.class
000001010111
57
58
ENSEM
A.IDALENE
S.TALLAL 10
ENSEM
POO/JAVA
COMMENTAIRE
Un programme java se commente comme
en C :
// Commentaire de fin de ligne
SYNTAXE DE BASE
/* Commentaire
sur plusieurs
lignes
*/
65
/*==================== *
* Commentaire titre * 66
*=====================*/
S.TALLAL 11
ENSEM
POO/JAVA
S.TALLAL 12
ENSEM
POO/JAVA
Exemple :
Des boucles (répétitions) :
Instructions do…while, while et for. if (++i < limite) System.out.println(‘’ok’’);
FOR.. TABLEAUX
Syntaxe :
Déclaration dynamique :
For([initialisation];[condition];[incrémentation]) Typetab[] nomtab;
{ Typetab nomtab[];
bloc_d’instructions
}
Exemple : Déclaration :
int i;
for(i=1;i<=5;i++) nomtab[] =new typetab[L]; //L : nombre d’éléments
{ typetab nomtab[] = new typetab[L];
System.out.println(‘’bonjour ‘’); typetab nomtab[] = {Liste des éléments};
System.out.println(i+‘’ fois‘’);
}
Exemple :
Tabentier[] = new int[10] ;
77 Byte tabyte[] = new byte[10]; 78
Int tabentier[] = {12,45,52,63,10};
S.TALLAL 13
ENSEM
POO/JAVA
TABLEAUX TABLEAUX
Nombre d’éléments :
Accès aux éléments :
Les éléments d’un tableau sont indicés à partir de 0. La propriété length représente le nombre d’éléments
du tableau.
L’indice du dernier élément est nombre d’éléments-1.
Le nombre d’éléments d’un tableau tab est :
On fait accès à un élément d’indice i par :
tab.length;
Nomtab[i]
Exemple :
Tab[1][3] =45;
Tab[2][2] = Tab[1][3] + 56;
79 80
LA CLASSE SCANNER
LES CONVERSIONS DE TYPES
S.TALLAL 14
ENSEM
POO/JAVA
EXERCICES
EX1 :
Écrire un programme qui calcule la moyenne de notes
fournies au clavier
EX2:
Généraliser l’exercice précédent pour 3 étudiants avec un
nombre de notes variable
EX3 :
Écrivez un programme permettant de ranger les noms des Chapitre 5
étudiants par ordre alphabétique croissant. OBJETS, CLASSES ET MÉTHODES
EX4 :
CARACTÉRISTIQUES DE L’OBJET
OBJET
Un objet est caractérisé par :
1. Son comportement : que pouvez-vous faire avec
Un objet est une structure contenant cet objet, ou quelles méthodes pouvez-vous lui
des données et des méthodes qui appliquer ?
Son état : Comment l’objet réagit-il lorsque vous
manipulent les données. 2.
appliquez ces méthodes ? (son aspect actuel)
Un objet est caractérisé par un
identifiant unique représentant le ➢ L’état d’un objet peut changer dans le temps,
mais pas spontanément. Une modification dans
monde réel. l’état d’un objet doit être la conséquence d’appels
de méthodes.
La plupart des opérations effectuées
implique des objets. 3. Son identité : Comment l’objet se distingue-t-il
des autres qui peuvent avoir le même
87
comportement et le même état ? 88
SYNTAXE
OBJET: EXEMPLE
Pour créer un objet, il faut utiliser le mot clef new.
Exemple 1 :
Cheval poney;
poney = new Cheval();
89 90
S.TALLAL 15
ENSEM
POO/JAVA
EXEMPLE MÉTHODES
CLASSES ET OBJETS
MÉTHODES
Exemple : Les termes « classe » et « objet » sont
Exemple : Nous pouvons définir comme
méthodes de l'objet ARTICLE
tellement utilisés dans la
PrixTtc : Méthode permettant de calculer programmation orientée objet qu'ils
le prix TTC d'un article peuvent être facilement confondus.
SortieArticle : Méthode permettant de
diminuer la quantité en stock En règle générale, une classe est une
EntreeArticle : Méthode permettant représentation abstraite de quelque
d'augmenter la quantité en stock chose, tandis qu'un objet est un
On ne peut exécuter une méthode sans
préciser l'objet sur lequel elle exemple utilisable de ce que
s'applique. 93 représente la classe. 94
SYNTAXE
CLASSE
Elle est le composant de base. Une classe est définie par le mot clé
L'ensemble des propriétés d'un objet Class et par un nom qui doit
(attributs et méthodes) constitue un commencer par une majuscule.
ensemble appelé classe. Le bloc qui suit doit contenir des
Une classe décrit la structure
variables et des procédures.
interne d'un objet : les données qu'il
regroupe, les actions qu'il est capable
d'assurer sur ses données.
Une classe représente le modèle de
l’objet effectif. 95 96
S.TALLAL 16
ENSEM
POO/JAVA
Exemple :
Class Cheval
{
Int age;
Int DonnerAge (int age)
{
return age+1;
}
}
97 98
99 100
101 102
S.TALLAL 17
ENSEM
POO/JAVA
103 104
NOTION DE CLASS
Chapitre 6
CLASSE ET OBJET JAVA (SUITE)
106
105
S.TALLAL 18
ENSEM
POO/JAVA
S.TALLAL 19
ENSEM
POO/JAVA
MÉTHODES ÉVÉNEMENTS
S.TALLAL 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 121
des instances spécifiques d'une classe). 122
124
126
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
S.TALLAL 21
ENSEM
POO/JAVA
127
128
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
129 applications pour lesquelles ce champ doit absolument présenter 130
un type de données spécifique.
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
131
créer au préalable une instance de la classe. 132
S.TALLAL 22
ENSEM
POO/JAVA
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.
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 ;
137 138
S.TALLAL 23
ENSEM
POO/JAVA
2. GÉNÉRALITÉS
➢ Types de base, opérateurs et expressions
➢ Evaluation des expressions arithmétiques
Pour éviter les erreurs, il est possible de convertir explicitement des
données d’un certain type en un autre.
139
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 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
détient et maintient désormais Java.
• Le but de Java à l'époque était de constituer un langage de programmation
pouvant être intégré dans les appareils électroménagers, afin de pouvoir les
contrôler, de les rendre interactifs, et surtout de permettre une
communication entre les appareils.
• Ce programme de développement se situait dans un projet appelé Green,
visant à créer une télécommande universelle (Star 7, présentée en 1992)
comprenant un système d'exploitation capable de gérer l'ensemble des
appareils électroménagers de la maison.
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 Web
S.TALLAL 24