! Mamadou NDIAYE ! ! Ecole Supérieure Polytechnique de DAKAR! Université Cheikh

! Mamadou NDIAYE ! ! Ecole Supérieure Polytechnique de DAKAR! Université Cheikh Anta DIOP de DAKAR! ! Programmation Objet Le language JAVA 1 Représenter directement les entités du monde réel dans les environnements informatiques, sans nécessité de les déformer ou de les décomposer. Associer données et traitements dans une même entité. Réutiliser et étendre les logiciels existants, à partir de bibliothèques spécialisables, et modifiables Facilités de prototypage rapide des applications sans créer le corps des procédures. Facilités d'exploitation du parallélisme pour la mise en œuvre de structures multiprocesseur; Faciliter la conception d'interfaces homme/machine Accroître la productivité des développeurs de logiciel. Pourquoi la programmation orientée objet? Un objet représente un concept, une idée ou toute entité du monde physique NDIAYE Mamadou 2 SIMULA - construit au départ pour résoudre des problèmes de simulation de processus parallèles ü syntaxe proche du langage ALGOL ü permet de définir des classes ü héritage simple ü mécanisme des fonctions virtuelles ü classe Echéancier pour gérer des processus déclenchables à des instants précisés. SMALLTALK vise plutôt les applications interactives ü conçu durant les années 70 par Golberg et Kay à Xérox ü gère les concepts d'objet, de classe, d'héritage, d'envoi de messages. ü orienté vers la communication homme/machine. ü supporte les notions de polymorphisme ADA plutôt destiné aux applications multitâche temps réel ü Conçu par J. Ichbiah pour le compte du DOD (70) ü Langage d'usage général de type PASCAL. ü ADA n'est pas exactement un langage objet. ü Intègre la notion de type abstrait à travers le "paquetage" (package). ü Les données, fonctions et procédures peuvent être exportées ou privées. ü Intègre des mécanismes multitâches. Les langages objets principaux NDIAYE Mamadou 3 C++ , développé en 80 par Bjarne stroustrup des laboratoires Bell. ü Langage orienté P.O.O ü Extension du langage C; C++ corrige les défauts du C vis à vis du typage. ü C++ à mi-chemin entre un langage structuré (C) et un langage totalement P.O.O (SMALLTALK) ü Concepts de classe, d'héritage, de polymorphisme emprunté à SIMULA. ü Le concept de classe généralise le constructeur struct. ü Encapsulation totale ou partielle des données. ü droits d'accès private, public, protected des objets d'une classe.(sur-ensemble orienté objet du langage C). ü Dérivation des classes. héritage multiple ü Concept de fonction amie (friend) ü Surdéfinition des fonctions et des opérateurs ü En attendant la normalisation définitive du C++ ANSI, ce sont les publications d' AT&T qui servent de références: ü versions 1.1(86), 1.2(87), 2.0(89), 3.0(91) [version de travail de l'ANSI]; ü Nouvelles possibilités d' E/S, basées sur la notion de "flux". ü C++ permet de transiter doucement d'une programmation algorithmique (WIRTH) à une programmation P.O.O (préserver le "savoir faire" et l'existant). NDIAYE Mamadou 4 Historique du langage Java F 1991 : Naissance du langage Java, appelé initialement Oak. F Langage créé par une équipe de Sun Microsystems qui cherchait un langage applicable à de petits appareil électriques (on parle de code embarqué). F 1ère application: un contrôleur de poche interactif pour l'équipement de loisir domestique, destiné aux chaînes de télévision câblées numériques (en 1991!!). F 1995: Concepts repris dans la réalisation du logiciel HotJava, un navigateur web ecrit par SUN, java, et capable d’executer des applets écrits en byte code. Les navigateurs Java: F Les autres navigateurs ont suivi, ce qui a contribué à l’essor du langage qui a beaucoup évolué depuis cette date. Sous formes de versions succesives: F 1.01 et 1.02 en 1996 F 1.1 en 1998 F 1.2 (finalement baptisé JAVA 2) en 1999, F 1.3 en 2000(appelée aussi JAVA 2), décembre : lancement J2EE F 1.4 en 2002 F J2SE 5.0 en septembre 2005 F 2006 mai : Java EE 5, décembre : Java SE 6.0 NDIAYE Mamadou 5 Un peu de terminologies … 1. Applet: Codes JAVA téléchargeables sur des machines clientes à partir dun serveur WEB. Sexécute obligatoirement dans lenvironnement dun navigateur compatible JAVA (IE, NETSCAPE, …) intégrant une JVM. 2. Midlet: Codes JAVA téléchargeables sur des dispositifs mobiles (portables, PDA, …) à ressources matérielles limitées. Sexécute obligatoirement dans lenvironnement dun équipement compatible JAVA intégrant une KVM ou CVM. 3. Servlet: Codes stockés sur un serveur et sexécutant sur la requête dune machine cliente afin de fournir un service de traitement ou de calcul. 4. JVM: Processeur virtuel, produisant un code « machine » intermédiaire (byte-code) à partir dun fichier source java. Un interpréteur est ensuite nécessaire afin de convertir et dexécuter les bytes-code en code assembleur de la machine cible. 5. KVM: Processeur virtuel « très allégé » afin de pouvoir être porté sur des machines embarquées (téléphones cellulaires, PDA, …) aux ressources matérielles limitées. 6. CVM: Processeur virtuel « moyennement allégé » afin de pouvoir être porté sur des machines embarquées aux ressources matérielles relativement limitées. 7. RMI: (Remote Methode Invocation) – API JAVA permettant le développement dapplications distribuées objet 8. JSP, ASP: (JavaServerpage) - Langages de script, type C (resp. sun, microsoft) permettant de créer des sites web dynamiques. Les scripts sont insérés dans des pages html à lintérieur des balises <% et %> 9. PHP: Langage de script structuré, inséré dans une page html, exécuté au niveau du serveur, et permet de « dynamiser » la page html en fournissant un ensemble complet de fonctions utiles (mail, …); Remplace avantageusement le code CGI (écrit en C, PERL, …) au niveau des temps dexécution. Dès que le code PHP est exécuté dans la page html, il ne figure plus dans le source récupéré par la machine client. 10. Socket: Point de connexion réseau (prise réseau) où doit se brancher dautres machines informatiques afin de pouvoir établir des échanges entre elles. 11. APACHE: Application informatique configurée comme un serveur WEB, et permettant de « uploader » des pages html, wml, xml, … sur des machines clientes. Des services peuvent être exécutés pour le compte de client sur requêtes PHP, JSP, ASP, CGI, … des applets peuvent être téléchargées sur des machines clientes 12. TOMCAT: Application informatique configurée comme un serveur de servlet, et permettant sur requêtes de machines clientes, dexécuter des services de traitement et/ou de calcul à partir de code java spécifiques: servlet 13. SQL: un pseudo-langage informatique (de type requête) standard et normalisé, destiné à interroger ou à manipuler une base de données relationnelle. NDIAYE Mamadou 6 Généralités NDIAYE Mamadou 7 F La POO met en œuvre différents objets et se fonde sur la programmation structurée en contribuant à la réutilisabilité et la fiabilité. Elle introduit de nouveaux concepts, en particuliers ceux dobjets, de classe, dencapsulation, de polymorphisme et dhéritage. F Encapsulation : un objet associe des variables et des méthodes agissant sur les données de l’objet. F Concept de classe: une classe décrit d’un ensemble d’objets ayant une structure de données commune et disposant des mêmes méthodes. F Héritage: Il permet de définir une nouvelle classe à partir d’une classe existante à laquelle on ajoute de nouvelles données et de nouvelles méthodes. La nouvelle classe hérite des propriétés et des aptitudes de l’ancienne. F Polymorphisme: Il permet de manipuler des objets sans en connaître (tout à fait) le type. Chaque objet réagit en fonction de son propre type. Programmation Orientée Objet (P.O.O) NDIAYE Mamadou 8 JAVA permet le multi-thread F Une application Java peut lancer plusieurs tâches ou processus indépendants qui s'exécutent simultanément. Java intègre un exécutif multitâche permettant d'ordonnancer les "threads". JAVA est distribué F Les fonctions d'accès au réseau et les protocoles internet les plus courants sont intégrés JAVA est sécurisé F Java nest pas compilé à destination dun processeur particulier mais en « byte code » qui pourra être ensuite interprété sur une machine virtuelle Java (JVM = Java Virtual Machine). Le "byte code" généré est vérifié par les interprétateurs java avant exécution. F Une erreur déclenche automatiquement une exception. F Labsence de pointeur évite les malversations JAVA est dynamique F Les classes Java peuvent être modifiées sans modification du programme qui les utilise. JAVA est simple F Inspiré du C++, Fortran, Lisp, Smalltalk, Java est plus simple que le C++, n'a pas de pointeurs, ni d'héritage multiple, ni surcharge d'opérateurs. JAVA implémente le modèle client-serveur. F Conçu pour les architectures distribuées; intègre la gestion des sockets TCP/IP et URL Caractéristiques du langage Java NDIAYE Mamadou 9 JAVA est orienté-objet Java permet: F L'encapsulation (masquage d'information) F L'héritage (déclarer une nouvelle classe comme extension d'une classe existante), F La liaison dynamique (les appels à une opération ou à n'importe laquelle de ses redéfinitions dans les classes dérivées sont "résolus" au moment de l'exécution, en fonction du type de l'objet concerné). F Une gestion automatique de la mémoire (les objets inutilisés sont désalloués par un système sousjacent, le garbage collector, sans intervention du programmeur) F Une bibliothèque de classes standard très complète. JAVA est indépendant de la machine F Point fort de Java: un source Java compilé donne des bytes-code (opcodes 8 bits et opérandes de tailles variables ); codes d'un pseudo-assembleur (pcode) d'une machine virtuelle Java (JVM). Les fichiers ainsi compilés peuvent être soit interprétés et exécutés localement; soit chargés via une page uploads/Management/ cours-java-ndiaye.pdf

  • 21
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Jui 15, 2021
  • Catégorie Management
  • Langue French
  • Taille du fichier 4.6925MB