0% ont trouvé ce document utile (0 vote)
133 vues24 pages

Slides Java 2025 C

Le cours sur la Programmation Orientée Objet (POO) avec Java vise à rappeler les principes de la POO, maîtriser les outils de base pour le développement en Java et fournir des bases théoriques pour approfondir les connaissances. Il couvre des sujets tels que l'installation de Java, la compilation et l'exécution de programmes, ainsi que les concepts fondamentaux de la POO comme l'encapsulation, l'héritage et le polymorphisme. Java est présenté comme un langage orienté objet, conçu pour être portable et adapté à Internet, avec une syntaxe similaire à celle de C++ mais simplifiée.

Transféré par

Noussaiba Haddadi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
133 vues24 pages

Slides Java 2025 C

Le cours sur la Programmation Orientée Objet (POO) avec Java vise à rappeler les principes de la POO, maîtriser les outils de base pour le développement en Java et fournir des bases théoriques pour approfondir les connaissances. Il couvre des sujets tels que l'installation de Java, la compilation et l'exécution de programmes, ainsi que les concepts fondamentaux de la POO comme l'encapsulation, l'héritage et le polymorphisme. Java est présenté comme un langage orienté objet, conçu pour être portable et adapté à Internet, avec une syntaxe similaire à celle de C++ mais simplifiée.

Transféré par

Noussaiba Haddadi
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ENSEM

POO/JAVA

OBJECTIFS DU COURS

➢ Rappeler les principes de la POO


LANGAGE DE PROGRAMMATION ➢ Maitriser les instruments de base

JAVA pour le développement avec JAVA


➢ Connaitre les bases théoriques pour
approfondir ses connaissances
Année: 2024/25

Pr. [Link]

PARTIE 1
PRISE DE CONNAISSANCE AVEC JAVA
 chapitre 1: La Programmation Orientée
Objet
 chapitre2: Qu’est-ce que Java

 chapitre 3: Eléments de base du langage CHAPITRE 1


 chapitre 4:Installer Java, compiler et PROGRAMMATION ORIENTÉE
exécuter un programme OBJET
 chapitre 5: Objets, classes
4

 chapitre 6: Approfondissement +TD


3

INTRODUCTION
PLAN PROGRAMME

1. Introduction
2. Principes méthodologiques POO C’est une suite d’instructions
6

3. Complexité systèmes software exprimées dans un langage «


compréhensible » par l’ordinateur et
dont l’exécution conduit à la
résolution d’un problème donné.

S.T
5 ALL
AL

[Link] 1
ENSEM
POO/JAVA

INTRODUCTION
PROGRAMMATION

PROGRAMME Résumé de la démarche :

 Ainsi, l’algorithme est transformé ALGORITHME

par le langage évolué, en un Conception ORGANIGRAMME

8
par
programme l’homme
PROGRAMME = Langage Evolué (source)
 Ce programme est traduit en
langage machine par l’intermédiaire TRADUCTEUR = COMPILATEUR

d’un traducteur en langage binaire Conception PROGRAMME = Langage machine


par la (objet)
machine EXECUTION

S.T S.T
RESULTATS
ALL ALL
AL AL

LA PROBLÉMATIQUE DE LA PROGRAMMATION : LA PROBLÉMATIQUE DE LA PROGRAMMATION :


CARACTERISTIQUES

 Enchaînement des instructions  La robustesse : aptitude à bien


élémentaires pour parvenir à réagir lorsque l’on s’écarte des
résoudre un problème particulier. conditions normales d’utilisation.
 Production des logiciels avec des  L’extensibilité : facilité avec
exigences de qualité laquelle un programme pourra être
 L’exactitude : aptitude à fournir les adapté pour satisfaire à une
résultats voulus, dans des conditions évolution des spécifications.
normales d’utilisation.  La réutilisabilité : possibilité de
9 réutiliser certains parties du logiciel. 10

LA PROBLÉMATIQUE DE LA PROGRAMMATION INTRODUCTION


Questions:
 La portabilité : facilité avec  Comment certaines sociétés de l’industrie
informatique sont-elles devenues si importantes
laquelle on peut exploiter un même
et aussi rapidement ?
logiciel dans différents
 Elles fabriquent en général de bonnes machines,
implémentations. vendues à prix bas, dans une période où il existe
 L’efficience : temps d’exécution, une grande demande.
taille mémoire, etc.  Comment ont-elles pu construire tant de
modèles aussi rapidement, et comment ont-elles
répondu aussi vite au changement que subit le
marché de la micro-informatique ?
11 12

[Link] 2
ENSEM
POO/JAVA

INTRODUCTION PROGRAMMATION ORIENTÉ OBJET

 La POO s’appuie sur la même idée.


Réponse
 Un programme est constitué d’objets qui
interagissent (communiquent) afin de
 Ces sociétés se sont orientée Objet réaliser une ou plusieurs tâches.
= elles ont sous-traité une bonne partie de
leur travail  Chaque objet possède certaines propriétés
et peut accomplir certaines opérations.

➢ Production rapide et réduction des coûts.  C’est le temps et les fonctionnalités


➢ Ces constructeurs achetaient des «fonctionnalités disponibles qui décideront du fait que vous
pré conditionnées». 13 construisez un objet ou que vous utilisez un 14
autre disponible.

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

 D’abord, vous décidez de la manière dont vous


allez manipuler les données; ensuite
seulement, vous choisissez le genre de
structures que vous imposeriez aux données 15 16
afin de faciliter cette manipulation.

PROGRAMMATION ORIENTÉ OBJET


CONCLUSION
 La POO inverse cet ordre et place les données au premier  La programmation orientée objet est une
plan avant de déterminer l’algorithme qui sera employé
pour opérer sur ces données. nouvelle méthode de programmation qui
tend à se rapprocher de notre manière
naturelle d'appréhender le monde
 En POO, chaque objet accomplit quelques tâches associées.  Les modèles à objets ont étés crées pour
modéliser le monde réel.
 Dans un modèle à objet, toute entité du
 Si un objet dépend d’une tâche qui n’est pas de sa monde réel est un objet, et réciproquement,
responsabilité, il doit avoir accès à un autre objet capable
d’accomplir cette tâche. tout objet représente une entité du monde
réel.
 Langages orientés objets posent la question:

17
➔ Sur quoi porte le programme ? 18

[Link] 3
ENSEM
POO/JAVA

AVANTAGES DE LA P.O.O PROGRAMMATION ORIENTÉ OBJET


EXEMPLES
1. La découpe du problème en classes et donc en objets
permet la réutilisation du code, chose plus difficile
avec un programme classique.
 Classe Bateau :
2. Une classe peut hériter d'une autre classe ce qui
permet d'utiliser les fonctions et les données de la champs : Capitaine, type, couleur, position, vitesse,…
classe parent et de rajouter les données et fonctions Fonctions ou méthodes : marche, stop, plus_vite,
de la nouvelle classe moins_vite…
3. Les fonctions de la classe n'ont pas un grand nombre
d'arguments puisque les données sont lisibles par les
fonctions de la classe.
4. Les données de la classes sont protégées de  Classe Fenêtre :
l'extérieur : sécurité.
champs :
5. Grâce à la P.O.O, on gagne en rapidité de positionX,positionY,TailleX,TailleY,Couleur,Nom,…
fabrication du code, puisqu'il est possible d'utiliser
un grand nombre de classe déjà existante. Fonctions ou méthodes : Créer, Réduire, Fermer,
19 Déplacer, … 20

I. Introduction à la Programmation Orientée


Objet
➢ POO % PP POO & PP
Un programme informatique comporte toujours des traitements Programmation
POO
(des fonctions), mais aussi et surtout des données. Procédurale
- la programmation structurée (PP) s’intéresse aux traitements
puis aux données,
- la conception objet (POO)s’intéresse d’abords aux données,
auxquelles elle associe ensuite les traitements.
- Les données sont ce qu’il y a de plus stable dans la vie d’un
programme, il est donc normal d’architecturer le programme autour
de ces données
d’où Le concept de l’orienté objet repose sur les notions :
« d’objet » et « classe »

22

21

LES LANGAGES OBJETS PRINCIPES DE L’APPROCHE ORIENTÉ


OBJET
 Simula
 La conception par objets est une
Smalltalk
méthode qui conduit à des

24

 C++ architectures logicielles fondées sur des


objets que tout système manipule.
 Eiffel  Elle est essentiellement caractérisée
par :
 Java ➢ L’encapsulation des données
➢ Les constructions d’objets et leur
 C# (Microsoft)
destruction
 Python (script) ➢ L’héritage des attributs et méthodes
23
➢ Le polymorphisme

[Link] 4
ENSEM
POO/JAVA

PRINCIPES DE L’APPROCHE ORIENTÉ PRINCIPES DE L’APPROCHE ORIENTÉ


OBJET OBJET
➢ une définition succincte de chaque
caractéristique:( les détails seront ➢ L’héritage : est le procédé par

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.

PRINCIPES DE L’APPROCHE ORIENTÉ


OBJET
➢ Le poly morphisme :
▪ cela consiste à appeler la bonne
27

méthode d’après le type de l’objet Chapitre 2


QU’EST-CE QUE JAVA?
implémenté. C-à-d, plusieurs classes
peuvent posséder une méthode de
même nom.
▪ Suivant la nature de l’objet auquel 28

elle doit s’appliquer, on appliquera


telle ou telle méthode.

1. QU’EST CE QUE JAVA? 1.1 QU’EST CE QUE JAVA?


➢ Java par rapport à d’autres langages ➢ NOM : Appellation Java
➢ Qu’est ce que la machine virtuelle ➢Un langage de programmation
Java? ➢Orienté objets
➢ La plate forme Java
➢Réalisé par Sun Microsystems Inc.
➢ La documentation de Java
➢Conçu pour Internet

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.

 Une partie de la production provient


 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
de l'île Java 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
31
Web

JAVA PAR RAPPORT À D’AUTRES  Java est un langage de programmation objet,


LANGAGES dont la syntaxe ressemble beaucoup au langage
C++.
➢ Java comme « fils » de C++  Etant donné que le langage C++ comportait trop
de difficultés, James Gosling, un des concepteurs
➢Essai de simplification du projet a décidé de créer un langage orienté
➢Syntaxe très semblable
objet reprenant les caractéristiques principales
du C++ et éliminant ses points difficiles, et en le
➢Elimine les défauts de C rendant moins encombrant et plus portable (il
peut être intégré dans n'importe quel appareil...).
➢Aucune hérédité multiple

33 34

1.2 QU’EST CE QUE LA MACHINE


 Certaines caractéristiques critiques du langage C++ (celles
qui sont à l'origine des principales erreurs) n'ont donc pas VIRTUELLE JAVA?
été reprises:
Java et sa
Cela comprend :
« machine virtuelle »

➢ 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

 Une particularité de Java est que les logiciels


écrits dans ce langage sont compilés vers une PORTABILITÉ DE JAVA
représentation binaire intermédiaire qui peut
être exécutée dans une machine virtuelle Java ➢ Classes Java portables
(JVM) en faisant abstraction du système
d'exploitation. ➢ Indépendances du système d’exploitation
➢ Les « appels systèmes » sont inutiles!
 L'un des principes phares de Java réside dans sa
machine virtuelle : celle-ci assure à tous les
développeurs Java qu'un programme sera
utilisable avec tous les systèmes d'exploitation
sur lesquels est installée une machine virtuelle
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

JAVA : JDK, JRE ET JVM


 Le JDK (Java Development Kit en anglais, Kit de
JDK (Le Java Development Kit) désigne un ensemble de bibliothèques de base Développement Java en Français) représente l’outillage
du langage de programmation Java, notamment de Classes, ainsi que les outils
indispensable au développeur Java. Ce kit contient les
41

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

VERSIONS : 1.3 LA PLATE FORME JAVA


 Comment est fait Java?
 JDK 1.0 (23-Janvier1996)
 JDK 1.1 (19-Fevrier-1997)  Dans Java tout est classes et objets

43
 J2SE 1.2 (8-Decembre-1998)
 Application = classe
 J2SE 1.3 (8-Mai 2000)

 J2SE 1.4 (6-Fevrier-2002)  Structures données = classes


 J2SE 5.0 (30-Septembre-2004)

 Java SE 6 (11- Decembre-2006)


 Java SE 7 (28-Juellet2011)

 Java SE 8 (18-Mars 2014)


 Java SE 9 (16-Janvier-2018)
 ….
 Java SE 20 ( 18 juillet 2023 )
43 44

COMMENT JAVA EST FAIT LES PACKAGES


➢ Données = Objets  [Link]  [Link]
 [Link]  [Link]
➢ Fenêtres, menus, boutons = objets
 [Link]  [Link]

 [Link]  [Link]

 [Link]  [Link]

 [Link]  [Link]

 [Link]  [Link]

45 46

1.4 LA DOCUMENTATION DE JAVA LA DOCUMENTATION DE JAVA

 Javadoc est standard pour la


documentation de java
 Documentation en HTML
 [Link]
api/

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

LA MACHINE VIRTUELLE JAVA 1. LA MACHINE VIRTUELLE JAVA ( JVM)

1. La machine virtuelle Java ➢ Une machine à « pile » (Stack)


2. Le Bytecode ➢ Supporte les objets
3. Le format des fichiers .class ➢ Exécute les fichiers .class

51 52

LA MACHINE VIRTUELLE JAVA ( JVM) TYPES PRIMITIFS


 Opère sur deux genres de types:  byte 8 bit,  Char 16 bit,
 short 16 bit,  Float 32,
 Primitifs
 int 32 bit,  double 64,
 Référence
 long 64 bit,  Boolean true |false
 Supporte les threads
TYPES RÉFÉRENCES
oClasse
oVecteur
oInterface
oRéférence nulle «null»

53 54

[Link] 9
ENSEM
POO/JAVA

2. LE BYTECODE INSTRUCTIONS ET TYPES

 Le langage machine de la JVM  Le type d’instruction est presque


 Intermédiaire entre source Java et toujours représenté explicitement
plate-forme physique dans le code d’opération de
 Ensemble d’instructions
l’instruction :
 Empaqueté en fichier. class

55 56

INSTRUCTIONS ET TYPES 3. FORMAT DES FICHIERS .CLASS


Nombre
magique
i int l long s short
b boolean c char f float
d double a
référence

57 58

POUR EN SAVOIR PLUS


 Tim lindhom, Frank Yellin
The Java Virtual Machine Chapitre 4
Installer JAVA, compiler et exécuter un
Spécifica.
programme
Eddition-Wesley, 1999
 http
://[Link]/docs/books/vmspec/
 …. 60

59

[Link] 10
ENSEM
POO/JAVA

ENSEM

PRÉSENTATION JAVA OUTILS DE DÉVELOPPEMENT


 Un programme écrit en java est :
→ d’abord compilé : 1. Télécharger et installer JDK (6, 7, 8
ou le 9)

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

Interpréteur PC Interpréteur linux Interpréteur Mac


[Link]

TDS PREMIER PROGRAMME JAVA

➢TD1 1. Ecrire et enregistrer le programme


ci-après
Récupérer, installer et utiliser le JDK
2. Compiler le programme de deux
de sun
façons différentes
Introduction à un simple IDE pour Java
3. Exécuter avec le nom de la classe
➢TD2 4. Exploiter les résultats
Ecrire, compiler et exécuter le
premier programme en JAVA 63 64

STRUCTURE D’UN PROGRAMME JAVA STRUCTURE D’UN PROGRAMME JAVA

public class PermierProg public class Saisie{


{ public static void main(String
public static void main(String args[ ]) args[])
[Link]("Mon premier programme java’’); {
} String prenom = args[0];
}
[Link]("Bonjour " +
prenom);
}
65 66
}

[Link] 11
ENSEM
POO/JAVA

EXERCICE

1. Ecrire un programme qui lit deux SYNTAXE DE BASE


entiers passés en paramètres sur la
ligne de commandes et affiche leur
somme, leur différence, leur produit
et leur quotient 68

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
*=====================*/

TYPES PRIMITIFS JAVA CONSTANTE JAVA


 L’utilisateur peut définir des
 Types entiers servent à représenter des constantes dont la valeur est fixée
nombres entiers relatifs : bytes, short, int, une fois pour toute.
long.
 Types flottants servent à représenter une  Syntaxe
partie des nombres réels : float, double.
 Types caractères permettent de manipuler
les caractères : char. final type nom_var;
 Caractères spéciaux :
• \b retour arrière Exemple : final int n=20;
• \t tabulation
• \n saut de ligne
• \f, \r, \",\ ‘, \\. 71 72
• Types booléens : true / false.

[Link] 12
ENSEM
POO/JAVA

OPÉRATEURS ET EXPRESSIONS OPÉRATEURS ET EXPRESSIONS

 Opérateurs arithmétiques :  Opérateur cast :


+ (addition), - (soustraction), * (multiplié), / (divisé), Il est possible de convertir une variable en un type
%(modulo). primitif grâce au cast (comme en C).
 Opérateurs relationnels : Exemple:
== (égalité), < (inférieur strict), <= (inférieur large), >, …….
>=,
!= (différence) float x; double y;
x =(double) y;
 Opérateurs logiques: …….
! (négation), & (et), &&(et), || (ou), ^ (ou
exclusif). • Opérateurs d’affectation / affectation élargie
= (affectation), *= (x*=y équivalent à x=x*y), /=,
• Opérateurs d’incrémentation et de +=, -=, %=
décrémentation
++ (incrément), --(décrément). 73 74
Ces deux derniers peuvent être pré ou post fixés

OPÉRATEURS ET EXPRESSIONS INSTRUCTIONS DE CONTRÔLE JAVA


 Opérateur conditionnel : Java dispose d’instructions structurées permettant de réaliser :
Opérateur qui équivaut à une structure conditionnelle complexe
if then else à la différence qu’il renvoie un résultat de valeur
pouvant ne pas être un booléen : l’opérateur ternaire.  Des choix :
Instructions if…else et switch.
Syntaxe :

Condition ? expression1: expression2 ;  Des boucles (répétitions) :


Instructions do…while, while et for.

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

DO ………..WHILE / WHILE FOR..


 Syntaxe :
 Syntaxe do…..while: For([initialisation];[condition];[incrémentation])
Do {
{ bloc_d’instructions
bloc_instructions }
}
While (condition);  Exemple :
int i;
for(i=1;i<=5;i++)
 Syntaxe while.. : {
[Link](‘’bonjour ‘’);
While (condition) [Link](i+‘’ fois‘’);
{
bloc_instructions }
} 79 80

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.

L’indice du dernier élément est nombre d’éléments-1.


 Déclaration :
nomtab[] =new typetab[L]; //L : nombre d’éléments On fait accès à un élément d’indice i par :
typetab nomtab[] = new typetab[L];
typetab nomtab[] = {Liste des éléments}; Nomtab[i]
 Exemple :
 Exemple : Tab[1][3] =45;
Tabentier[] = new int[10] ; Tab[2][2] = Tab[1][3] + 56;
Byte tabyte[] = new byte[10]; 81 82
Int tabentier[] = {12,45,52,63,10};

TABLEAUX TABLEAUX
 Nombre d’éléments :  Affectation d’un tableau:

Un tableau peut être affecté :


La propriété length représente le nombre d’éléments
du tableau.
- Elément par élément : t[0]=10, t[1]=‘java’….
Le nombre d’éléments d’un tableau tab est :
Ou
[Link];
- En totalité lors de sa déclaration :

Char carac = {‘L’,‘M’, ‘M’, ‘J’, ‘V’,


‘S’, ‘D’};
83 84

[Link] 14
ENSEM
POO/JAVA

LES CONVERSIONS DE TYPES


LES CONVERSIONS DE TYPES
 La bibliothèque de classes API fournit une série  Conversion d’une chaine de caractère
de classes qui contiennent des méthodes de
manipulation et de conversion de types en :
élémentaires :  int : méthode parseInt() de la classe Integer
 String : pour les chaines de caractères  long : méthode parseLong() de la classe Long
Unicode  float : méthode parseFloat() de la classe Float
 Integer : pour les valeurs entières (int)  double: méthode parseDouble() de la classe
 Long : pour les entiers long signés (long) Double
 Float : pour les nombres à virgules flottante  Exemple :
(float) String ch="10";
 Double : pour les nombres à virgule flottante 85
int x=[Link](ch) 86
en double précision (double) Syntaxe :Type val=[Link]()

LA CLASSE SCANNER EXERCICES


 EX1 :
Écrire un programme qui calcule la moyenne de notes
 Déclaration de l’objet : fournies au clavier
Scanner s = new Scanner([Link]);  EX2:
Généraliser l’exercice précédent pour 3 étudiants avec un
 Quelques méthodes : nombre de notes variable
 next() : permet de lire une chaine de  EX3 :
caractères String Écrivez un programme permettant de ranger les noms des
étudiants par ordre alphabétique croissant.
 nextInt() : permet de lire un int
 EX4 :
 nextLong() : permet de lire un long
Écrire un algorithme permettant de rechercher puis corriger
 nextDouble() : permet de lire un double le nom d’un étudiant figurant dans un tableau de noms en
 nextFloat() : permet de lire un float utilisant la recherche par dichotomie.
87 88

OBJET

 Un objet est une structure contenant


des données et des méthodes qui
manipulent les données.
 Un objet est caractérisé par un
Chapitre 5 identifiant unique représentant le
OBJETS, CLASSES ET MÉTHODES
monde réel.
89
 La plupart des opérations effectuées
implique des objets.
90

[Link] 15
ENSEM
POO/JAVA

CARACTÉRISTIQUES DE L’OBJET SYNTAXE


 Un objet est caractérisé par :
1. Son comportement : que pouvez-vous faire avec  Pour créer un objet, il faut utiliser le mot clef new.
cet objet, ou quelles méthodes pouvez-vous lui  Exemple 1 :
appliquer ?
2. Son état : Comment l’objet réagit-il lorsque vous Cheval poney;
appliquez ces méthodes ? (son aspect actuel) poney = new Cheval();

➢ 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

OBJET: EXEMPLE EXEMPLE

 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

 L'objet est manipulé par des Exemple :


 Exemple : Nous pouvons définir comme
procédures appelées méthodes qui méthodes de l'objet ARTICLE
sont caractérisées par une entête  PrixTtc : Méthode permettant de calculer
définissant leur nom, les paramètres le prix TTC d'un article
d'appel et de retour pour chacune  SortieArticle : Méthode permettant de
diminuer la quantité en stock
d'elle.  EntreeArticle : Méthode permettant
d'augmenter la quantité en stock
 Les méthodes représentent des
 On ne peut exécuter une méthode sans
actions que peut effectuer un objet. préciser l'objet sur lequel elle
95 s'applique. 96

[Link] 16
ENSEM
POO/JAVA

CLASSES ET OBJETS
CLASSE

 Les termes « classe » et « objet » sont  Elle est le composant de base.


tellement utilisés dans la  L'ensemble des propriétés d'un objet
programmation orientée objet qu'ils (attributs et méthodes) constitue un
peuvent être facilement confondus. ensemble appelé classe.
 Une classe décrit la structure
 En règle générale, une classe est une
interne d'un objet : les données qu'il
représentation abstraite de quelque
regroupe, les actions qu'il est capable
chose, tandis qu'un objet est un d'assurer sur ses données.
exemple utilisable de ce que  Une classe représente le modèle de
représente la classe. 97
l’objet effectif. 98

SYNTAXE NOTION DE CLASSE :EXEMPLE

 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

NOTION DE CLASS NOTION DE CLASS

101 102

[Link] 17
ENSEM
POO/JAVA

NOTION DE CLASS NOTION DE CLASS

103 104

NOTION DE CLASS
NOTION DE CLASS

105 106

NOTION DE CLASS NOTION DE CLASS

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.

109  Définition d'une classe


 Définition des champs
 Définition des méthodes 110

DÉFINITION D’UNE CLASSE DÉFINITION D’UNE CLASSE


 Définition des champs :  Définition des méthodes:
Une méthode a deux parties : déclaration et corps.
[accessSpecifier][static][final][volatile] type
variableName
[accessSpecifier][modifier][return_value]methodNa
 accessSpecifier : pour restreindre l’accès à la variable: me([pType param1,pType param2,…]) [throws
Public, Private, Protected, Package. ExceptionList]
 Static : la variable appartiendra à la classe et
non pas à une instance de la classe.  accessSpecifier : pour restreindre l’accès à la méthode:
 Final : pour définir une constante. Public, Private, Protected, Package.
 Volatile : la variable peut être modifiée de façon  modifier : permet de spécifier des propriétés à la
asynchrone par plusieurs threads. méthode : visiblité, interaction avec ses sous-classes.
 Return_value : spécifie le type de données retourné par
RQ: Lorsqu’aucun access-modifier n’est présent, la variable la méthode avant la fin de son exécution.
est accessible à toutes les classes du même package mais pas  Dans le cas contraire, void est utilisé comme type de
retour.
aux classes héritées. 111 112

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

DÉCLARATION INSTANCIATION D’UNE


TYPES DE MÉTHODE CLASSE
 Déclaration :
Les méthodes de classe sont de 3 types
className objectName
 les constructeurs.
 les méthodes d'accès (accessor) de la forme getXXX  Instanciation :
qui fournissent des informations relatives à l'état d'un objectName = new Constructeur()
objet, c'est-à-dire des valeurs de certains champs sans
les modifier.  Déclaration & Instanciation :
className objectName = new Constructeur()
 les méthodes d'altération (mutator) de la forme
setXXX qui modifient l'état d'un objet, c'est-à-dire
 Accès :
les valeurs de certains champs. [Link]-or-VariableName
115 116
EX: cheval percheron = new cheval();

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

 Les méthodes représentent des  Les événements vous informent


actions que peut effectuer un objet. lorsqu'un objet est reçu d'autres
Par exemple, un objet "Car" peut applications ou transmis à celles-ci.
avoir des méthodes
« démarrerEngin », «Conduire »et  Les événements permettent aux
« Arrêter ». Pour définir des objets d'effectuer des actions
méthodes, ajoutez des procédures lorsqu'une occurrence spécifique se
(des fonctions ou des routines Sub) à produit.
votre classe. 119 120

[Link] 20
ENSEM
POO/JAVA

PRÉSENTATION DES CLASSES CLASSES : MODÈLES D'OBJETS

Les classes sont des représentations


 Les classes revêtent de l'importance 
symboliques d'objets ; elles décrivent les
dans la programmation orientée propriétés, les champs, les méthodes et les
événements qui constituent des objets de la
objet car elles permettent de même façon que les plans sont des modèles
regrouper des éléments en une seule décrivant les éléments qui composent un
bâtiment. Tout comme un plan peut être
entité, mais aussi d'en contrôler la employé pour construire plusieurs bâtiments,
une classe unique peut servir à créer autant
visibilité et l'accessibilité par d'objets que cela est nécessaire. Et tout comme
d'autres procédures. En outre, une un plan définit les parties d'un bâtiment qui
sont accessibles aux personnes utilisant celui-
classe peut hériter du code défini ci, les classes peuvent elles aussi contrôler
dans d'autres classes et le réutiliser. l'accès des utilisateurs aux composants des
121
objets par l'encapsulation. 122

CLASSES ET OBJETS CLASSES ET OBJETS

 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

d'une classe, l'action de créer un


objet se nomme instanciation.

I. Introduction à la Programmation Orientée


Objet
➢ POO % PP

Un programme informatique comporte toujours des traitements


(des fonctions), mais aussi et surtout des données.
CH6 (ANNEXE) - la programmation structurée s’intéresse aux traitements puis
aux données,
(REPRISES DE QUELQUES - la conception objet s’intéresse d’abords aux données, auxquelles
NOTIONS FONDAMENTALES) elle associe ensuite les traitements.
- Les données sont ce qu’il y a de plus stable dans la vie d’un
programme, il est donc normal d’architecturer le programme autour
de ces données
d’où Le concept de l’orienté objet repose sur les notions :
125
« d’objet » et « classe »

126

[Link] 21
ENSEM
POO/JAVA

CARACTÉRISATION DE L’APPROCHE CARACTÉRISATION DE L’APPROCHE


ORIENTÉ OBJET ORIENTÉ OBJET

 La conception par objets est une


 L’encapsulation : est le mécanisme
méthode qui conduit à des

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

CARACTÉRISATION DE L’APPROCHE CARACTÉRISATION DE L’APPROCHE


ORIENTÉ OBJET ORIENTÉ OBJET
➢ Le polymorphisme :
➢ L’héritage : est le procédé par ▪ cela consiste à appeler la bonne
129

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

 Les expressions: opérateurs classiques


Symbole Signification
 Les classes dérivées peuvent utiliser == Est égal à
le mot clé Shadows pour déclarer > Est supérieur à
un membre avec le même nom que le < Est inférieur à
membre hérité. Les membres >= Est supérieur ou égal à

occultés ne doivent pas forcément <= Est inférieur ou égal à


!= Est différent de
être du même type de données que le * Multiplication
membre à occulter. Par exemple, une + Addition
propriété peut occulter une variable - Différence
de type Integer. / Division entière et réelle
135
% Modulo
136

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 ▪

Symbole Signification (++i équivaut à i=i+1)


&& représente l’opérateur “ET”, ▪ var++ incrémente la variable var et retourne l’ancienne valeur.

|| représente le “OU”, (i++ équivaut à (i=i+1)-1)

! représente le “NON”.
▪ L’expression --var décrémente la variable var et retourne la nouvelle
valeur.

▪ L’expression var-- décrémente la variable var et retourne l’ancienne


 Par exemple, ((x<12) && ((y>0) || !(z>4))) valeur.
137 138

[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 ;

if (i >=0 && T[i] > 20) blabla double r=3.4 ;


m = (i/j)*r ;
 Dans e1 || e2, la sous-expression e2 n’est évaluée que si e1 a été
 D’abord l’expression (i/j) est évaluée: / désigne ici la division entière, cela
évaluée à ’false’.
donne donc 1.
if (i<0 || T[i] > 20) blabla  Pour évaluer le produit 1*r, il faut convertir 1 en double (1.0) et faire le
produit sur les doubles, cela donne 3.4
 Pour l’affectation, comme m est entier, 3.4 est converti en int. Finalement on
a m = 3.

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

données d’un certain type en un autre.

 Par exemple: •Stockage de l’information


int i=3,j=2,m ; •Traitement de l’information
double r=3.4 ;
•Restitution de l’information
m = (double(i)/j)*r ;
Donne... 5 !

 L’évaluation d’une expression arithmétique ne se fait pas toujours de


gauche à droite !
 Ex: (i/j)*(r/3)
[Link] 142
141

Trois unités fonctionnelles Fonctionnement de l’ordinateur


Unité centrale

I. Unité Centrale Mémoire


centrale
II. Mémoires Auxiliaires Organes Organes
de sortie
III. Périphériques d’entrée

Ex: Souris, clavier Processeur Ex: Écran, imprimante


télévision
Scanner, caméra
vidéo

Mémoires
auxiliaires
[Link] 143 [Link] 144

[Link] 24

Vous aimerez peut-être aussi