Programmation orientée objet
Programmation en JAVA
Prof. Aziz MABROUK
2019-2020
PLAN
Qu'est ce qu’un Programme Orientée Objet ?
Premier programme en Java
Application
Types de données
Opérateurs
Structure de contrôle
Procédures & Fonctions
Structures d’un programme en Java
Programmation
Orientée Objet (POO)
Programmation Orientée Objet (POO)
Qu'est ce qu’un
Programme Orientée Objet ?
Programmation Orientée Objet (POO)
Qu'est ce qu’un Programme Orientée Objet ?
Ensemble d'objets autonomes et responsables qui
s'entraident pour résoudre un problème final en
s'envoyant des messages.
Objet 1 Message
Objet 3
Objet 2
Programmation Orientée Objet (POO)
Qu’est ce qu’un objet ?
Programmation Orientée Objet (POO)
Qu’est ce qu’un objet ?
Objet = Données + Méthodes (Fonctions Membres)
Fonction 1 Fonction 2
Fonction Fonction
DONNEES 3
6
Fonction 5 Fonction 4
Programmation Orientée Objet (POO)
Exemple d’un objet
Résistance
SetValueR SetValueP
GetRmin R P GetValueR
GetRmax GetValueP
Programmation Orientée Objet (POO)
Principe POO
Programmation Orientée Objet (POO)
Principe POO
Programmation Orientée Objet (POO)
Notion de classe
Programme
Java
Programme Java
Programme Java
Création en 1995 par Sun Microsystems
Un langage généraliste de programmation synthétisant les principaux
langages existants
Il permet une programmation orientée-objet: SmallTalk et, C++
modulaire (langage ADA)
reprend une syntaxe très proche de celle du langage C
Programme Java
Programme Java
JAVA est un langage de POO
Un programme Java est structuré en modules appelés classes
une classe est constituée de déclarations et de méthodes
Les méthodes sont des sous-programmes présentant une
analogie avec les fonctions du langage C
programme Java
Classe Classe
Classe Classe
déclarations
Classe méthodes
Classe
Premier programme en Java
Programme Java
Programme minimum
Un programme susceptible d’être exécuté doit :
1. contenir au moins le texte suivant :
2. être contenu dans un fichier portant le même nom <nom> que la
classe avec l’extension .java
3. être compilé par la commande : javac <nom>.java
4. être exécuté par la commande : java <nom> <arg 1> . . .<arg n>
Programme Java
Environnement Java
Java est un langage interprété :
ce qui signifie qu’un programme compilé n’est pas directement
exécutable par le système d’exploitation
mais il doit être interprété par un autre programme, qu’on appelle
interpréteur.
Programme Java
Compilation
La compilation génère un .class en bytecode (langage intermédiaire
indépendant de la plateforme).
javac MyProgram.java compile la classe MyProgram dont le code source
est situé dans le fichier MyProgram.java
javac MyProgram.java
Programme Java
Interprétation
Le bytecode obtenu par compilation ne peut être exécuté qu’à l’aide de
l’interpréteur.
L’exécution s’effectue par la commande java suivie du nom de la classe à
exécuter (sans l’extension .class)
java MyProgram
Programme Java
Principe de fonctionnement
Programme Java
Java : un langage et une plateforme
Dans la technologie Java, on a besoin
➢ Du langage de programmation et du compilateur
➢ De la JVM et des APIs (Application Programming Interfaces)
regroupées dans une « plateforme »:
➢ Java SE (Java Platform, Standard Edition): Java SE 6 pour
applications classiques, desktop
➢ Java EE (Java Platform, Enterprise Edition): Java EE 6 pour
développer et déployer des applications serveur, Web services, etc.
➢Java ME (Java Platform, Micro Edition): J2ME pour les applica
tions embarquées, PDA, téléphones, etc.
➢ Si on veut juste exécuter, il suffit du JRE (Java Runtime Execution)
par opposition au JDK (Java Developpement Kit)
Programme Java
Les outils Java
Trois exemples de base
Une application
Une application avec interface graphique
Une applet
Application
PROGRAMME ECRITURE CONSOLE
Problème: Ecriture d'un texte dans une fenêtre console
Fichier: Ecriture.java
public class Ecriture
{
public static void main(String[] args)
{
System.out.println("Un programme Java");
}
}
Application
Compiler, exécuter…
1. Créer un fichier Ecriture.java
2. Compilation:
javac Ecriture.java
Création de Ecriture.class (bytecode)
3. Interpréter le byte code:
java Ecriture
(il faut que javac et java soient dans $PATH)
Une application avec interface graphique
PROGRAMME ECRITURE FENETRE
Problème: Ecriture d'un texte dans une fenêtre graphique
Fichier: EcritureFenêtre.java
import javax.swing.*;
public class EcritureFenêtre
{
public static void main(String[] args)
{
JOptionPane.showMessageDialog(null,"Fenêtre Java");
}
}
Une applet
Problème: Ecriture d'un texte dans une applet
Fichier: EcritureApplet.java
import java.awt.*;
import javax.swing.*;
public class EcritureApplet extends JApplet
{
public void paint(Graphics g)
{
g.drawString("APPLET JAVA", 100, 100);
}
}
Une applet
Problème: Ecriture d'un texte dans une applet
Fichier: EcritureApplet.java
L’applet doit être exécutée dans un navigateur capable d’interpréter du
bytecode correspondant à des applet.
Il faut créer un fichier HTML pour le navigateur.
Fichier Bienvenu.html:
<HTML>
<HEAD>
<TITLE> Une petite applet </TITLE>
<BODY>
<APPLET CODE='EcritureApplet.class' WIDTH=200 Height=50>
</APPLET>
</BODY>
</HTML>
Types de données
Types de données
Types Primitifs de Java
Types de données
Types Primitifs de Java
A l’inverse du langage C, Java est un langage très rigoureux sur le typage des
données.
Il est interdit d’affecter à une variable la valeur d’une
variable d’un type différent si cette seconde variable n’est pas
explicitement transformée.
Par exemple :
doit être écrit de la manière
suivante
Types de données
Initialisation
Types de données
Tableaux et matrices
Types de données
Tableaux et matrices
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 identificateur.
Les deux syntaxes suivantes sont acceptées pour déclarer un tableau
d’entiers
Un tableau a toujours une taille fixe qui doit être précisée avant
l’affectation de valeurs à ses indices, de la manière suivante :
Types de données
Tableaux et matrices
la taille de ce tableau est disponible dans une variable length
appartenant au tableau et accessible par :
mon_tableau.length
On peut également créer des matrices ou des tableaux à plusieurs
dimensions en multipliant les crochets
ex : int[][] ma_matrice;
On accède aux éléments d’un tableau en précisant un indice entre
crochets
mon_tableau[3] est le quatrième entier du tableau
Un tableau de taille n stocke ses éléments à des indices allant de
0 à n-1.
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, fournie dans le
package java.lang (à voir).
Les variables de type String ont les caractéristiques suivantes :
on peut utiliser l’opérateur + pour concaténer deux chaînes de
caractères :
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, fournie dans le
package java.lang (à voir).
Les variables de type String ont les caractéristiques suivantes :
l’initialisation d’une chaîne de caractères s’écrit :
Opérateurs
Opérateurs
Opérateurs
Opérateurs
Opérateurs
Structure de contrôle
Structure de contrôle
Structure de contrôle
Les structures de contrôle permettent d’exécuter un bloc d’instructions
soit :
plusieurs fois (instructions itératives)
soit selon la valeur d’une expression (instructions conditionnelles ou de
choix multiple).
Dans tous ces cas, un bloc d’instruction est
soit une instruction unique ;
soit une suite d’instructions commençant par une accolade ouvrante
“{” et se terminant par une accolade fermante “}”.
Structure de contrôle
Instructions conditionnelles
Les structures de contrôle permettent d’exécuter un bloc d’instructions
soit :
plusieurs fois (instructions itératives)
soit selon la valeur d’une expression (instructions conditionnelles ou de
choix multiple).
Dans tous ces cas, un bloc d’instruction est
soit une instruction unique ;
soit une suite d’instructions commençant par une accolade ouvrante
“{” et se terminant par une accolade fermante “}”.
Structure de contrôle
Instructions conditionnelles
L’instruction if…..else
Syntaxe :
if (<condition>) <bloc1> [else <bloc2>]
ou
<condition>?<instruction1>:<instruction2>
Structure de contrôle
Instructions conditionnelles
L’instruction switch
Cette instruction a pour but d’exécuter toutes les instructions d’une
séquence, à partir de certains points repérés par la valeur d’une variable
de contrôle de type entier (char, byte, short, int ou long).
Structure de contrôle
Instructions itératives
Les instruction itératives permettent d’exécuter plusieurs fois un bloc
d’instructions, et ce, jusqu’à ce qu’une condition donnée soit fausse.
Les trois types d’instruction itératives sont les suivantes :
1. TantQue...Faire... while….do
2. Faire...TantQue... do…. while
3. Pour...Faire for
Structure de contrôle
Instructions itératives
while….do
Exemple :
Syntaxe :
while (<condition>) <bloc>
L’exécution de cette instruction suit les étapes suivantes :
1. la condition (qui doit renvoyer une valeur booléenne) est évaluée. Si
celle-ci est vraie on passe à l’étape 2, sinon on passe à l’étape 4 ;
2. le bloc est exécuté ;
3. retour à l’étape 1 ;
4. la boucle est terminée et le programme continue son exécution en
interprétant les instruction suivant le bloc.
Structure de contrôle
Instructions itératives
do…. while
Exemple :
Syntaxe :
do <bloc> while (<condition>);
L’exécution de cette instruction suit les étapes suivantes :
1. le bloc est exécuté ;
2. la condition (qui doit renvoyer une valeur booléenne) est évaluée. Si
celle-ci est vraie on retourne à l’étape 1, sinon on passe à l’étape 3 ;
3. la boucle est terminée et le programme continue son exécution en
interprétant les instruction suivant le bloc.
Structure de contrôle
Instructions itératives
for ….
Syntaxe :
for (<init>;<condition>;<instr_post_itération>) <bloc>
Exemple :
Structure de contrôle
Instructions itératives
for ….
1. les initialisations sont effectuées ;
2. la condition (qui doit renvoyer une valeur booléenne) est évaluée.
Si celle-ci est vraie on passe à l’étape 2, sinon on passe à l’étape 6 ;
3. le bloc principal est exécuté ;
4. les instructions à exécuter après chaque itération sont exécutées ;
5. retour à l’étape 2 ;
6. la boucle est terminée et le programme continue son exécution en
interprétant les instructions suivant le bloc principal.
Structure de contrôle
Instructions break et continue
break : l’exécution se poursuit après la boucle (comme si la condition d’arrêt
devenait vraie) ;
continue : l’exécution du bloc est arrêtée mais pas celle de la boucle. Une
nouvelle itération du bloc commence si la condition d’arrêt est toujours vraie.
Procédures & Fonctions
Procédures
Procédures
Fonctions
Fonctions
Structures
d’un programme en Java
Structures d’un programme en Java
Structures d’un programme en Java
Packages
Un grand nombre de classes, fournies par Java SE, implémentent des
données et traitements génériques utilisables par un grand nombre
d’applications.
Ces classes forment l’API (Application Programmer Interface) du
langage Java.
Toutes ces classes sont organisées en packages (ou bibliothèques)
dédiés à un thème précis.
Structures d’un programme en Java
Packages
Pour accéder à une classe d’un package donné, il faut préalablement importer cette
classe ou son package.
Par exemple,
la classe Date appartenant au package java.util qui implémente un ensemble de
méthodes de traitement sur une date peut être importée de deux manières :
Structures d’un programme en Java
Packages
Pour accéder à une classe d’un package donné, il faut préalablement importer cette
classe ou son package.
Par exemple,
la classe Date appartenant au package java.util qui implémente un ensemble de
méthodes de traitement sur une date peut être importée de deux manières :
Le programme suivant utilise cette classe pour afficher la date actuelle :
Structures d’un programme en Java