comp.lang.java.FAQ ------------------ FAQ: JAVA-General VER: 1.04 (11MAR96) LOC: http://www-net.com/java/faq/faq-java-fr.txt Ecrit par D'Arcy Smith (dsh@unix.infoserve.net) le 11 Mars 1996 Traduit par Julio Mendonca Santos (julioms@abacom.com) le 18 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= =20 rapportent au langage Java et aux technologies du navigateur (browser)= HotJava.=20 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=20 "tel quel" avec la FAQ. SVP, envoyez vos messages 'a D'Arcy Smith @ dsh@unix.infoserve.net=20 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=E9 pour JDKJ 1.0 - Changements mineurs de quelques descriptions - Retrait de la section 5 (O=F9 puis-je avoir= plus d'informations?) 1.0.3 (23 Fev 1996) - Ajout=E9 le JDK 1.0 pour Mac - Corrections mineures - Ajoute' "Comment utiliser les multiples boutons de= la souris" 1.0.3 (11 Mar 1996) - Revu la numeroation 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 =20 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. Le JDK est actuellement disponible a partir des compagnies suivantes: Sun - http://www.javasoft.com Symantec (Cafe)* - http://www.symantec.com *veuillez regarder ci-apres pour une meilleure description. pour les plateformes suivantes: Solaris (SPARC) - Sun Windows 95 - Sun - Symantec=20 Windows NT (INTEL) - Sun - Symantec=20 MacIntosh (Motorolla 68030 (ou superieur) ou PowerPC) - Sun Les navigateurs Java(tm) sont disponibles a partir des compagnies= suivantes: 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 - Netscape 5. Questions Frequement posees ------------------------------ Les Questions: A. O=F9 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=F9 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: =09 class A { protected int i; } class B { if f() { A a =3D new A(); a.i =3D 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 =3D new A(); a.i =3D 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: =09 public class Test { public static void main(String args[]) { String sa[] =3D new String[5]; sa[0].CharAt(0); } } exemple de bonne initialisation de tableau: public class Test { public static void main(String args[]) { String sa[] =3D new String[5]; for(int i=3D0 ; i<5 ; i++) { sa[i] =3D 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 =3D 1; } class UseIt { public void f() { int i =3D Test.CONST; } } =09 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= =20 l'utilisation les 'interfaces': "public interface TOKEN { public static final int IDENT =3D 1;=09 public static final int KEYWORD =3D 2;=09 } 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!=20 (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)=20 { case Event.MOUSE_DOWN: if(evt.modifiers =3D=3D evt.CTRL_MASK) { System.out.println("Bouton droit"); }=20 else { if (evt.modifiers =3D=3D evt.ALT_MASK) { System.out.println("Bouton du milieu"); }=20 else { System.out.println("Bouton gauche"); } } =20 return true; } return super.handleEvent(evt); } Appendice A. Descriptions de Produits Commerciaux. -------------------------------------------------- 1. Symantec Cafe ---------------- "Cafe de Symantec est le premier environnement de developpement integre'= pour le developpement=20 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=20 laureat pour Windows 95 et Windows NT. Cafe fournit un systeme de gestion de projets complet en plus d'outils de= navigation et=20 d'edition pour augmenter drastiquement la productivite des developpeurs= Internet." 2. Autres IDEs -------------- Il y a eu des demandes pour d'autres IDE. Ils seront inclus si: - ils supportent le JDK 1.0 - fournissent un 'write-up' ----------------------------------------------------------------------------= ------------------------