Programmation Orienté Objet (POO) Introduction

Télécharger au format pptx, pdf ou txt
Télécharger au format pptx, pdf ou txt
Vous êtes sur la page 1sur 36

Département Mathématiques Et Informatique

Année universitaire : 2020/2021


Filière : GECSI1

Programmation
Orienté Objet (POO)
«Introduction»

Mme. Safa BELHAOUS belhous@enset-media.ac.ma


1
PLAN

Introduction

POO vs Programmation procédurale

Java : Syntaxe

2
Introduction

3
Introduction

 Java est un langage de programmation orienté


objet, qui reprend une syntaxe très proche de
celle du langage C.

 Java a pour objectif principal de créer des


applications portables (le même programme
java exécuté sur une plateforme peut se
réexécuter sur plusieurs systèmes d’exploitation
tels que Linux, Windows, Mac OS).

4
Introduction
 Un programmeur Java écrit son code en java
(Nom.java).
 Ce code source est alors compilé par le compilateur
Javac en un langage appelé bytecode (Nom.class.
 Le bytecode obtenu n’est pas
directement utilisable. Il doit
être interprété par la
machine virtuelle de Java
(JVM) qui transforme alors le
code compilé en code
machine compréhensible par
le système d’exploitation.
5
Introduction

 Java est rigoureux (la plupart des erreurs se


produisent à la compilation et non à
l’exécution).

 Encontre-partie, les applications Java ont le


défaut d’être plus lentes à l’exécution que des
applications programmées en d’autres langages
comme le langage C.

6
Introduction

7
POO
vs P. Procédurale

8
POO vs P. Procédurale
 Programmation Procédurale

 On s'intéresse à écrire les étapes séquentielles


nécessaires pour résoudre un problème.
 Met l'accent sur les étapes pour réaliser une
tâche.
 Le programme est la liste des tâches et des
opérations à exécuter.

 Convient mieux aux applications ne nécessitant


pas ou peu d’interaction avec les usagers.
9
POO vs P. Procédurale
 Programmation Procédurale (Etapes)

 Identifier précisément le problème que le


programme va résoudre
 Décomposer le problème en sous-problèmes,
qui vont être représenter par les fonctions.
 Écrire le programme principal en pseudocode
 Implémenter, exécuter le programme avec
différentes données

10
POO vs P. Procédurale
 Programmation Procédurale (Problème)

 Difficulté de réutilisation du code.

 Critères de qualité du programme.

 Difficulté de la maintenance de grandes


applications.

11
POO vs P. Procédurale
 Programmation Orienté Objet

 Permet de réutiliser le code existants à travers


l’héritage.
 Permet de structurer le programme en
paquetage, classe, sous classes…
 Permet de développer des applications avec un
ensemble des tâches à réaliser.
 Une application est vue comme un ensemble
d’objets qui interagissent entre eux à travers les
méthodes.
12
POO vs P. Procédurale
 Programmation Orienté Objet

 La programmation orienté objet nécessite une


modélisation UML au préalable pour spécifier
les besoins et représenter le problème réel à
travers des classes et des objets.

 Comme les objets du monde réel (une voiture,


un vélo, une table, une table, …); les objets dans
les langages Orienté Objet ont des états et des
comportements (Un client par exemple).
état=Caractéristiques (variable) - Comportement= méthodes

13
POO vs P. Procédurale
 Programmation Orienté Objet

 L’exécution du programme est réalisée par


l’échange de messages entre objets.
 Un message est une demande d’action,
caractérisée par les paramètres nécessaires à la
réalisation de cette action (appels de méthodes)
 Tout objet est une instance de classe.
 Classe représente la structure globale des
objets (C’est le type).

14
POO vs P. Procédurale
 Programmation Orienté Objet

 Les classes définissent les comportements


possibles de leurs objets.

 Les classes sont organisées en une structure


arborescente à racine unique : la hiérarchie
d’héritage.

 Héritage permet d’éviter la redondance et de


réutiliser des méthodes.

15
Java : Syntaxe

16
Java : Syntaxe
 Types de données

Table 1 : Types primitifs [1]

17
Java : Syntaxe
 Types de données
• Les identificateurs de variables ou de méthodes
acceptent les caractères {a..z}, {A..Z}. $,_,{0..9}
s’ils ne sont pas le premier caractère de
l’identificateur.
• Il faut évidemment que l’identificateur ne soit
pas un mot réservé du langage (comme int ou
for).
• Exemple :
o Nom_etud1, test4, dadi sont des
identificateurs valides.
o Nom-etud1, 4test,for, int : sont non valide.
18
Java : Syntaxe
 Types de données
• Le langage C a servi de base pour la syntaxe du
langage Java :
int a=108;int b=22;
int res=a+b;
char e = ‘z';
Float c=4.5;
boolean test = true;

• En plus des types primitifs présentés dans le


tableau 1, le terme void est utilisé pour spécifier
le retour.
19
Java : Syntaxe
 Types de données
• On peut remarquer que chaque type primitif possède une
classe qui encapsule un attribut du type primitif. Par exemple,
la classe Integer encapsule un attribut de type int et permet
ainsi d’effectuer des opérations (voir la figure ci-dessous) de
traitement et des manipulations qui seraient impossibles sur
une simple variable de type int.

20
Java : Syntaxe
 Types de données (Casting)
• Le Casting (mot anglais qui signifie moulage),
consiste à effectuer une conversion d'un type
vers un autre type.
• Le casting peut être effectué dans deux
conditions différentes :
o Vers un type plus général. On parle alors de
sur-casting ou de sur-typage.
o Vers un type plus particulier. On parle alors
de sous-casting ou de sous-typage.

21
Java : Syntaxe
 Types de données (Casting)
• Sur-casting : Le sur-casting peut se faire
implicitement ou explicitement.
o Exemples :
int a=6; // le type int est codé sur 32 bits
long b; // le type long est codé sur 64 bits
Casting implicite : b=a;
Casting explicite : b=(long)a;
• Sous-Casting : Le sous-casting ne peut se faire
qu’explicitement.
o Exemple :
float a = 5.5;
double c = (double)a;
22
Java : Syntaxe
 Types de données (Tableaux)
- 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 identificateurs.
- À l’instar du C, on accède aux éléments d’un tableau en
précisant un indice entre crochets(mon_tableau[1] est le
deuxième entier du tableau car les indices du tableau
commence de O à n-1.

//Déclaration d'un tableau de 10 éléments


int[] tableau= new int[10];

//Déclaration d'un tableau initialisé


int[] tableau1= new int[]{1,2,3,10};

23
Java : Syntaxe
 Types de données (Chaînes de caractères)
• Les chaînes de caractères ne sont pas considérées en Java
comme un type primitif ou comme un tableau. On utilise une
classe particulière, nommée String.

• Les variables de type String ontles caractéristiques suivantes :


o leur valeur ne peut pas être modifiée
o On peut utiliser l’opérateur « + » pour concaténer deux
chaînes de caractères:
String s1 = ”hello”;
String s2 = ”world”;
String s3 = s1 + ” ” + s2;
//Après ces instructions s3 vaut ”hello world”

24
Java : Syntaxe
 Commentaires
• Les commentaires (non traités par le
compilateur) se situent entre les symboles
“/*”et“*/” ou commencent par le symbole
“//”en se terminant à la fin de la ligne
• Exemple :
o int a; // ce commentaire tient sur une ligne
o Int b;

• ou /*Ce commentaire nécessite


2 lignes*/
int a;
25
Java : Syntaxe
 Opérateurs Table 2 : Opérateurs Java [1]

26
Java : Syntaxe
 Opérateurs

27
Java : Syntaxe
 Structures de contrôle
• Instruction conditionnelle if
La syntaxe de l'instruction « if » peut être décrite de la
façon suivante:
if (expression) instruction; Exemple
ou : if (a == b) {
if (expression) { \\ expression : a=j; a = 50;
b = 0; }
instruction1; \\ a=a++; else { a = a - 1; }
instruction2; \\ a=a--;
}

• Instruction conditionnelle else


if (expression) { instruction1; } else { instruction2; }

28
Java : Syntaxe

 Structures de contrôle
• Instructions conditionnelles imbriquées
Java permet d'écrire ce type de structure sous la forme :
if (expression1) { bloc1; }
else if (expression2) {
bloc2;
}
else if (expression3) {
bloc3;
}
else { bloc5;}

29
Java : Syntaxe
 Structures de contrôle
• Instruction switch Syntaxe
switch( variable) {
case valeur1: instr1;break;
case valeur2: instr2;break;
case valeurN: instrN;break;
default: instr;break;
}

30
Java : Syntaxe Résultat du code

 Structures de contrôle
• Instruction switch Syntaxe (exemple)
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
System.out.print("Donner un nombre:");
Scanner clavier=new Scanner(System.in);\*lire ce que vous
tapez au clavier*/
int nb=clavier.nextInt(); \\ la valeur entrée
switch(nb){
case 1 : System.out.println("Lundi");break;
case 2 : System.out.println("Mardi");break;
case 3 : System.out.println("Mercredi");break;
default :System.out.println("Autrement");break;
}}}
31
Java : Syntaxe

 Structures de contrôle
• Boucle for
La boucle for est une structure employée pour exécuter un
bloc d'instructions un nombre de fois en principe connu à
l'avance. Elle utilise la syntaxe suivante :

for (initialisation;test;incrémentation) {
instructions;
}
Exemple
for (int i = 2; i < 10;i++) {
System.out.println("I="+i);
}
32
Java : Syntaxe

 Structures de contrôle
• Sortie d'une boucle par return
int[] tab=new int[]{4,6,5,8};
for (int i = 0; i < tab.length; i++) {
if (tab[i] == 5) {
return i;
}

• Une fois la condition sera réalisé, le programme va


afficher l’indice correspond à 5 qui est 2 sans terminer le
reste du tableau.

33
Java : Syntaxe

 Structures de contrôle
• Instructions break et continue
L’instruction break est
o Break utilisée pour sortir
int x = 10; immédiatement d’un bloc
for (int i = 0; i < 10; i++) {
x--;
if (x == 5) break;
} \\ fin de boucle for
System.out.println(x);
o Continue L’instruction Continue est
for (int i = 0; i < 10; i++) { utilisée pour passer à
if (i == 5) continue; l’itération suivante du
System.out.println(i); boucle sans continuer le
code.
}
34
Java : Syntaxe
 Structures de contrôle
• Instruction While Exemple
while (condition){ int s=0;int i=0; while (i<10)
Bloc Instructions; { s+=i; i++; }
System.out.println("Somme="
} +s);

• Instruction do .. while
Exemple
do{ int s=0;int i=0;
Bloc Instructions; do{ s+=i; i++; }
} while (i<10);
System.out.println("Somme="
while (condition); +s);

35
Java : Syntaxe

 Exercice applicatif
Ecrire un programme java qui demande 5
nombres entrés par le clavier puis le programme
calcule la moyenne et la somme de ces 5
nombres.

36

Vous aimerez peut-être aussi