TechnoBabble
Comment JAVA ?
Java, une saveur de café mais plus encore un langage, est chez Sun d’un besoin de développer des
applications distribuées dans des réseaux hétérogènes. Java est un langage orienté objet, distribué,
interpreté, portable, multi-thread et dynamique. Il s'agit d'une version du langage C++ qu'on aurait
allégé de sa complexité formelle. Java est conçu pour la programmation distribuée et est capable
d'ouvrir et accéder des objets à distance via différents protocoles. Java utilise pour ses transferts une
technique d'encryption basée sur le système de clé publique. Pour accentuer le caractère portable des
données, Java utilise un format neutre de fichier objet capable d'être interprété puis utilisé sur un grand
nombre de plates-formes et processeurs différents. La création d'applications incluant plusieurs
processes ou threads est facilitée par la présence de primitives vouées à la synchronisation de ces
threads.
Les opérateurs sont identiques à ceux du langage C, des librairies C pouvant aussi être ajoutées à une
application Java. Il y a quelques différences mineures par rapport au langage C. Si les entiers sont de
type byte sur 8 bits, int sur 32 bits ou long sur 64 bits, il n’y a pas de types unsigned. Par contre, pour
jouer sur le signe, on dispose d’un opérateur >>> pour des décalages logiques vers la droite. Les
nombres réels sont soit des float sur 32 bits soit des double sur 64 bits. Le type char est particulier
puisqu’il supporte d’office le standard Unicode et est stocké sur 16 bits comparé aux 8 bits du C. Le
type Array permet de créer des tableaux multidimensionnels pour n’importe quel type d’objet. Il n’est
pas possible en Java de bidouiller comme en C en faisant de l’arithmétique de pointeurs pour se
ballader dans de tels tableaux. La String est un objet et non un tableau. Elle se déclare aussi simplement
que ceci
String hello = “salut à tous”
On peut aisément concaténer de telles chaînes avec un simple opérateur +. Finie la programmation
spaghetti, l’infâme goto a disparu du langage Java. Par contre, Java dispose contrairement au C d’un
véritable garbage collector, l’allocation et la désallocation de la mémoire est gérée automatiquement.
Pas de malloc ou de free ici. Ceux qui se méfient des garbage collectors lents et poussifs comme en
LISP peuvent être rassurés, le garbage collector de Java tourne dans un thread à basse priorité et
n’intervient que pendant des périodes d’inactivité.
Java est décrit à travers une machine virtuelle, un modèle abstrait et logique incluant un jeu
d'instructions, un jeu de registres, un stack, un heap et une espèce de segment texte baptisé ici "method
area". Un interpréteur Java peut directement exécuter du code sur n’importe quelle machine il a été
porté.
Toute une série de classes prédéfinies permettent de jongler avec des objets de base aux noms
évocateurs d'Url, Ftp, Http, telnet, smtp, nntp ou sockets. Bref, on dispose d'une librairie de classes
World Wide Web très fournie et le développement d'applications Internet en est considérablement
simplif
Si, à côté de Objective C, Eiffel ou Dylan, Java fait autant parler de lui, c’est à cause de son intérêt
crucial pour les applications Internet. Wide Web est encore jeune et ses navigateurs souffrent de
lacunes. Ils ont été pensés en terme d'information statique, ne s'accomodent que de données de type
texte, son ou image et se prêtent encore difficilement à la programmation dynamique. L'ambition de
Sun avec son langage Java est d'insuffler une philosophie dynamique à l'information, de transférer en
même temps que l'objet le module logiciel qui sera capable de le traiter, le représenter ou le visualiser.
Netscape a été la première société à acquérir une licence pour java qu’on retrouve dans la version 2.0
de son célèbre navigateur Web.
Lorsqu'un navigateur traditionnel rencontre un nouveau type d'objet pour lequel il n'est pas préparé, il
doit céder la main à une application extérieure ou sauver l'objet sur disque, faute d'outil de traitement
adéquat. Un navigateur Java par contre peut délivrer via Internet un objet et la pièce de code nécessaire
à son décodage. La même conception objet est appliquée à la gestion des protocoles de transfert de
données. A côté du protocole HTTP, HotJava ou Netscape 2 peuvent accepter dynamiquement de
nouvelles formes de protocoles incluant par exemple de l'encryption. Chaque concepteur d'un protocole
propriétaire peut intégrer dans un navigateur Java le code nécessaire à son bon fonctionnement. Si le
client Java ne connaît pas encore le nouvel objet ou le nouveau protocole, il réclame simplement au
serveur les portions logicielles requises.
L’arôme Java vous allèche ? Lancez-vous à l’eau tant qu’il est gratuit. La première chose à faire est de
vous rendre sur le site http://java.sun.com pour y télécharger la dernière version du JDK, le Java
Developer Kit. Nous prendrons ici comme exemple la version 32 bits pour Windows qui fonctionne
aussi bien sous Windows 95 que Windows NT. Comme la version beta 1.0 ne contient pas encore de
navigateur HotJava, il vous faudra télécharger un navigateur Web compatible comme la version 2.0 de
Netscape disponible sur http://www.netscape.com.
Décompressez le fichier exécutable dans un répertoire c:\java. Modifiez ensuite votre fichier
autoexec.bat pour qu’il comporte au minimum les mentions suivantes
PATH=c:\java\bin
set INCLUDE=c:\java\include
set LIB=c:\java\lib
set CLASSPATH=.;./classes;/java/classes
Commençons par créer l’incontournable application Hello World pour vérifier si tout fonctionne. Il y
en aura deux car, en Java, on distingue les “applets” qui sont des programmes écrits en langage Java qui
ne fonctionnent qu’avec un navigateur compatible Java et les programmes Java qui peuvent fonctionner
seuls indépendamment de tout navigateur.
Voici d’abord la version indépendante
class HelloWorld
{
public static void main (String args[])
{
System.out.println("Hello World");
}
}
La même application sous forme d’applet devant être visualisée à partir d’un navigateur Web, il faudra
d’abord créer une page HelloWorld.html faisant appel à cette application :
<html>
<head>
<title>Le retour d’ "Hello World" </title>
</head>
<body>
<h1>Hello World Strikes again</h1>
<p>
Voici ce qu’affiche le programme Hello World :
<p>
<applet CODE="HelloWorld.class" WIDTH=150 HEIGHT=25>
<APP CLASS="HelloWorld">
</applet>
</body>
</html>
Puis créons un fichier HelloWorld.java contenant :
import java.awt.Graphics;
public class HelloWorld extends java.applet.Applet
{
public void init()
{
resize(150,25);
}
public void paint(Graphics g)
{
g.drawString("Hello world!", 50, 25);
}
}
Compilons le fichier HelloWorld.java en lançant la commande
>javac HelloWorld.java
Si tout va bien, le compilateur javac crée alors un fichier HelloWorld.class dans le même répertoire. Il
ne reste plus qu’à charger la page HelloWorld.html dans votre navigateur HotJava ou Netscape pour
visualiser le résultat de votre premier programme.
Revenons à notre code. La première ligne du programme importe la class Graphics du répertoire
java/awt. Importer une classe de la sorte la rend disponible pour le fichier dans lequel elle est importée.
import est en quelque sorte l’équivalent de la commande include du langage C.
Toutes les applets sont des sous classes de browser.Applet. Les classes que vous réalisez en Java
doivent faire appel au mot clé “extends” pour spécifier qu’il s’agit d’une classe dérivée d’Applet.
La méthode init() est appelée à la création d’une applet pour définir certains paramètres dinitialisation.
Nous l’utilisons ici pour réserver un espace de travail via la commande resize(largeur, hauteur).
Dans g.drawString(“HelloWorld”,50,25), l’objet g fait appel à la méthode drawString pour s’envoyer
lui-même un message et afficher “HelloWorld” à l’écran avec les coordonnées x=50, y = 25. g est
déclaré comme un objet de la classe “Graphics”.
Si dans un même fichier source, vous décrivez deux classes, Hello et Goodbye par exemple, il en
résultera deux fichiers Hello.class et Goodbye.class totalement indépendants.
Java supporte la programmation par évènement et génère les méthodes suivantes :
public void start() {
...
repaint();
}
destroy()
update(Graphics g)
mouseUp(int x, int y)
mouseDown(int x, int y)
mouseDrag(int x, int y)
mouseMove(int x, int y)
mouseEnter()
mouseExit()
getFocus()
gotFocus()
lostFocus()
keyDown(int x)
Si vous avez l’habitude de programmer l’API de Windows, du Mac ou de l’Amiga, vous ne devriez
avoir aucune difficulté à vous familiariser avec les classes primitives de Java. Le langage est encore
jeune, en perpétuelle évolution, il ne dispose pas de comité de normalisation et comme tout ce qui est
relatif à World Wide Web, il progresse à une allure exponentielle. Les outils sont encore un peu
instables, la doc papier est inexistante mais il existe de nombreux sites Web vous trouverez des
centaines de démos, des applets, du code source, des tutoriels. Mon préféré parmi tous est situé à
http://www.gamelan.com. 60 % des programmeurs du Benelux gagnent encore leur croûte avec le
Cobol ou le RPG III, une majorité d’informaticiens sortent des études sans avoir appris autre chose que
du Pascal, la majorité des gens croient que le Visual Basic c’est de l’orienté-objet, vous aurez donc
peut-être autant de peine à imposer Java comme langage de programmation dans votre école ou
entreprise que Galilée à faire passer sa conception d’une terre ronde. Mais dans comp.lang.java, vous
pouvez compter sur des milliers d’amis !
1 / 4 100%
La catégorie de ce document est-elle correcte?
Merci pour votre participation!

Faire une suggestion

Avez-vous trouvé des erreurs dans linterface ou les textes ? Ou savez-vous comment améliorer linterface utilisateur de StudyLib ? Nhésitez pas à envoyer vos suggestions. Cest très important pour nous !