Suivez-nous sur X
|
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z,
ALL
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
0,
A,
B,
C,
D,
E,
F,
G,
H,
I,
J,
K,
L,
M,
N,
O,
P,
Q,
R,
S,
T,
U,
V,
W,
X,
Y,
Z
|
|
A propos d'Obligement
|
|
David Brunet
|
|
|
|
Programmation : Java - classes, objets et instances
(Article écrit par Jérôme Palaysi et extrait d'Amiga News - janvier 1998)
|
|
Programmer en Java nécessite de connaître le paradigme de programmation orientée objet. Après, tout le reste vous apparaîtra comme
une simple formalité : syntaxe, connaissance des classes fournies par Java en standard, etc.
Le mois dernier, je vous proposais de revenir ultérieurement sur la phrase "un microprocesseur
universel qui n'existe pas". Ce mois-ci, je vous conseille de regarder à le passage "Jazz ou Java" de
l'article de Georges Tarbouriech dans lequel il fait le procès (pertinent) de Java
(bien qu'il dise qu'il ne le fera pas !) et qui évoque à la fin, la sortie prochaine d'une électronique Java.
Revenons maintenant sur les notions de classe et d'objet au travers d'un exemple qui n'a rien d'informatique : une classe
(une classe au sens scolaire n'a aucun rapport avec le terme de classe en programmation objet) de cours élémentaire et une
institutrice. Imaginons que l'institutrice donne un modèle de poupée au tableau... et demande aux élèves de confectionner
cette poupée. Ils ont du tissu, de la colle, du carton, du fil, des aiguilles à leur disposition. Juste avant de donner le
départ, la maîtresse précise qu'elle veut que la poupée lève les bras et les jambes lorsque nous tirons sur un fil qui lui
est rattaché. Voilà un modèle d'objet, il est au tableau, il est abstrait, c'est ce qu'on appelle une classe !
Quant aux poupées que nos chérubins réalisent, ce sont les instances de ce modèle... de vrais objets bien palpables ! Les
caractéristiques physiques de la poupée sont appelées attributs. Le fait qu'elle puisse bouger s'appelle une méthode.
Le paragraphe précédent est très important, il vous résume le principe de programmation orientée objet.
Revenons à l'informatique
Imaginez que vous vouliez créer un jeu dans lequel de nombreux aliens interviennent. Alors, comme l'institutrice précédemment,
vous indiquez à l'ordinateur le modèle d'un alien (c'est une classe !). Si à un moment donné de l'exécution de votre programme
vous avez besoin d'un alien dit Grodoi, d'un vrai, vous devez procéder ainsi :
Alien Grodol.New Alien();
L'ordinateur réagit comme un élève et vous fabrique une instance d'un alien : un objet.
Voici maintenant les définitions, de vraies définitions incompréhensibles puisqu'elles s'appellent mutuellement : il s'agit
d'un véritable dictionnaire :
classe : modèle d'objet.
objet : instance de classe.
instance : un objet particulier conçu à partir d'une classe.
Nous ne parlerons plus d'objet à propos d'instances, ça ne se fait pas ! Comprenez que c'est mal élevé, seulement il fallait
bien faire apparaître le mot objet pour que la programmation objet ait un sens.
Pour finir, vous pouvez consulter l'exemple.
J'expliquerai en détail ce programme la prochaine fois (nous verrons comment ça marche et dénoncerons quelques-unes de ces
pratiques honteuses). Il est là parce que je l'avais promis mais en fait je n'aurais jamais dû promettre parce qu'il aurait
fallu qu'il apparaisse la prochaine fois ! Mais bon... Sachez une chose importante toutefois, avant de vous poser trop de
questions : une application Java est considérée elle-même comme une instance, une instance d'une classe d'applications que
connaît l'interpréteur Java. Voilà pourquoi il apparaît deux classes dans le programme. Mais afin de ne pas vous embrouiller,
je vous conseille d'occulter la classe programme et de décortiquer la classe alien (décortiquer un alien n'a rien de ragoûtant !).
Exemple
Il ne faut pas que Java supplante tous les langages. D'abord parce qu'il est lent, et ensuite parce qu'il est restrictif.
Restrictif ? Par rapport au fait qu'il prend ce qu'il y a de commun à tous les systèmes (voir le paragraphe "100% Java" plus
bas). Lent ? Bien sûr puisqu'il est interprété. Pour ce second problème, Sun investit dans l'optimisation de Java depuis quelque
temps, d'énormes progrès sont encore réalisables... Une seconde manière de rendre plus rapide une application Java
est de "recompiler" son code pour la machine hôte juste avant son exécution.
100% Java
Le fait que Java soit "multiplates-formes" doit normalement vous poser quelques problèmes de taille. Par exemple, comment
autoriser l'utilisation de deux boutons de souris alors que le Mac n'en a pas autant ? Ou encore comment ouvrir une tâche
pour AmigaOS dans un écran plutôt que sur une fenêtre ? Il n'y a pas toujours vraiment de solutions. Aussi, Java peut
paraître restrictif pour un système donné. C'est le revers de la médaille. Il est très sage de ne pas espérer (parce que
ce ne serait pas forcément bien pour l'informatique) la disparition d'applications spécifiques aux "plates-formes". Par contre,
Microsoft, sous ce prétexte, donne la possibilité de développer des applications Java spécifiques à son OS.
La plupart des entreprises ne voient la distribution de leurs applications que sur le marché Windows... Elles risquent donc
sans y réfléchir vraiment, de créer des applications Java non profitables au reste du monde informatique. Ce problème n'est
pas anodin. Il est peut-être à l'origine du combat informatique le plus important à l'aube du deuxième millénaire. En
adoptant cette stratégie, Microsoft balaie d'un seul coup le risque de voir s'effondrer son marché. Pour palier à ce problème,
Sun a inventé le label 100% Java, garantie qu'il s'agit d'une application utilisable sur n'importe quel interpréteur Java.
De plus, il vient d'intenter un procès à Microsoft, pour que ce dernier distribue sa trousse de développement logiciel
conformément aux exigences de Sun.
|