IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Penser en Java 2nde édition - Sommaire |  Préface |  Avant-propos | Chapitre : 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 |  Annexe : A B C D  | Tables des matières - Thinking in Java

  Chapitre 2 - Tout est « objet »

pages : 1 2 3 4 

Dans ce chapitre on en a vu suffisamment sur la programmation Java pour comprendre comment écrire un programme simple et on a eu une vue d'ensemble du langage et de certaines des idées de base. Toutefois, les exemples vus jusqu'à présent ont tous été du type « faire ceci, puis faire cela, puis faire autre chose ». Qu'en advient-il si on veut faire un programme pour réaliser des choix, comme dans « si le résultat de ceci est rouge, faire cela, sinon faire autre chose » ? Les outils disponibles en Java pour cette activité de programmation fondamentale seront vus dans le prochain chapitre.

Exercices

  1. En suivant l'exemple HelloDate.java de ce chapitre, créez un programme « hello, world » qui affiche simplement cette phrase. Vous n'avez besoin que d'une seule méthode dans la classe (la méthode « main » qui est exécutée quand le programme démarre). Pensez à la rendre static et à indiquer la liste de paramètres, même si la liste de paramètres n'est pas utilisée. Compilez ce programme avec javac. Si vous utilisez un environnement de développement autre que JDK, apprenez à compiler et exécuter les programmes dans cet environnement.
  2. Trouver le morceau de code concernant ATypeName et faites-en un programme qui compile et s'exécute.
  3. Transformez le morceau de code DataOnly en un programme qui compile et qui s'exécute.
  4. Modifiez l'exercice 3 de telle sorte que les valeurs des données dans DataOnly soient affectées et affichées dans main( ).
  5. Écrivez un programme qui inclus et appelle la méthode storage( ) définie comme morceau de code dans ce chapitre.
  6. Transformez le morceau de code StaticFun en un programme qui fonctionne.
  7. Écrivez un programme qui imprime trois paramètres saisis sur la ligne de commande. Pour faire ceci il faut indexer le tableau de String représentant la ligne de commande.
  8. Transformez l'exemple AllTheColorsOfTheRainbow en un programme qui compile et s'exécute.
  9. Trouvez le code de la seconde version de HelloDate.java qui est le petit exemple de commentaire de documentation. Exécutez javadoc sur le fichier et visualisez le résultat avec votre browser Web.
  10. Transformez docTest en un fichier qui compile et exécutez javadoc dessus. Contrôlez la documentation qui en résulte avec votre browser Web.
  11. Ajoutez une liste d'éléments en HTML, à la documentation de l'exercice 10.
  12. Prenez le programme de l'exercice 1 et ajoutez lui une documentation. Sortez cette documentation dans un fichier HTML à l'aide de javadoc et visualisez la avec votre browser Web.

[21] Ceci peut être une poudrière. Il y a ceux qui disent « c'est clairement un pointeur », mais ceci suppose une implémentation sous-jacente. De plus, les références Java sont plutôt apparentées aux références C++ qu'aux pointeurs dans leur syntaxe. Dans la première édition de ce livre, j'ai choisi d'inventer un nouveau terme, « manipulateur » (handle), car les références C++ et les références Java ont des différences importantes. Je venais du C++ et je ne voulais pas embrouiller les programmeurs C++ que je supposais être le principal public de Java. Dans la seconde édition, j'ai décidé que « référence » était le terme le plus généralement utilisé et que tous ceux qui venaient du C++ auraient à s'occuper de bien d'autres choses que de la terminologie de référence, donc qu'ils pourraient aussi bien y plonger les deux pieds en avant. Toutefois, il y a des gens qui ne sont pas d'accord, même avec le terme « référence ». J'ai lu dans un livre qu'il était « complètement faux de dire que Java supportait les passages par références », parce que les identificateurs des objets Java (selon cet auteur) sont en fait des « références à des objets ». Et (continue-t-il) tout est en fait passé par valeur. Donc on ne passe pas une référence, on « passe une référence à un objet, par valeur ». On pourrait discuter de la précision d'une explication si alambiquée mais je pense que mon approche simplifie la compréhension du concept sans blesser qui que ce soit (d'accord, les avocats du langage pourraient prétendre que je mens, mais je répondrai que je fournis une abstraction appropriée).

[22] Les méthodes static, que nous découvrirons ultérieurement, peuvent être appelées pour la classe, sans passer par un objet.

[23] Avec les exceptions habituelles pour les types de données précités boolean, char, byte, short, int, long, float, et double. En général, toutefois, on passe des objets, ce qui veut dire qu'en réalité on passe des références à des objets.

[24] Certains environnements de programmations feront apparaître brièvement le programme à l'écran et le fermeront avant d'avoir eu une chance de voir le résultat. On peut mettre le morceau de code suivant à la fin du main( ) pour obtenir une pause sur la sortie :

try {
      System.in.read();
    } catch(Exception e) {}

Cette pause durera jusqu'à ce qu'on appuye sur « Entrée » (ou toute autre touche). Ce code met en jeu des concepts qui ne seront introduits que bien plus tard dans ce livre, donc vous ne le comprendrez pas d'ici là, mais il fera l'affaire.

[25] Un outil que j'ai créé avec Python (voir www.Python.org) utilise cette information pour extraire les fichiers sources, les mettre dans les sous-répertoires appropriés et créer les makefiles.

Ce livre a été écrit par Bruce Eckel ( télécharger la version anglaise : Thinking in java )
Ce chapitre a été traduit par Raczy ( groupe de traduction )
télécharger la version francaise (PDF) | Commandez le livre en version anglaise (amazon) | télécharger la version anglaise
pages : 1 2 3 4 
Penser en Java 2nde édition - Sommaire |  Préface |  Avant-propos | Chapitre : 1  2  3  4  5  6  7  8  9  10  11  12  13  14  15 |  Annexe : A B C D  | Tables des matières - Thinking in Java