Master 1 Prof. Semestre 2 UEM2 : Programmation Orienté Objet 2019-2020 1 M. Lah

Master 1 Prof. Semestre 2 UEM2 : Programmation Orienté Objet 2019-2020 1 M. Lahdir (Dépt. ELN de UMMTO) Chapitre 1 : Introduction au langage Java 1 Introduction Java est un langage de programmation récent (les premières versions datent de 1995) développé par Sun Microsystems. Il est fortement inspiré des langages C et C++. Comme C++, Java fait partie de la « grande famille » des langages orientés objets. Il répond donc aux trois principes fondamentaux de l’approche orientée objet (POO) : l’encapsulation, le polymorphisme et l’héritage. Le langage Java possède de nombreuses caractéristiques : - C’est un langage orienté objet - C’est un langage compilé : avant d’être exécuté, il doit être traduit dans le langage de la machine sur laquelle il doit fonctionner - Il emprunte sa syntaxe en grande partie du langage C - Les programmes Java peuvent être exécutés sous forme d’applications indépendantes ou distribuées à travers le réseau et exécutées par un navigateur Internet sous forme d’applets. Java a rapidement intéressé les développeurs pour quatre raisons principales : - C'est un langage orienté objet dérivé du C, mais plus simple à utiliser et plus « pur » que le C++. On entend par « pur » le fait qu’en Java, on ne peut faire que de la programmation orienté objet contrairement au C++ qui reste un langage hybride, c’est-à-dire autorisant plusieurs styles de programmation. C++ est hybride pour assurer une compatibilité avec le C ; - Il est doté, en standard, de bibliothèques de classes très riches comprenant la gestion des interfaces graphiques (fenêtres, boites de dialogue, contrôles, menus, graphisme), la programmation multi-threads (multitâches), la gestion des exceptions, les accès aux fichiers et au réseau … L’utilisation de ces bibliothèques facilitent grandement la tâche du programmeur lors de la construction d’applications complexes ; Master 1 Prof. Semestre 2 UEM2 : Programmation Orienté Objet 2019-2020 2 M. Lahdir (Dépt. ELN de UMMTO) - Il est doté, en standard, d’un mécanisme de gestions des erreurs (les exceptions) très utile et très performant. Ce mécanisme, inexistant en C, existe en C++ sous la forme d’une extension au langage beaucoup moins simple à utiliser qu’en Java ; - Il est multi plates-formes : les programmes tournent sans modification sur tous les environnements où Java existe (Windows, Unix et Mac) ; Remarque : Ce dernier point a contribué à utiliser d'abord Java pour développer des applets qui sont des applications pouvant être téléchargées via l’Internet et exécutées dans un navigateur sur n'importe quelle plate-forme. Ainsi, une page statique HTML peut s'enrichir de programmes qui lui donneront un comportement dynamique. 2 Pourquoi utiliser Java ? 2.1 Le monde sans Java Avec les langages évolués courant (C++, C, etc.) nous avons pris l’habitude de coder sur une machine identique à celle qui exécutera nos applications ; la raison est fort simple : à de rares exceptions près les compilateurs ne sont pas multi-plateformes et le code généré est spécifique à la machine qui doit accueillir. Nous devons alors utiliser n compilateurs différents sur n machines. Aujourd’hui, la généralisation des interfaces graphiques et l’usage de langage plus évolués compliquent encore d’avantage le problème. Ainsi pour développer une application destinée à plusieurs systèmes d’exploitation avec ses différentes couches de librairies et d’interfaces ; les API de ces interfaces étant toutes différentes. Ainsi nos applications sont fortement dépendantes des ressources (y compris graphique) du système hôte, dépendantes des API des interfaces utilisées, et le code produit ne peut s’exécuter que sur le système pour lequel il a été initialement produit. 2.2 Le monde avec Java Tout d’abord, Java simplifie le processus de développement : quelle que soit la machine sur laquelle on code, le compilateur fournit le même code. Ensuite, quel que soit le système utilisé cet unique code est directement opérationnel : En effet, la compilation d’un source Java produit Master 1 Prof. Semestre 2 UEM2 : Programmation Orienté Objet 2019-2020 3 M. Lahdir (Dépt. ELN de UMMTO) du pseudo-code (byte code) Java qui sera exécuté par tout interpréteur Java sans aucune modification ou recompilation. Cet « interpréteur » est couramment dénommé « machine virtuelle Java ». 2.3 Conséquences : - Java est donc un langage qui doit être compilé et interprété. Dans une première phase on compile un programme (un ou plusieurs fichiers source .java) en fichiers.class. Le compilateur génère un fichier .class pour chacune des classes définies dans le(s) fichier(s) .java. L'ensemble des fichiers .class est ensuite interprété par la Machine Virtuelle Java (Java Virtual Machine) pour exécuter le programme (seule la JVM dépend du système). Ce principe donne à Java une portabilité maximale (Windows, Unix, Macintosh …). Les figures ci-dessous montrent la différence de principe entre la compilation dans un langage classique (C++) et la compilation/interprétation en Java. Master 1 Prof. Semestre 2 UEM2 : Programmation Orienté Objet 2019-2020 4 M. Lahdir (Dépt. ELN de UMMTO) - Il est possible de développer des applications isolées (standalone applications), fonctionnant avec l'interpréteur comme un programme habituel dans un langage classique mais aussi des "applets". Les applets sont des programmes qui peuvent être téléchargés sur l’Internet puis exécutés automatiquement quand ils sont intégrés à dans des pages HTML. Dans ce dernier cas, l'ensemble des fichiers .class est utilisé avec un fichier HTML qui fait appel à une des classes. Bien que les principes de programmation soient très proches, ce document traite uniquement des applications car la philosophie est plus proche des langages classiques (C/C++, Pascal, ADA …). - Les fichiers .class contiennent du bytecode, une sorte de code machine Java (comparable au code machine d'un microprocesseur). L'interpréteur exécute beaucoup plus rapidement ce bytecode que les fichiers sources .java. - Seuls les fichiers .class sont nécessaires à l'exécution d'un programme Java. Ils contiennent du code machine et ne peuvent donc pas être lus par des tiers, protégeant ainsi le code source. - Etant compilés, les fichiers .class sont de taille plus petite que le code source Java ; ceci est un argument important pour transférer les programmes sur l’Internet. - Chaque fichier .class décrivant une classe d'objet, une même classe peut être utilisée par Différents programmes sans que cette classe ne soit dupliquée dans chacun des programmes. - Un exécutable contient du code qui n'est exécutable que sur la machine pour laquelle il est destiné et le seul moyen de rendre un langage multi plates-formes, sans avoir à recompiler le code source (comme en C/C++), est d'utiliser un interpréteur. L'autre avantage de l'interpréteur est qu'il peut être incorporé à un navigateur (Netscape/Internet Explorer), ce qui lui permet d'exécuter des programmes Java à l'intérieur de pages HTML. - L’interpréteur prend forcément un certain temps pour interpréter le code des fichiers .class, ce qui rend les programmes moins rapides que de « vrais exécutables ». Mais Java est encore jeune et Sun Microsystems et d'autres éditeurs de logiciels tentent d'optimiser les Machines Virtuelles Java. L'un des axes d'optimisation est actuellement le développement de compilateurs JIT (Just In Time) : quand une classe est chargée, elle est traduite dans le code machine de la plate-forme où elle est exécutée. Cette opération ralentit le départ de l'application, mais l'exécution du programme est ensuite beaucoup plus rapide ! Master 1 Prof. Semestre 2 UEM2 : Programmation Orienté Objet 2019-2020 5 M. Lahdir (Dépt. ELN de UMMTO) 3 Utilisation du JDK (Kit de développement Java) Permet le développement de programmes en Java. Il est constitué des outils suivants : - javac.exe : compilateur - java.exe : interpréteur - jdb.exe : debugger… - et d’une importante librairies de classe (API). Téléchargement : http://www.sun.com/products/index.html Configuration : Chemin d’accès aux exécutables En supposant que vous avez choisi la version Windows 98. Vous devez modifier la variable PATH du fichier autoexec.bat : - Ouvrez à l’aide d’un éditeur de texte, le fichier autoexec.bat se trouvant dans la racine du disque dur - Localisez la ligne commençant par set path et ajoutez à la fin de celle-ci : set path = c:\jdk1.2\bin La variable d’environnement ‘path’ indique à Windows le chemin d’accès qu’il doit utiliser pour trouver les programmes exécutables. Windows cherche les programmes exécutables tout d’abord dans le dossier à partir duquel la commande est tapée, puis dans les dossiers dont les chemins d’accès sont indiqués par la variable « path ». Chemin d’accès aux classes Java Le chemin d’accès aux classes Java peut être configuré exactement de la même façon à l’aide de la variable classpath. Master 1 Prof. Semestre 2 UEM2 : Programmation Orienté Objet 2019-2020 6 M. Lahdir (Dépt. ELN de UMMTO) En Résumé : Contrairement au C/C++, le compilateur Java ne génère pas de fichier exécutable. Il crée pour chacune des classes d'un fichier Java un fichier .class qui sera interprété par la Machine Virtuelle Java. - Compilation : javac [<options>] <fichiers-source- « .java »> . Exemple : javac Test.java - Exécution : java [<options>] <fichiers-class sans extension> . Exemple : java Test 4- Principe de la programmation en Java : l’Orienté Objet Un programme structuré (Pascal, C…) est composé de fonctions indépendantes constituées d’instructions simples et structurés. Ainsi, les données et uploads/Industriel/chapitre-1-java-m1-prof-2019-2020.pdf

  • 29
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager