Préface
Préface à la ème édition
Java
Le CD ROM
Introduction
Prérequis
Apprendre Java
Buts
Documentation en ligne
Les chapitres
Exercices
Le CD ROM Multimédia
Le Code Source
Typographie et style de code
Les versions de Java
Seminars and mentoring
Errors
À propos de la conception de la couverture du livre
Remerciements
Collaborateurs Internet
) Introduction sur les Objets
Les bienfaits de l’abstraction
Un objet dispose d’une interface
L’implémentation cachée
Réutilisation de l’implémentation
Héritage : réutilisation de l’interface
Les relations est-un vs est-comme-un
Polymorphisme : des objets interchangeables
Classes de base abstraites et interfaces
Environnement et durée de vie des objets
Collections et itérateurs
La hiérarchie de classes unique
Bibliothèques de collections et support pour l’utilisation aisée des collections
Transtypages descendants vs patrons génériques
Le dilemme du nettoyage : qui en est responsable ?
Ramasse-miettes vs efficacité et flexibilité
Traitement des exceptions : gérer les erreurs
Multithreading
Persistance
Java et l’Internet
Qu’est-ce que le Web ?
Le concept Client/Serveur
Le Web en tant que serveur géant
La programmation côté client
Les plugins (modules d’extension)
Les langages de script
Java
ActiveX
La sécurité
Internet vs intranet
La programmation côté serveur
Une scène séparée : les applications
Analyse et conception
Phase : Faire un plan
L’exposé de la mission
Phase : Que construit-on ?
Phase : Comment allons-nous le construire ?
Les cinq étapes de la conception d’un objet
Indications quant au développement des objets
Phase : Construire le coeur du système
Phase : Itérer sur les cas d’utilisation
Phase : Evolution
Les plans sont payants
Programmation Extrême
Commencer par écrire les tests
Programmation en binôme
Les raisons du succès de Java
Les systèmes sont plus faciles à exprimer et comprendre
Puissance maximale grâce aux bibliothèques
Traitement des erreurs
Mise en oeuvre de gros projets
Stratégies de transition
Règles de base
Cours
Projet à faible risque
S’inspirer de bonnes conceptions
Utiliser les bibliothèques de classes existantes
Ne pas traduire du code existant en Java
Les obstacles au niveau du management
Coûts de mise en oeuvre
Problèmes de performances
Erreurs classiques de conception
Java vs C++ ?
Résumé : Tout est Objet
Les objets sont manipulés avec des références
Vous devez créer tous les objets
Où réside la mémoire ?
Cas particulier : les types primitifs
Nombres de grande précision
Tableaux en Java
Vous n’avez jamais besoin de détruire un objet
Notion de portée
Portée des objets
Créer de nouveaux types de données : class
Champs et méthodes
Valeurs par défaut des membres primitifs
Méthodes, paramètres et valeurs de retour
La liste de paramètres
Construction d’un programme Java
Visibilité des noms
Utilisation d’autres composantes
Le mot-clef static
Votre premier programme Java
Compilation et exécution
Commentaires et documentation intégrée
Commentaires de documentation
Syntaxe
HTML intégré
@see : faire référence aux autres classes
Class documentation tags
@version
@author
@since
Les onglets de documentation de variables
Les onglets de documentation de méthodes
@param
@return
@throws
@deprecated
Exemple de documentation
Style de programmation
Préface à la 2ème édition
Les lecteurs de la première édition de ce livre ont fait énormément de commentaires élogieux à son propos, ce qui m’a été très agréable. Toutefois de temps à autres l’un ou l’autre s’est plaint, et l’une des critiques récurrentes est « le livre est trop gros ».
Dans mon esprit, je dois dire que si « trop de pages » est votre seule plainte, c’est une faible critique (on se souvient de l’empereur d’Autriche se plaignant du travail de Mozart : « trop de notes ! », mais n’allez pas penser que je cherche d’une manière ou d’une autre à me comparer à Mozart).De plus, je peux seulement supposer qu’une telle demande provient d’une personne qui en est encore à prendre conscience de l’étendue du langage Java lui-même, et qui n’a pas encore vu ou lu les autres livres traitant du sujet — par exemple, ma référence favorite, Core Javade Cay Horstmann & Gary Cornell (Prentice-Hall), qui a tellement grossi qu’on a dû le scinder en deux volumes. Malgré cela, une des choses que j’ai essayé de faire dans cette édition a été d’éliminer les parties obsolètes, ou tout au moins non essentielles.
Java 2
Alors que j’écris ceci, la sortie de la version 1.3 du Java Development Kit(JDK) de Sun est imminente, et les modifications proposées pour le JDK 1.4 ont été publiées.
Bien que ces numéros de version soient encore dans les « uns », la manière standard de se référer à une version du JDK 1.2 ou supérieur est de l’appeler « Java 2 ». Ceci souligne les modifications significatives entre le « vieux Java » — qui possède beaucoup de verrues, ce que je critiquais dans la première version de ce livre — et la nouvelle version du langage, améliorée etplus moderne, comportant bien moins de verrues et beaucoup de compléments,ainsi qu’une conception agréable.
Le CD ROM
Un autre bonus de cette édition est le CD ROM que vous trouverez à la fin du livre.
J’ai naguère rejeté cette idée, pensant que mettre quelques Ko de code source sur cet énorme CD n’était pas justifié, et préféré à cela que les gens le téléchargent depuis mon site Web. Cependant, vous allez voirtout de suite que ce CD ROM représente autre chose.
Le CD contient le code source que l’on trouve dans le livre, mais il contient aussi l’intégralité du livre, sous différents formats électroniques. Mon préféré est le format HTML, parce qu’il est rapide et complètement indexé — vous cliquez simplement sur une entrée de l’index ou de la table des matières et vous vous retrouvez immédiatement à l’endroit voulu dans le livre.
Introduction
Tout comme n’importe quel langage humain, Java permet d’exprimer des concepts.
S’il y parvient, il deviendra un moyen d’expression considérablement plus simple et plus souple que n’importe quelle alternative, alors même que les problèmes augmentent en taille et en complexité.
Il est impossible de considérer Java uniquement sous l’angle d’une collection de fonctionnalités — beaucoup de fonctionnalités perdent leur sens hors de leur contexte. On ne peut utiliser la somme des parties que si l’on pense en termes de conception, et non simplement en termes de code. Pour appréhender Java de cette manière, il faut comprendre les problèmes qui lui sont propres et ceux qui relèvent de la programmation en général. Ce livre traite de problèmes de programmation, en quoi ce sont des problèmes, et quelle est l’approche de Java pour les résoudre. Ainsi, l’ensemble de fonctionnalités que je présente dans chaque chapitre est basée sur ma manière de résoudre un certain type de problèmes au moyen de ce langage. Par cette démarche j’espère peu à peu amener le lecteur au point où « penser Java » lui deviendra naturel.
Prérequis
Ce livre part du principe que le lecteur est un familier de la programmation : il sait qu’un programme est un ensemble d’instructions, il sait ce que sont un sous- programme, une fonction, une macro-instruction, un ordre de contrôle tel que « if » ainsi qu’une structure de boucle telle que « while », etc. Toutefois, il a certainement appris cela de différentes façons, par exemple en programmant avec un macrolangage ou bien en utilisant un outil tel que Perl. Si vous faites partie de ceux qui sont à l’aise avec les idées de base de la programmation, vous lirez ce livre sans problème. Bien entendu, le livre sera plus facile pour les programmeurs C et encore plus pour les programmeurs C++, mais n’abandonnez pas pour autant si vous n’avez aucune expérience de ces langages (en revanche, préparez-vous à travailler dur ; par ailleurs, le CD multimédia fourni avec ce livre vous amènera rapidement à comprendre la syntaxe de base du langage C nécessaire à l’apprentissage de Java).
Apprendre Java
J’ai commencé à enseigner C++ à l’époque où était édité mon premier livre Using C++(Osborne McGraw-Hill, 1989). Enseigner la programmation est devenu ma profession ; depuis 1989 j’ai vu bien des hochements de tête, de visages , ainsi que beaucoup d’expressions d’incompréhension chez maint auditoire à travers le monde. Lorsque je me mis à donner des cours chez moi, pour des groupes plus réduits, je découvris que même ceux qui souriaient et hochaient la tête étaient déconcertés face à de nombreux problèmes. J’ai découvert aussi, alors que je présidais le cursus C++ durant plusieurs années à la Software Development Conference (et plus tard le cursus Java), que moi-même ainsi que les autres conférenciers avions tendance à traiter trop de choses trop rapidement.
Buts
Comme mon précédent livre Thinking in C++, celui-ci a été structuré pour enseigner le langage. En particulier, ma motivation est de faire en sorte qu’il puisse me servir pour enseigner le langage dans mes propres séminaires. Lorsque je pense à un chapitre du livre, je me demande s’il pourrait faire l’objet d’une bonne leçon lors d’un séminaire. Mon but est d’avoir des chapitres courts pouvant être exposés en un temps raisonnable, suivis par des exercices réalisables dans une situation de salle de classe.
Documentation en ligne
Le langage Java et les bibliothèques de Sun Microsystems (en téléchargement libre) sont accompagnés d’une documentation sous forme électronique, que l’on peut lire avec un navigateur Web, et enpratique chaque implémentation tierce de Java possède un système de documentation équivalent. La plupart des livres publiés à propos de Java dupliquent cette documentation. Soit vous l’avez déjà, soit vous pouvez la télécharger, et donc ce livre ne la reprendra pas, excepté lorsque c’est nécessaire, parce qu’il sera généralement plus rapide de trouver la description d’une classe au moyen d’un navigateur plutôt que dans le livre (de plus, la documentation en ligne sera probablement davantage à jour). Ce livre fournira certaines descriptions de classes supplémentaires lorsqu’il sera nécessaire de compléter la documentation afin de comprendre un exemple particulier.
Penser en java seconde édition (3517 KO) (Cours PDF)