Aller au contenu

Atelier 06

Dans cet atelier, nous allons réviser brièvement la portée des packages, comment les relier à l’aide des imports, et comment tout cela se rapporte au classpath.

Importations et paquets

  • Les imports sont nécessaires chaque fois que vous traversez les limites d’un package.
  • Cependant, il y a une exception : les classes de la bibliothèque standard n’ont pas besoin d’être importées.

À vous de jouer

  • Créez un nouveau projet avec au moins deux paquets, a et b.
    • Créez une nouvelle classe dans chaque paquet.
    • Essayez de créer une nouvelle classe du paquet b à partir de votre classe dans le paquet a.
  • Vérifiez qu’une importation est requise.
    • Vérifiez ce qui se passe si vous retirez l’importation. Quel est le message d’erreur du compilateur ?
  • Créez un new String, un new LinkedList, et affichez Math.PI à partir de l’une de vos classes.
    • Combien d’instructions d’importation sont nécessaires ? Pourquoi n’avez-vous pas besoin d’un import pour chacune des classes utilisées ?

Classpath

Par défaut, le compilateur et la JVM ne « connaissent » que ce qui se trouve sur le classpath. Autrement dit, vous ne pouvez pas importer des artefacts situés en dehors du classpath, et vous ne pouvez pas exécuter un logiciel dépendant d’artefacts situés en dehors du classpath.

Dans cet exercice, vous allez brièvement vous exercer à intégrer une classe de bibliothèque sans copier-coller son code source dans votre projet.

À vous de jouer

  • Téléchargez cette bibliothèque d’exemple : amazing.jar
    • Enregistrez le fichier quelque part à l’extérieur de votre projet.
    • Inspectez le contenu du fichier JAR (vous pouvez renommer l’extension en zip et décompresser le fichier).
  • La bibliothèque contient une seule interface AmazingInterface, avec une seule méthode void doSomethingAmazing().
    • Vous devez maintenant implémenter l’interface fournie.
    • Créez une nouvelle classe AmazingImplementation :
import amazing.AmazingInterface;

public class AmazingImplementation implements AmazingInterface {

    public void doSomethingAmazing() {
        System.out.println("Wowser !");
    }
}
  • Créez une classe de lancement qui invoque la méthode doSomethingAmazing.
  • Vérifiez maintenant si vous pouvez compiler et exécuter votre application. Rappel :
    • Pour compiler, utilisez l’argument -cp .../.../amazing.jar, où .../.../ fait référence à l’emplacement du fichier sur le disque.
    • Pour exécuter, utilisez l’argument -cp .../.../amazing.jar:., où .../.../ fait référence à l’emplacement du fichier sur le disque, et :. étend le classpath avec les fichiers de classe du répertoire courant.
  • Vérifiez que les deux étapes réussissent.