TP1

Prise en main du langage, environnement de programmation

 


Premier exercice :

But : toucher à toute la chaîne de développement d'un programme Java, étudier grossièrement la structure d'un programme très simple.

Objet : écrire l'incontournable "Hello World", sous forme d'application, mais aussi d'applet.

Avant tout :

Voici le source de l'application HelloWorld :
public class HelloWorld {
    public static void main(String argv[]) {
        System.out.println("Hello World\n");
    }
}
Copier/Coller ce bout de code et le compiler à l'aide de la commande : javac HelloWorld.java

L'exécuter à l'aide de la commande : java HelloWorld

Voici le source de l'applet HelloWorldApplet :

import java.awt.Graphics;
import java.applet.Applet;

public class HelloWorldApplet extends Applet {
    public void paint(Graphics g) {
        g.drawString("Hello world!", 50, 25);
    }
}
Copier/Coller ce bout de code et le compiler à l'aide de la commande : javac HelloWorldApplet.java

L'exécution n'est pas aussi simple que pour une application. Il faut impérativement construire une page HTML contenant un tag <APPLET CODE=nom de la classe HEIGHT=... WIDTH=...> </APPLET>

Source de la page HelloWorldApplet.html :

<HTML>
Ici se trouve notre applet :
<P>
<APPLET CODE="HelloWorldApplet.class" WIDTH=150 HEIGHT=25>
Votre Browser ne permet pas de visualiser les applets Java
</APPLET>
</HTML>
Pour exécuter : appletviewer HelloWorldApplet.html, ou utiliser Netscape (déconseillé pendant la phase de test, même si c'était possible !).

Deuxième exercice :

But : se familiariser avec les outils de documentation de Java.

Objet : utiliser javadoc pour créer automatiquement la documentation pour votre code

Tout d'abord, allez voir les informations sur javadoc disponibles en ligne, et tant que vous y êtes jetez un oeil sur des éléments de style préconisés par Sun (sans blague, la documentation est aussi important que le code et voici une façon d'en faire sans effort). En fait, il y a toute une industrie que tourne autour de javadoc...

Travail à faire :

Ajoutez des commentaires pertinents à votre code et passez-le dans la moulinette javadoc. Le résultat se trouvera dans HelloWorld.html, mais pour faire joli il faut créer un lien sur le répertoire contenant les images :

Nous verrons plus tard pour les packages...

Troisième exercice :

But : se familiariser avec la syntaxe de Java en passant par des exemples simples.

Objet : écrire / testez / corriger des cas d'école.

Il ne s'agit pas d'un programme très intéressant et il est probable que le code que vous allez écrire sera assez horrible. Ce n'est pas grave, nous arrangerons tout ça par la suite !

Travail à faire :

  1. coller le bout de code suivant dans un ficher, compilez, commentez, corrigez...
  2. public class Scope {
        public static void main(String args[]) {
            int i = 0;
            for (int i = 0; i < 5; i++) {
                System.out.print(i + ", ");
            }
            System.out.print("\n");
        }
    }
  3. idem...
  4. public class Variables {
        public static void main(String args[]) {
            float a = 3.0;
            double b = 4;
            float c;
            c = Math.sqrt(a * a + b * b);
            System.out.println("c = " + c);
        }
    }
  5. idem...
  6. public class Promote {
        public static void main(String args[]) {
            byte b = 42;
            char c = 'a';
            short s = 1024;
            int i = 50000;
            float f = 5.67f;
            double d = .1234;
            double resultat = (f * b) + (i / c) - (d * s);
            System.out.print((f * b) + " + " + (i / c) + " - " + (d * s));
            System.out.println(" = " + resultat);
    
            byte b2 = 10;
            byte b3 = b2 * b;
            System.out.println("b3 = " + b3);
        }
    }
  7. au lieu de tout faire dans la méthode main() de la classe Promote, créez dans le main un objet de la classe Promote, mais auparavant vous aurez ajouté à cette classe un constructeur dans le quel vous ferez (presque) tout (initialisations...)
  8. coller le bout de code suivant dans un ficher, compilez, commentez

  9. vous pourriez jeter un oeil sur la classe Integer
    public class Array {
        public static void main(String args[]) {
            String jour_semaine[];
       
            int jour = Integer.parseInt(args[0]);
    
            jour_semaine = new String[7];
            jour_semaine[0] = "dimanche";
            jour_semaine[1] = "lundi";
            jour_semaine[2] = "mardi";
            jour_semaine[3] = "mercredi";
            jour_semaine[4] = "jeudi";
            jour_semaine[5] = "vendredi";
            jour_semaine[6] = "ça me dit";
            System.out.println("Moi, je préfère le " + jour_semaine[jour]);
        }
    }
  10. testez la commande java Array 7

  11. corrigez la classe Array pour éviter ce genre de bourde
  12. en utilisant un tableau, complétez la classe Mois pour qu'elle affiche le nombre de jours dans un mois donné, par exemple
  13. prompt: java Mois 10
    Le mois de novembre a 30 jours
    prompt:
    voici une partie de la classe Mois :
    public class Mois {
        public static void main(String args[]) {
            int mon_mois = Integer.parseInt(args[0]);
            // code à fournir
            System.out.print("Le mois de " + moisJours[mon_mois].nom + " a ");
            System.out.println(moisJours[mon_mois].jours + " jours");
        }
    }
    
    class MoisJours {
        String nom;
        int jours;
    
        MoisJours(String nom, int jours) {
            this.nom = nom;
            this.jours = jours;
        }
    }