Programmation Orientée Objet

Transcription

Programmation Orientée Objet
1
Université de la Manouba
Ecole Supérieure de Commerce Electronique
Programmation Orientée Objet
2ème année E-Serv et E-com
2009/2010
Réalisé par : Nabil KHEMIRI
[email protected]
2
Définitions

Code natif: Un code natif (ou langage machine) est composé d'instructions
directement reconnues par un processeur.

JRE : est l'acronyme de Java Runtime Environment (« environnement
d'exécution Java ») et désigne un ensemble d'outils permettant l'exécution de
programmes Java sur toutes les plates-formes supportées.
JRE est constitué d'une JVM (Java Virtual Machine), le programme qui
interprète le code Java et le convertit en code natif. Mais le JRE est surtout constitué
d'une bibliothèque standard à partir de laquelle doivent être développés tous les
programmes en Java.

Cet outil est à distinguer du JDK (Java Development Kit) qui est constitué en
plus d'outils de développement permettant essentiellement de compiler du code Java
pour produire du bytecode qui sera interprété par la machine virtuelle sur le poste
utilisateur.
3
Qu’est ce que
?
 Un langage de programmation compilé et interprété .
Avant exécution
Exécution
 Les applications Java s'exécutent sur quel type de machines : portabilité
Tous les types de matériels
disposant d'une JVM
4
Avantages
Portabilité : « écrire une fois, exécuter partout »
Sécurité : systèmes inaltérables et sans virus,
Fiabilité : pas d’allocation/libération mémoire manuelle, pas
de pointeurs,
Orienté réseaux : bibliothèques, servlet, invocation de
méthodes à distance (RMI),
Simple : syntaxe analogue C/C++
5
Architecture
Un “kit” de développement : SDK
Le Java Standard Development Kit, parfois appelé JDK, est le kit de
développement basique proposé par Sun Microsystem. Ce Kit, en plus
de contenir Java Runtime Environment (JRE), comprend aussi plusieurs
outils :
• javac: le compilateur Java,
• java: un interpréteur d'applications (machine virtuelle),
• applet viewer: un interpréteur d'applets
• jdb: un débogueur
• javap: un décompilateur, pour revenir du binaire (fichier
compilé .class) au code source (fichier source .java)
• javadoc: un générateur de documentation
• jar: un compresseur de classes Java
6
Architecture
Produite par Sun Microsystems,
Permettant de développer et d'exécuter des programmes écrits en langage
Java indépendante de tout processeur et de tout système d'exploitation.
Les différentes plateforme : JVM + API (Application Programming
Interface )
• J2SE : java 2 Standard Edition : destinés aux ordinateurs de bureau,
• J2EE : java 2 Entreprise Edition : destinés aux serveurs Web,
• J2ME : java 2 Mobile Edition.
La plateforme entreprise « java »
7
Le langage
La notion d’objets et de classes centrale en Java
Un fichier Java correspond normalement à une classe.
Une application Java est constituée d’un ensemble de classes.
Lancer une application Java consiste à appeler une méthode
particulière de la classe correspondant au programme à exécuter.
Exemple :
public class Hello {
public static void main( String [] args ){
}
System.out.println("Hello world!!!");
}
8
Commentaires et Javadoc (1)
Sur une seule ligne:
int x; //commentaire jusqu’à la fin de la ligne
Sur plusieurs lignes:
/* commentaires pouvant tenir
sur plusieurs lignes*/
Pour la Javadoc:
/**
* à réserver pour la documentation automatique
* avec Javadoc
*/
Commenter le plus possible et judicieusement chaque déclaration
(variables, méthodes et classes).
Commenter clairement (utiliser au mieux les 3 possibilités).
9
Commentaires et Javadoc (2)
 Exemple:
/*
Nabil KHEMIRI
08/10/2009
*/
public class Hello {
public static void main( String [] args ){
System.out.println("Hello world!!!");
} // Fin programme principal
} // Fin classe Hello
Types de données primitifs : Types de
base (1)
En plus des objets, Java inclus des types de base
Types numériques (signés) :
 byte, short , int, long
 float , double
Caractères : type char
 Codé sur 16 bits en utilisant le standard unicode.
 Peuvent être manipulés comme des entiers non signés.
Booléens : type boolean (true et false)
 Les booléens ne sont pas des entiers en Java
Note: pas de type simple pour les chaînes de caractères
10
Types de données primitifs : Types de
base (2)
11
Types de données primitifs : Types de
base (3)
12
13
Types de données primitifs : variable (1)
Une syntaxe proche du langage C
Déclarées au sein d’une classe
Déclarations de variables : type nom ; ou type nom = val ;
Constantes :
Déclarée avec le modificateur "final".
Il est obligatoire de l'initialiser au moment de la déclaration.
Les noms des constantes sont (par convention) en majuscule.
Exemple : final double PI = 3.141592;
14
Types de données primitifs : variable (2)
Types de données primitifs : Forcer un
Type en JAVA
Dans certains cas, nécessaire de forcer le programme à considérer une
expression comme étant d’un type qui n’est pas son type réel ou déclaré.
Le cast explicite (casting) : (typeforcé) expression
Le cast implicite lors d'une affectation ou d'un passage de paramètres
byte short int
long
float
double
char int
long float double
Le cast qui provoque une perte de valeur ne sont pas autorisées de
manière implicite. Elles doivent être demandées explicitement.
Exemple : de float vers int
15
16
Types de données primitifs : variable (3)
Opérateurs de comparaison:
17
Caractères spéciaux
18
Structures de contrôle (1)
Branchement conditionnel:
Syntaxe:
19
Structures de contrôle (2)
Branchement multiple:
Syntaxe:
20
Structures de contrôle (3)
Boucles indicées:
L’exécution est contrôlée par un indice
Syntaxe:
Exemple:
nombre d’itérations connu à l’avance
21
Structures de contrôle (4)
Boucles conditionnelles:
L’exécution est contrôlée par une condition
connu à l’avance
Syntaxe:
nombre d’itérations n’est
22
Les tableaux (1)
23
Les tableaux (2)
•
Exercice:
Écrivez un programme java qui affiche le contenu du tableau
suivant à l’écran: {1, 2, 3, 4, 5}
24
Les tableaux (3)
Correction de l’exercice:
public class AfficheTab {
public static void main(String[] args){
int[] tab = {1,2, 3,4, 5};
}
}
for (int i=0; i< tab.length;i++)
System.out.println ("Valeur case" + i + " : " + tab[i]);
25
La classe Vector (1)
Un vecteur implémente une liste/tableau de taille variable d'objets
La classe Vector fait partie du package java.util : donc se nomme
java.util.Vector
 Pour utiliser la classe Vector il faut l’importer du package java.util :
import java.util.Vector;
Constructeurs :
Vector(): crée un vecteur vide
Vector(int nombre): crée un vecteur vide de capacité précisée.
Attributs (variable d'instance) :
elementCount: nombre d'éléments du vecteur
26
La classe Vector (2)
 Quelques méthodes de la classe Vector :
contains(Object) : indique si l'objet est contenu dans le Vector.
copyInto(Object[]) : copie les éléments dans un tableau classique.
firstElement() : renvoie le premier élément.
insertElementAt(Object, int) : insère l'objet à l'indice indiqué
isEmpty() : indique si le Vector est vide
lastElement() : renvoie le dernier élément
removeAllElements() : vide le Vector
removeElementAt(int) : retire l'objet dont l'indice est donné
setElementAt(Object, int) : place l'objet à l'indice donné
size() : renvoie le nombre d'éléments
27
La classe Vector (3)
 Exercice:
Réaliser une classe RechercheMot qui permet de rechercher un mot dans
une phrase : renvoie true si le mot existe, false sinon.
28
La classe Vector (4)
import java.util.Vector;
public class RechercherMot {
public static void main (String args[]) {
Vector phrase = new Vector(3);
String permut= null;
for (int k=0;k<3;k++)
{
System.out.println("entrer l'element num "+k);
permut =Clavier.lireString();
phrase.addElement(permut);
}
System.out.println("Donnez un mot a rechercher dans la phrase");
String mot = Clavier.lireString();
System.out.println(mot+" existe dans la phrase : "+hrase.contains(mot));
}}
29
Références
CCI Initiation à Java de E.Coquery :
www710.univlyon1.fr/~ecoquery/enseignement/ CCI/
CoursJavaCCIBase.pdf
Julien velcin:
http://eric.univ-lyon2.fr/~jvelcin/public/GL-k/
Cours Programmation Orientée Objet Java de Zaki Brahmi (isigk
2008).
Philippe GENOUD UJF, Septembre 2005 :
ww.inrialpes.fr/helix/people/genoud/ENSJAVA/cours/supportsPDF/3_Int
ro_Methodes_6p p.pdf
Programmation Orientée Objet Langage Java de Roselyne AVOT
(2006/2007) : www.asim. lip6.fr/~roselyne/enseig/Cours1.pdf