Présentation générale du langage java

1.- PRESENTATION GENERALE DU LANGAGE JAVA
1.1. – Introduction
1.2. – Historique
1.3. – Les principales raisons du succès de Java
1.4.- Les particularités de Java
1.5.- Questions courantes concernant Java
1.6.- Ouvrages et sites de référence
2.- LES PRINCIPES DE LA POO
2.1.- L’encapsulation
2.2.- L’héritage
2.3.- Le polymorphisme
3.- LE LANGAGE JAVA
3.1.- Les sources et les commentaires
3.2.- Types simples et opérations arithmétiques
3.3.- Les instructions : de l’algorithme au programme
3.4.- Les conversions de type
3.5.- Tableaux et chaînes de caractères
3.6.- Classes et objets
3.7.- Les méthodes
3.8.- Les constructeurs et le destructeur
3.9.- L’héritage
3.10.- Les modificateurs
3.11.- Les packages
3.12.- Classes abstraites et interfaces
5.13.- Les exceptions
3.14.- Les fichiers
3.15.- La sérialisation
4.- JAVA ET LES INTERFACES HOMME – MACHINE (IHM)
4.1.- Les composants du package Swing
4.2. La gestion des événements
4.3.- Les menus et les boites de dialogue
4.4.- Les environnements de développement intégrés
5.- JAVA : PROGRAMMATION AVANCEE
5.1.- Les threads
5.2.- Les collections
5.3.- Les images
5.4.- Dessiner avec Java
6.- LES APPLETS
6.1.- Applet et application : différences
6.2.- Création d’une applet
6.3.- Inclure une applet dans une page Web
6.4.- Passer des paramètres à une applet
7.- JAVA3D
7.1.- Les bases de la programmation en Java 3D
7.2.- Les formes 3D
7.3.- Les attributs d’apparence
7.4.- Eclairage d’une scène
7.5.- Interaction
A.- ANNEXES
A.1.- C++ – Java : les principales différences
A.2.- Problèmes avec les méthodes de la classe Thread
A.3.- Quelques exemples

1.- Présentation générale du langage Java

1.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  polymorphismeet l’héritageNous reviendrons bien évidemment en détails sur ces trois notions  dans la suite de ce document (Cf. chapitre 2 : « Les principes de la POO »).
1.2. – Historique
Le langage Java trouve ses origines dans les années 1990. A cette époque, quelques ingénieurs  (innovateurs) de SUN Microsystems commencent à parler d’un projet d’environnement indépendant  du hardware pouvant facilement permettre la programmation d’appareil aussi variés que les  téléviseurs, les magnétoscopes etc … James Grosling (SUN Microsystems) développe un premier  langage, Oak, permettant de programmer dans cet environnement. En 1992, tout est prêt pour  envahir le marché avec cette nouvelle technologie mais la tentative se solde par un échec.
Bill Joy (co-fondateur de SUN Microsystems) sauve malgré tout le projet. Devant la montée en  puissance de l’Internet, il lui semble intéressant d’insister sur l’élaboration d’un langage indépendant  des plates-formes et des environnements (les principaux problèmes rencontrés sur l’Internet étant  liés à l’hétérogénéité des machines et des logiciels utilisés).
Dès lors tout s’accélère. Oak est renommé (en 1995) Java et soumis à la communauté Internet  grandissante. Une machine virtuelle, un compilateur ainsi que de nombreuses spécifications sont  données gratuitement et Java entame une conquête fulgurante. Aujourd’hui, après de nombreuses  améliorations (parfois modifications) Java n’est plus uniquement une solution liée à l’Internet. De  plus en plus de sociétés (ou de particuliers) utilisent ce langage pour l’ensemble de leurs  développements (applications classiques, interfaces homme-machine, applications réseaux …).
1.3. – Les principales raisons du succès de Java
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 ;
• 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 ;

1.4.- Les particularités de Java

1.4.1.- Multi plates-formes
Java est 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  .classest 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.
1.4.2.- Applets et applications
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 .classest utilisé avec un fichier HTML qui fait appel à une des classes (Cf. chapitre 6).
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 …)  Néanmoins, nous consacrerons le chapitre 7.1 est consacré aux spécificités des applets.

1.5.- Questions courantes concernant Java

1.5.1. – Pourquoi ne pas interpréter directement le programme Java ?
• Les fichiers .classcontiennent 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 .classsont de taille plus petite que le code source Java; ceci est un  argument important pour transférer les programmes sur l’Internet.
• Chaque fichier .classdé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.
1.5.2. – Pourquoi ne pas compiler directement et générer un exécutable ?
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.
1.5.3. – Qu’en est-il de la rapidité d’exécution de Java ?
Le plus gros problème d’un programme Java est son manque de rapidité d’exécution :
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 (traduction à la volée du micro-code Java vers  par exemple, le code machine PowerPC ou Intel). Cette opération ralentit le départ de  l’application, mais l’exécution du programme est ensuite beaucoup plus rapide !..

Si le lien ne fonctionne pas correctement, veuillez nous contacter (mentionner le lien dans votre message)
Programmer en Java (981 KO) (Cours PDF)
Programmer en Java

Télécharger aussi :

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *