Filières : GL, SMI, IGE Semestre : 5 Professeur : Salahddine KRIT Année univers

Filières : GL, SMI, IGE Semestre : 5 Professeur : Salahddine KRIT Année universitaire 2015/2016 Références 1) Gosling & Arnold : «le langage Java», traduction Miniussi & Chaumette, International Thomson Publishing. Livre clair et très adapté pour les débutants, écrit par le créateur du langage. 2) Niemeyer & Peck : « JAVA par la pratique », Editions O’Reilly. Livre qui couvre l’ensemble des aspects de Java par des exemples. 3) Irène Charon : « le langage Java, concepts et pratique », Hermès. 4) (http://www.infres.enst.fr/~charon/coursJava/ ) Cours en ligne avec exercices corrigés. Très bien. 5) Jérôme Bourgeault : « Java : la maîtrise », Les Guides de formation Tsoft, Eyrolles. Livre exhaustif avec AWT, JDBC, JavaBeans, JFC, Swing, etc. 6) « Java Corner » : Un service d'information sur le langage JAVA réalisé par des membres du Centre Universitaire d'Informatique (CUI) de l'Université de Genève. 7) (http://cuiwww.unige.ch/java/) 8) Livre : "Java", 2ème édition, Eyrolles. Auteur : Claude Delannoy. 9) « Exercices en Java » Eyrolles. Auteur : Claude Delannoy. 10) « Objet Oriented Programming » Auteur : School of Computer Science University of KwaZulu-Natal. Introduction à l’environnement de la programmation sous Java 1. Introduction Java est un langage de programmation orienté objet créé en 1991 par « SUN Microsystem : c’est une société qui est rachetée par Oracle en avril 2009 ». L’objectif initial était la programmation de petits appareils comme des télécommandes, la programmation d’applications Web. Il est devenu actuellement l’un des langages de programmation généraliste les plus utilisés. Le langage Java connu beaucoup d’évolution depuis sa création. Plusieurs versions ont été développées: la première version « Java 1.0 » en 1996 ….. Plusieurs environnements java sont disponibles: - Java SE (Standard Edition) - Java ME (Mobile Edition) - Java EE (Enterprise Edition) Environnement Java SE - Outil JDK : Outils de développement JDK (Java Developpment Kit) de SUN (voir site : http://java.sun.com). • Il est gratuit. • Il contient un ensemble de paquetages très riches et très variés. • Il contient un ensemble d’outils : le compilateur : « javac », le JVM (Java Virtual Machine) « java », le générateur de documentation. - Des environnements de développements gratuits sont disponibles, par exemple : • NetBeans : http://www.netbeans.org/ • Eclipse : http://www.eclipse.org/ 2. Quelques caractéristiques Java est un langage purement orienté objet. En effet, l'entité de base de tout code Java est la classe : c'est-à-dire qu’en Java, tout se trouve dans une classe, il ne peut y avoir de déclarations ou de code en dehors du corps d'une classe. La syntaxe du langage Java est très proche du langage C++ (et par conséquent du langage C). Ci après on donne une simple comparaison entre ces deux langages : - Création des langages: • C++ est crée dans les laboratoires « AT&T Bell » en 1983. • Java est crée dans les laboratoires de « Sun Microsystems » en 1991. - Java évite les points "critiques" du langage C++: • Les pointeurs • La surcharge des opérateurs • L’héritage multiple - Gestion de la mémoire : En java, la libération de la mémoire s’effectue de manière implicite : il existe un mécanisme de gestion automatique de la mémoire, connu sous le nom de ramasse miettes (en anglais Garbage Collector) qui est chargé de détecter les objets à détruire. Ceci permet un gain de fiabilité au détriment d’une perte en rapidité par rapport à C++. - Portabilité : • Le compilateur C++ produit un exécutable qui dépend de l’environnement de travail (processeur, système d’exploitation, etc.) où le code source est compilé. Par conséquent, à priori, pour une exécution sur un autre environnement, on doit donc créer des exécutables propres à chaque type d’architecture sur laquelle on veut exécuter le programme. • En Java, la compilation ne traduit pas directement le programme source dans le code natif de l’ordinateur. Le code source est d’abord traduit dans un langage intermédiaire appelé "bytecode", langage d’une machine virtuelle (JVM – Java Virtual Machine) définie par Sun. Le bytecode, généré par le compilateur, ne dépend pas de l’environnement de travail ou le code source est compilé. Au moment de l’exécution, il sera traduit dans le langage machine relatif à la machine sur laquelle il sera exécuté. 3. Compilation Le nom du fichier source à compiler doit être identique au nom de la classe auquel on rajoute l’extension « .java ». Sun fournit le compilateur « javac » avec le JDK. Par exemple, si « NomDeClasse.java » est le nom du fichier source à compiler, alors la commande : javac NomDeClasse.java compile la classe « NomDeClasse » dont le code source est situé dans le fichier « NomDeClasse.java ». Cette compilation crée un fichier nommé «NomDeClasse.class» qui contient le « bytecode ». C’est ce bytecode qui sera exécuté par une JVM. En générale, si un système possède une JVM alors il peut exécuter tous les bytecodes (fichiers .class) compilés sur n’importe quel autre système. Important : Si le fichier « NomDeClasse.java » fait référence à des classes, situées dans des répertoires différents du répertoire courant (répertoire de travail), alors il faut les spécifier: - Soit pendant la compilation à l’aide de l’option « -classpath ». Exemple : supposons qu’on fait références à des classes situées dans les répertoires « /prog/exemple et /cours », alors on doit les spécifier de la façon suivante: sous windows: javac -classpath /prog/exemple ; /cours; NomDeClasse.java sous Linux : javac -classpath /prog/exemple:/cours : NomDeClasse.java - Soit dans la variable d’environnement « CLASSPATH ». Cette variable indique le chemin ou se trouve les classes (par défaut la recherche des classes se fait dans le répertoire courant). 4. Exécution du bytecode La compilation d’un programme Java ne traduit pas directement le code source en fichier exécutable. Elle traduit d’abord le code source en un code intermédiaire appelé «bytecode». C’est le bytecode qui sera ensuite exécuté par une machine virtuelle (JVM ; Java Virtual Machine). Ceci permet de rendre le code indépendant de l’architecture de la machine sur laquelle le programme a été compilé. Le bytecode est exécuté par une JVM (simulée par un programme) qui - lit les instructions (en bytecode) du programme .class, - les traduit dans le langage natif de la machine sur laquelle il sera exécuté. - lance l’exécution Sun fournit le programme « java » qui simule une JVM. Pour l’exécution, il suffit d’utiliser la commande: java NomDeClasse Important : - Il ne faut pas rajouter l’extension « .class » - Si des classes d’autres répertoires sont nécessaires, alors : • Soit, il faut les spécifier à l’aide de l’option –classpath. Si par exemple on fait références à des classes situées dans les répertoires « /prog/exemple et /cours », alors on doit les spécifié pendant l’exécution de la façon suivante: sous windows: java -classpath /prog/exemple; /cours NomDeClasse sous Linux: java -classpath /prog/exemple:/cours: NomDeClasse • Soit, il faut les rajouter dans la variable d’environnement « CLASSPATH ». 5. Un exemple de programme java Considérons la classe « MonPremProg » définie ci-desous: public class MonPremProg { public static void main(String args[]) { System.out.println(" Bonjour: mon premier programme Java " ); } } - Ce code doit être sauvegardé obligatoirement dans un fichier texte (fichier source) dont le nom est le nom de la classe avec l’extension « .java » : le nom de la classe est « MonPremProg » donc le fichier source sera nommé « MonPremProg.java » - Cette classe est exécutable car elle posséder la méthode « main() » ayant la signature : public static void main(String[] args). Pour compiler, on utilise la commande javac: javac MonPremProg.java La compilation génère un fichier nommée « MonPremProg.class » c’est la bytecode. Pour l’exécution, on utilise la commande java: java MonPremProg La machine virtuelle JVM interprète le bytecode de la méthode « main() » de la classe « MonPremProg ». L’exécution du programme « MonPremProg » affiche à l’écran la chaîne de caractères: Bonjour: mon premier programme Java Ceci grâce à l’instruction: System.out.println(" Bonjour: mon premier programme Java "); De manière générale : - Dans tout programme destiné à être exécuté, doit contenir une méthode particulière nommée « main() ». Elle contient le «programme principal» à exécuter. Elle est définie de la manière suivante: public static void main(String args[]) { /* corps de la méthode */ } Le paramètre args est un tableau d’objets de type String. Il est exigé par le compilateur Java. - La méthode « main() » ne peut pas retourner d’entier comme en C. - La classe contenant la méthode main() doit obligatoirement être public afin que la machine virtuelle y accède. - Dans l’exemple précédent, le contenu de la classe « MonPremProg » est réduit à la définition d’une méthode main(). - Un fichier source peut contenir plusieurs classes mais une seule doit être public (dans l’exemple c’est la classe: MonPremProg ). - Le nom du fichier source est identique au nom de la classe publique qu'il contient avec l’extension « .java ». Dans l’exemple précédent, le fichier source doit obligatoirement avoir le nom: « MonPremProg.java ». Questions uploads/S4/ java-exercice-corrige-ige.pdf

  • 26
  • 0
  • 0
Afficher les détails des licences
Licence et utilisation
Gratuit pour un usage personnel Attribution requise
Partager
  • Détails
  • Publié le Mai 13, 2021
  • Catégorie Law / Droit
  • Langue French
  • Taille du fichier 0.7750MB