comp.lang.java.FAQ ------------------ FAQ: JAVA-General VER: 1.05 (22MAR96) LOC: http://www-net.com/java/faq/faq-java-fr.txt Ecrit par D'Arcy Smith (dsh@unix.infoserve.net) le 22 Mars 1996 Traduit par Julio Mendonca Santos (julioms@abacom.com) le 24 Mars 1996 Index ----- 0. Point de vue Legal 1. Historique 2. Java(tm) c'est quoi? 3. De quoi ai-je besoin pour l'utiliser? 4. Ou puis-je l'avoir? 5. Questions Frequement posees Appendice A. Descriptions de Produits Commerciaux. 0. Point de vue Legal --------------------- "Java et HotJava sont des marques deposees de Sun Microsystems, Inc., et se rapportent au langage Java et aux technologies du navigateur (browser) HotJava. Comp.Lang.Java.FAQ n'est ni sponsorise' ni affilie' 'a Sun Microsystems, Inc." Vous avez le droit de distribuer cette FAQ tant que cette section est distribuee "telle quelle" avec la FAQ. SVP, envoyez vos messages 'a D'Arcy Smith @ dsh@unix.infoserve.net ou 'a Julio Mendonca Santos @ julioms@abacom.com 1. Historique ------------- 1.0.0 ( 3 Jan 1996) - Creation 1.0.1 (16 Jan 1996) - Changements de format mineurs - Ajout de la section historique - Ajout de l'appendice A. 1.0.2 ( 1 Fev 1996) - Changé pour JDKJ 1.0 - Changements mineurs de quelques descriptions - Retrait de la section 5 (Où puis-je avoir plus d'informations?) 1.0.3 (23 Fev 1996) - Ajouté le JDK 1.0 pour Mac - Corrections mineures - Ajoute' "Comment utiliser les multiples boutons de la souris" 1.0.4 ( 8 Mar 1996) - Revu la numerotation de l'historique - Ajoute' de nouvelles plateformes (Mac, OSF1) - Ajoute' Windows aux plateformes Netscape - Changements mineurs de formatation - Ajoute' "Autres IDEs" 'a l'appendice - Ajoute' IDE Symantec pour Mac 1.0.5 (22 Mar 1996) - Ajoute' plusieurs produits - Reformatte' pour avoir des lignes de plus ou moins 73 caracteres - La version du JDK Est passe' 'a 1.0.1 - Changement de 'Produits Commerciaux' 'a 'Produits' 2. Java c'est quoi? ------------------- Java(tm) est un langage de programmation oriente' objet developpe par Sun. 3. De quoi ai-je besoin pour l'utiliser? ---------------------------------------- - Du kit de developpement Java(tm), c'est a dire, le JDK. - D'un navigateur web supportant le Java (optionnel). 4. Ou puis-je l'avoir? ---------------------- La version actuelle du JDK est la version 1.0.1 Le JDK est actuellement disponible a partir des sites suivants: Sun - http://www.javasoft.com Symantec (Cafe)* - http://www.symantec.com IBM* - http://ncc.hursley.ibm.com/javainfo/ Randy Chapman - ftp://java.blackdown.org/pub/Java/linux/ *veuillez regarder ci-apres pour une meilleure description. pour les plateformes suivantes: Solaris (SPARC) - Sun Windows 95 - Sun - Symantec Windows NT (INTEL) - Sun - Symantec MacIntosh (Motorolla 68030 (ou superieur) ou PowerPC) - Sun - Symantec OS/2 - IBM AIX - IBM Linux - Randy Chapman Les navigateurs Java(tm) sont disponibles a partir des sites suivants: Netscape - http://home.netscape.com/ pour les plateformes suivantes: HPUX - Netscape Irix - Netscape Linux - Netscape MacIntosh (PowerPC) - Netscape OSF1 - Netscape Solaris (2.3, 2.4) - Netscape SunOS - Netscape Windows '95 - Netscape Windows NT (Intel) - Netscape 5. Questions Frequement posees ------------------------------ Les Questions: A. Ou' avoir la documentation? B. Comment rendre les membres proteges (protected), comme avec le C++? C. Pourquoi je recois le message "java.lang.NullPointerException" quand j'utilise des tableaux (arrays)? D. Comment declarer une constante (comme le const du C++) en Java(tm)? E. Comment declarer des enums (comme le enum du C++) en Java(tm)? F. Comment recevoir les events de la souris? Les Reponses: A. Où avoir la documentation? ----------------------------- La documentation est disponible sur JavaSoft: http://www.javasoft.com Beaucoup de documents tres utiles: http://www-net.com/java/faq B. Comment rendre les membres proteges (protected), comme avec le C++? ---------------------------------------------------------------------- Contrairement au C++, le mot reserve protected en Java(tm), signifie que les sous-classes ET les classes du meme package y ont acces. exemple: class A { protected int i; } class B { if f() { A a = new A(); a.i = 0; //En C++ ceci ne pourrait se faire! } } Pour avoir le comportement du 'protected' du C++, il faut utiliser 'private protected' class A { private protected int i; } class B { if f() { A a = new A(); a.i = 0; //Ceci est incorrect! } } Java(tm) a 5 niveaux de protection: 1) public - acces total 2) protected - acces des sous-classes ET du package 3) default - acces du package (de toutes les classes du package) 4) private protected - acces des classes et des sous-classes exclusivement 5) private - acces de la classe uniquement C. Pourquoi je recois le message "java.lang.NullPointerException" quand j'utilise des tableaux (arrays)? ----------------------------------------------------------------- 2 hypotheses: 1) Vous avez indexe hors des limites du tableau 2) Vous n'avez pas initialise le tableau convenablement exemple de mauvaise initialisation de tableau: public class Test { public static void main(String args[]) { String sa[] = new String[5]; sa[0].CharAt(0); } } exemple de bonne initialisation de tableau: public class Test { public static void main(String args[]) { String sa[] = new String[5]; for(int i=0 ; i<5 ; i++) { sa[i] = new String(); } sa[0].CharAt(0); } } bien sur, maintenant vous aurez le message "java/lang.StringIndexOutOfBoundsExecption" mais maintenant ce sera a cause de tous les tableaux qui sont vides. D. Comment declarer une constante (comme le const du C++) en Java(tm)? ---------------------------------------------------------------------- voir E! les variables declarees avec le mot reserve' "final" ne sont pas modifiables. exemple: class Test { public final static int CONST = 1; } class UseIt { public void f() { int i = Test.CONST; } } E. Comment declarer des enums (comme le enum du C++) en Java(tm)? ----------------------------------------------------------------- voir D! Une petite astuce de Patrick Naughton (naughton@starwave.com) consiste dans l'utilisation les 'interfaces': "public interface TOKEN { public static final int IDENT = 1; public static final int KEYWORD = 2; } il suffit alors d'utiliser 'implement' pour implementer cette interface comme suit: public class parser implements TOKEN { } et vos methodes dans "parser" pourront se referer a IDENT d'elles-memes." Merci Patrick! (Un avantage de E sur D est que vous pouvez implementer plusieurs interfaces mais vous ne pouvez etendre qu'une classe) F. Comment recevoir les events de la souris? -------------------------------------------- Ceci est pris de comp.lang.java (Je ne sais plus qui...) public boolean handleEvent(Event evt) { switch(evt.id) { case Event.MOUSE_DOWN: if(evt.modifiers == evt.CTRL_MASK) { System.out.println("Bouton droit"); } else { if (evt.modifiers == evt.ALT_MASK) { System.out.println("Bouton du milieu"); } else { System.out.println("Bouton gauche"); } } return true; } return super.handleEvent(evt); } Appendice A. Description de Produits ------------------------------------ 1. Symantec Cafe ---------------- "Cafe de Symantec est le premier environnement de developpement integre' pour le developpement d'applets Java et d'applications pour les pages World Wide Web sur Internet. Cafe integre le kit de developpement Java (JDK) 1.0 dans l'environnement de developpement laureat pour Windows 95 et Windows NT. Cafe fournit un systeme de gestion de projets complet en plus d'outils de navigation et d'edition qui augmentent de maniere spectaculaire la productivite des developpeurs Internet." 2. IBM ------ "IBM travaille sur les implementations JAVA depuis l'ete 1995 et s'y investit fortement, ayant porte' sur OS/2 et AIX et ayant en cours des ports sur OS/400, MVS et Windows 3.1. Pour obtenir la version actuelle du JDK, visitez http://ncc.hursley.ibm.bom/javainfo/ Pour recevoir savoir ou en sont les ports, visitez http://majordomo.hursley.ibm.com/majordomo/listsavail.html Une demonstration de la technologie Browser-Java pour OS/2 est disponible 'a partir de http://www.raleigh.ibm.com/WebExplorer/" 3. JFactory de RogueWave ------------------------ "JFactory de RogueWave est un constructeur d'interfaces visuelles et un generateur de code pour Java. JFactory est livre avec une pleiade de controles visuels et un ensemble d'outils de developpement qui aident le developeur a construire et maintenir des applets et d'applications Java tres rapidement. JFactory genere du code source Java que vous pourrez porter sur tout ou Java est supporte, sans frais supplementaires ou restrictions legales. JFactory est disponible pour Win95, WinNT et SPARC Solaris." 4. Step Ahead Software's JAVelin -------------------------------- "La derniere version de l'environnement de developpement graphique oriente object pour JAVA, JAVelin vient de sortir. La version est la V4.42. Version 4.42: o Inclue des exemples supplementaires et des sommaires rapides sous la la forme de projets JAVelin qui rendent encore plus rapide le developpement. o Correction de bugs mineurs comme les commentaires qui etaient parfois mal generes lors de la generation du code. Il est disponible sur le site de Step Ahead Software: http://www.ozemail.com.au/~stepsoft Merci a tous ceux qui ont enregistre leur copie d'evaluation. L'enregistrement de votre copie signifie que nous pourrons continuer la mise a disposition d'outils haut de gamme a des prix tres raisonnables." Et n'oubliez pas, si vous avez des demandes de caracteristiques que vous aimeriez de voir dans les versions futures de JAVelin, n'hesitez pas et contactez-nous." 5. Innovative Software's OEW(TM) pour Java ------------------------------------------ "L'Object Engineering Workbench(TM) pour Java(TM) (OEW pour Java) est le premier outil graphique de design et de documentation multi-plateforme pour toutes les applications ecrites dans le langage de programmatin de Sun Microsystem, Java, incluant le design de schemas de bases de donnees relationnelles et le 'reverse engineering'. OEW pour Java fourni un environnement de developpement integre avec l'analyse oriente objet, le design, implementation et la documentation d'applications basees sur Java! OEW pour Java est disponible pour Microsoft Windows 95 et Windows NT. Les versions pour OS/2, Sun Solaris et HP-UX suivront prochainement. Pour plus d'informations, regardez le site http://www.isg.de/" 6. ModelWorks' JPad ------------------- "JPad est un editeur Java integre avec les outils Java de Sun. JPad rend facile l'ecriture, la compilation et l'ececution d'applications et d'applets Java dans un environnement unique en utilisant soit Windows 95 soit Windows NT 3.51. Meme trouver des erreurs devient facile - il suffit de cliquer sur le message d'erreur et JPad se positionne sur la ligne ou se trouve l'erreur et vous la montre. JPad coute $29. Vous pouvez decharger une version d'essai de 15 jours de http://www.modelworks.com/express" 7. Autres Produits ------------------ Il y a eu des demandes pour d'autres IDE. Ils seront inclus si: - ils supportent le JDK 1.0.x - ils fournissent un sommaire de presentation