Obligement - L'Amiga au maximum

Lundi 26 juin 2017 - 12:32  

Translate

En De Nl Nl
Es Pt It Nl


Rubriques

 · Accueil
 · A Propos
 · Articles
 · Galeries
 · Glossaire
 · Hit Parade
 · Liens
 · Liste jeux Amiga
 · Quizz
 · Téléchargements
 · Trucs et astuces


Articles

 · Actualité (récente)
 · Actualité (archive)
 · Comparatifs
 · Dossiers
 · Entrevues
 · Matériel (tests)
 · Matériel (bidouilles)
 · Points de vue
 · En pratique
 · Programmation
 · Reportages
 · Tests de jeux
 · Tests de logiciels
 · Tests de compilations
 · Articles divers

 · Articles in english
 · Articles in other languages


Twitter

Suivez-nous sur Twitter




Liens

 · Sites de téléchargements
 · Associations
 · Pages Personnelles
 · Moteurs de recherche
 · Pages de liens
 · Constructeurs matériels
 · Matériel
 · Autres sites de matériel
 · Réparateurs
 · Revendeurs
 · Presse et médias
 · Programmation
 · Développeurs logiciels
 · Logiciels
 · Développeurs de jeux
 · Jeux
 · Autres sites de jeux
 · Scène démo
 · Divers
 · Informatique générale


Jeux Amiga

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


Trucs et astuces

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


Glossaire

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


Partenaires

Annuaire Amiga

Amedia Computer

Relec

Hit Parade


Soutien

N'hésitez pas à soutenir le projet Obligement



Contact

David Brunet

Courriel

 


Programmation : Java - constructeur, destructeur, accesseur
(Article écrit par Jérôme Palaysi et extrait d'Amiga News - mars 1998)


Voilà une nouvelle année qui sera sans doute l'année de l'apparition de Java pour Amiga. Je ne cesserai de le répéter, ce langage va modeler une informatique nouvelle, comme s'il s'agissait de l'acte majeur de cette fin de siècle.

Pour commencer, revenons à l'exemple du numéro de janvier. Dans cet exemple, nous avions deux classes : l'une était celle de l'alien, l'autre celle de l'application. A ce propos, je vous conseille de prendre connaissance de l'annexe "Applets et Applications" plus bas. Regardons la classe alien. Elle comporte des attributs (age et taille) et une méthode (celle qui lui permet de se présenter).

Constructeurs et destructeurs

Réellement, il existe deux méthodes de plus que nous ne voyons pas dans le code et qui s'appellent "constructeur" et "destructeur". Ces méthodes peuvent être explicitement décrites pas nous, mais pas nécessairement. Lorsqu'un objet est créé, la méthode "constructeur" est automatiquement appelée. Lorsqu'un objet est détruit, la méthode appelée est "destructeur".

En réalité, la première devrait s'appeler "initialisateur" dans le sens où cette méthode est en général réservée à l'initialisation des attributs de l'objet. La méthode constructeur porte le même nom que la classe. Dans notre cas, cette méthode s'appelle "alien()". Vous pouvez la rajouter dans le code :

alien()
{
	age=10;
	taille=180;
}

...ou rajouter encore un autre type de constructeur. En effet, les constructeurs peuvent être surchargés. C'est-à-dire que vous pouvez décrire une autre méthode "alien()" mais qui prend en entrée des paramètres :

alien(int age_desire,int taille_desiree)
{
	age=age_desire;
	taille=taille_desiree;
}

J'ai rajouté "_désiré" pour qu'il n'y ait pas de confusion avec le nom des attributs de la classe. Ainsi, lors de la création d'un tel objet vous pourrez passer en paramètres les valeurs des attributs "désirés" :

pierre = new alien (22,208);

Accesseurs

Étudions l'exemple de la dernière fois ; il lit la valeur des attributs de mon alien directement :

System.out.printIn("J'ai "+
           Pierre.age+
           " ans et je mesure "+
           Pierre.taille+
           " centimetres.");

Parfois, je change leur valeur directement, également :

Pierre.age=22;
Pierre.taille=180;

Arrêtons ces pratiques ! En effet, la programmation objet doit permettre aux programmeurs d'échanger leur travail de façon intense. Pour effacer des problèmes empiriques lors d'échanges de code, il faut cacher l'implémentation. Ce qui constitue l'implémentation, ce sont les attributs, il faut donc qu'un utilisateur de votre classe n'ait pas accès à vos données directement. Son seul moyen doit être l'utilisation de méthodes destinées à cet usage : les accesseurs.

Interdire l'accès à des données se fait avec le mot "private". Tout ce qui est privé ne sera utilisable qu'à l'intérieur de votre classe. Depuis le corps de votre application, vous ne pourrez pas faire d'accès direct à ces données. Pour autoriser un accès général, il faut utiliser le mot "public".

Mais, dans cet esprit, il faut envisager également l'écriture de méthodes publiques qui serviront à lire les données pertinentes de la classe et des méthodes (que l'on pourrait appeler "modificateurs") publiques qui serviront à modifier les attributs. Ainsi, depuis le corps de votre programme, vous demanderez à l'objet de faire lui-même ces opérations, ce qui cache en grande partie l'implémentation et les problèmes qui pourraient découler, si le concepteur de la classe décidait de changer d'implémentation par exemple...

Évidemment, je ne devrais certainement pas le promettre, mais j'espère pour une prochaine fois reprendre l'exemple du mois de janvier et l'arranger dans les règles de l'art (tiens ? Je n'ai rien promis). Prochainement nous visiterons des sites fameux comportant des applets, évoquerons une petite bibliographie et parlerons plus précisément des solutions Java pour Amiga...

Par contre, je ne reviendrai pas sur la polémique : "qui de Pierre ou de l'alien doit nous faire le plus peur ?". Je voudrais seulement lancer un appel à tous ceux qui auraient mis la main sur un compilateur Java pour Amiga, ou un interpréteur, ou encore un JIT. En effet, je n'ai pour l'instant rien de tout cela pour notre machine, mais des projets seraient en état de marche... Les circonstances actuelles ne me permettent pas de tester les solutions dont j'ai pris connaissance.

A part ça, n'hésitez pas à me poser des questions. Pour cela, deux adresses : jpa-laysi@ufr.lirmm.fr pour les questions faciles et fopaquicher@ufr.lirmm.fr pour les autres.

Annexe : applets et applications

Vous avez déjà entendu parler d'applets à propos de Java, n'est-ce pas ? Une question légitime consiste à se demander ce qu'est une applet. Une application Java est une application "normale" comme toutes celles que vous possédez ou toutes celles que vous connaissez (TurboCalc, Scala...).

Une applet Java ressemble vraiment à une application. J'ai tendance à dire qu'il s'agit d'une application d'ailleurs, seulement, ce sont des applications que vous rencontrerez sur Internet (exécutables dans votre navigateur). Ce sont les applets Java qui ont rendu Java célèbre ! (...et qui constituent sa première force).

Pour l'utilisateur, une applet peut donc être un jeu proposé sur une page Web, une molécule chimique en 3D que l'on peut faire tourner à volonté et tout un tas d'autres choses qui demandent souvent, soit trop de complexité, soit trop d'interactivité pour être géré par une "implémentation HTML".

Pour le programmeur, une applet se programme presque comme une application. Seulement, il s'agit de classes différentes. Il faudra donc un de ces jours que l'on regarde ensemble ces classes...

Java


[Retour en haut] / [Retour aux articles] [Article précédent] / [Article suivant]