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